From 779d7554ea607a1730afd670739c2773a852d780 Mon Sep 17 00:00:00 2001 From: zhengjie Date: Mon, 15 Apr 2019 09:23:26 +0800 Subject: [PATCH 001/214] update README.md --- README.md | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 6f12df0fd..da8058764 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,23 @@ eladmin 前端源码 -#### 后端源码 -- 码云: [https://gitee.com/elunez/eladmin](https://gitee.com/elunez/eladmin) -- github: [https://github.com/elunez/eladmin](https://github.com/elunez/eladmin) +#### 项目源码 -#### eladmin开发文档 -[http://docs.auauz.net/#/](http://docs.auauz.net/#/) +| | 后端源码 | 前端源码 | +|--- |--- | --- | +| github | https://github.com/elunez/eladmin | https://github.com/elunez/eladmin-qd | +| 码云 | https://gitee.com/elunez/eladmin | https://gitee.com/elunez/eladmin-qt | -## Build Setup +#### 开发文档 +[https://docs.auauz.net/#/](https://docs.auauz.net/#/) + +#### 前端模板 + +初始模板基于: [https://github.com/PanJiaChen/vue-admin-template](https://github.com/PanJiaChen/vue-admin-template) + +模板文档: [https://panjiachen.github.io/vue-element-admin-site/zh/guide/](https://panjiachen.github.io/vue-element-admin-site/zh/guide/) + +#### Build Setup ``` bash # 安装依赖 npm install @@ -23,6 +32,4 @@ npm run build #### 反馈交流 -- QQ交流群:Quella/el-admin - -- 作者邮箱:elunez@qq.com \ No newline at end of file +- QQ交流群:891137268 \ No newline at end of file From 20b0f6849d67d9feaee7977ef457d0b37ddee739 Mon Sep 17 00:00:00 2001 From: zhengjie Date: Wed, 17 Apr 2019 10:44:28 +0800 Subject: [PATCH 002/214] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=BD=91=E7=AB=99log?= =?UTF-8?q?o=E6=98=BE=E7=A4=BA=EF=BC=8C=E6=96=87=E4=BB=B6=E4=BD=8D?= =?UTF-8?q?=E4=BA=8Eviews/layout/components/Sidebar/index.vue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/logo/logo.png | Bin 0 -> 16291 bytes src/icons/svg/run.svg | 1 + src/icons/svg/running.svg | 1 + src/styles/index.scss | 11 +++++++++++ src/views/layout/Layout.vue | 1 - src/views/layout/components/Sidebar/index.vue | 16 +++++++++++++++- 6 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 src/assets/logo/logo.png create mode 100644 src/icons/svg/run.svg create mode 100644 src/icons/svg/running.svg diff --git a/src/assets/logo/logo.png b/src/assets/logo/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2e917763ad05c47fe5fd406f39261160cd53a84f GIT binary patch literal 16291 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ν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 literal 0 HcmV?d00001 diff --git a/src/icons/svg/run.svg b/src/icons/svg/run.svg new file mode 100644 index 000000000..c90ff44d3 --- /dev/null +++ b/src/icons/svg/run.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/svg/running.svg b/src/icons/svg/running.svg new file mode 100644 index 000000000..b95cb88c3 --- /dev/null +++ b/src/icons/svg/running.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/styles/index.scss b/src/styles/index.scss index 6de4d8217..1d6f369e4 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -124,3 +124,14 @@ a:hover { line-height: 32px; border-radius: 16px; } + +.logo-con{ + height: 60px; + padding: 12px 0px 0px; + img{ + height: 35px; + width: 138px; + display: block; + margin: 0 auto; + } +} diff --git a/src/views/layout/Layout.vue b/src/views/layout/Layout.vue index 0e14f1604..8c35170f4 100644 --- a/src/views/layout/Layout.vue +++ b/src/views/layout/Layout.vue @@ -13,7 +13,6 @@ - diff --git a/src/views/system/job/module/form.vue b/src/views/system/job/module/form.vue index bea5d1550..ad3fbe980 100644 --- a/src/views/system/job/module/form.vue +++ b/src/views/system/job/module/form.vue @@ -5,7 +5,7 @@ - + {{ item.label }} @@ -68,22 +68,22 @@ export default { this.resetForm() }, doSubmit() { - if (this.deptId === null || this.deptId === undefined) { - this.$message({ - message: '所属部门不能为空', - type: 'warning' - }) - } else { - this.form.dept.id = this.deptId - this.$refs['form'].validate((valid) => { - if (valid) { + this.form.dept.id = this.deptId + this.$refs['form'].validate((valid) => { + if (valid) { + if (this.deptId === null || this.deptId === undefined) { + this.$message({ + message: '所属部门不能为空', + type: 'warning' + }) + } else { this.loading = true if (this.isAdd) { this.doAdd() } else this.doEdit() } - }) - } + } + }) }, doAdd() { add(this.form).then(res => { @@ -137,6 +137,8 @@ export default { } - diff --git a/src/views/system/menu/module/form.vue b/src/views/system/menu/module/form.vue index cdde4b72a..aa7700084 100644 --- a/src/views/system/menu/module/form.vue +++ b/src/views/system/menu/module/form.vue @@ -18,7 +18,7 @@ - + @@ -141,6 +141,8 @@ export default { } - diff --git a/src/views/system/user/module/form.vue b/src/views/system/user/module/form.vue index 3e2c81497..9e918d06c 100644 --- a/src/views/system/user/module/form.vue +++ b/src/views/system/user/module/form.vue @@ -110,26 +110,26 @@ export default { this.resetForm() }, doSubmit() { - if (this.deptId === null || this.deptId === undefined) { - this.$message({ - message: '部门不能为空', - type: 'warning' - }) - } else if (this.jobId === null) { - this.$message({ - message: '岗位不能为空', - type: 'warning' - }) - } else if (this.roleIds.length === 0) { - this.$message({ - message: '角色不能为空', - type: 'warning' - }) - } else { - this.form.dept.id = this.deptId - this.form.job.id = this.jobId - this.$refs['form'].validate((valid) => { - if (valid) { + this.form.dept.id = this.deptId + this.form.job.id = this.jobId + this.$refs['form'].validate((valid) => { + if (valid) { + if (this.deptId === null || this.deptId === undefined) { + this.$message({ + message: '部门不能为空', + type: 'warning' + }) + } else if (this.jobId === null) { + this.$message({ + message: '岗位不能为空', + type: 'warning' + }) + } else if (this.roleIds.length === 0) { + this.$message({ + message: '角色不能为空', + type: 'warning' + }) + } else { this.loading = true this.form.roles = [] const _this = this @@ -140,11 +140,11 @@ export default { if (this.isAdd) { this.doAdd() } else this.doEdit() - } else { - return false } - }) - } + } else { + return false + } + }) }, doAdd() { add(this.form).then(res => { From c69c80d43552098f331f3a19a20b295109c03471 Mon Sep 17 00:00:00 2001 From: zhengjie Date: Thu, 18 Apr 2019 11:13:56 +0800 Subject: [PATCH 005/214] =?UTF-8?q?1.7=20=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/styles/index.scss | 2 +- src/utils/request.js | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/styles/index.scss b/src/styles/index.scss index 3a086589c..165c90bbd 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -132,6 +132,6 @@ a:hover { height: 32px; width: 135px; display: block; - margin: 0 auto; + //margin: 0 auto; } } diff --git a/src/utils/request.js b/src/utils/request.js index 327a32a07..9339366f8 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -45,9 +45,16 @@ service.interceptors.response.use( try { code = error.response.data.status } catch (e) { - if (error.toString().indexOf('timeout')) { + if (error.toString().indexOf('Error: timeout') !== -1) { Notification.error({ - title: '请求超时', + title: '请求超时,请重试', + duration: 2500 + }) + return Promise.reject(error) + } + if (error.toString().indexOf('Error: Network Error') !== -1) { + Notification.error({ + title: '网络错误,请联系网站管理员恢复', duration: 2500 }) return Promise.reject(error) From af2496c4c4e33e87731a8e157e0ba7171c1c362c Mon Sep 17 00:00:00 2001 From: zhengjie Date: Fri, 19 Apr 2019 16:42:53 +0800 Subject: [PATCH 006/214] =?UTF-8?q?1.7=20=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/layout/components/Sidebar/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/layout/components/Sidebar/index.vue b/src/views/layout/components/Sidebar/index.vue index 7f549c0a5..7595ed997 100644 --- a/src/views/layout/components/Sidebar/index.vue +++ b/src/views/layout/components/Sidebar/index.vue @@ -10,7 +10,7 @@ active-text-color="#409EFF" > - + From bb43c4765e0b30cc0892080b3d35be8e6c4bb53f Mon Sep 17 00:00:00 2001 From: zhengjie Date: Mon, 22 Apr 2019 16:01:33 +0800 Subject: [PATCH 007/214] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E4=B8=8E=E6=8E=A5=E5=8F=A3=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E6=8F=90=E7=A4=BA=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/request.js | 4 ++-- src/views/system/user/center/updatePass.vue | 19 ++++++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/utils/request.js b/src/utils/request.js index 9339366f8..21d2208f1 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -47,14 +47,14 @@ service.interceptors.response.use( } catch (e) { if (error.toString().indexOf('Error: timeout') !== -1) { Notification.error({ - title: '请求超时,请重试', + title: '网络请求超时', duration: 2500 }) return Promise.reject(error) } if (error.toString().indexOf('Error: Network Error') !== -1) { Notification.error({ - title: '网络错误,请联系网站管理员恢复', + title: '网络请求错误', duration: 2500 }) return Promise.reject(error) diff --git a/src/views/system/user/center/updatePass.vue b/src/views/system/user/center/updatePass.vue index bd116fd28..72d6b2c2d 100644 --- a/src/views/system/user/center/updatePass.vue +++ b/src/views/system/user/center/updatePass.vue @@ -26,13 +26,17 @@ import { validPass, updatePass } from '@/api/user' export default { data() { const validatePass = (rule, value, callback) => { - validPass(value).then(res => { - if (res.status === 200) { - callback() - } else { - callback(new Error('旧密码错误,请检查')) - } - }) + if (value) { + validPass(value).then(res => { + if (res.status === 200) { + callback() + } else { + callback(new Error('旧密码错误,请检查')) + } + }) + } else { + callback(new Error('请输入旧密码')) + } } const confirmPass = (rule, value, callback) => { if (this.form.newPass !== value) { @@ -64,6 +68,7 @@ export default { doSubmit() { this.$refs['form'].validate((valid) => { if (valid) { + alert(1) this.loading = true updatePass(this.form.confirmPass).then(res => { this.resetForm() From 05e7366ead818619b6bf7df70bc24c254f1c5aa0 Mon Sep 17 00:00:00 2001 From: zhengjie Date: Sun, 28 Apr 2019 09:36:20 +0800 Subject: [PATCH 008/214] update updatePass.vue --- src/views/system/user/center/updatePass.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/src/views/system/user/center/updatePass.vue b/src/views/system/user/center/updatePass.vue index 72d6b2c2d..45a89e388 100644 --- a/src/views/system/user/center/updatePass.vue +++ b/src/views/system/user/center/updatePass.vue @@ -68,7 +68,6 @@ export default { doSubmit() { this.$refs['form'].validate((valid) => { if (valid) { - alert(1) this.loading = true updatePass(this.form.confirmPass).then(res => { this.resetForm() From 1e9c10a6e6e154b893d335f41d707d20eeabac25 Mon Sep 17 00:00:00 2001 From: zhengjie Date: Sun, 5 May 2019 17:21:03 +0800 Subject: [PATCH 009/214] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A1=B6=E7=BA=A7?= =?UTF-8?q?=E9=83=A8=E9=97=A8=E4=B8=8D=E8=83=BD=E4=BF=AE=E6=94=B9=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 15 +++++++++++++-- src/views/system/dept/module/form.vue | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 9d960478b..4632ad7fc 100644 --- a/index.html +++ b/index.html @@ -3,9 +3,20 @@ + -
- +
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/dept/module/form.vue b/src/views/system/dept/module/form.vue index aea5b8df4..cd854ebef 100644 --- a/src/views/system/dept/module/form.vue +++ b/src/views/system/dept/module/form.vue @@ -61,7 +61,7 @@ export default { doSubmit() { this.$refs['form'].validate((valid) => { if (valid) { - if (this.form.pid) { + if (this.form.pid !== undefined) { this.loading = true if (this.isAdd) { this.doAdd() From 9ea77930efd1e18dfe253aed56a600177c1c286f Mon Sep 17 00:00:00 2001 From: zhengjie Date: Wed, 8 May 2019 15:33:00 +0800 Subject: [PATCH 010/214] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A6=96=E5=B1=8F?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E5=8A=A8=E7=94=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/index.html b/index.html index 4632ad7fc..c6b621059 100644 --- a/index.html +++ b/index.html @@ -4,18 +4,18 @@
-
-
-
-
-
-
-
+
+
+ + + + +
From dab2fc076d964ecd5b14f8ef7a28d4d3421711d5 Mon Sep 17 00:00:00 2001 From: zhengjie Date: Sat, 11 May 2019 13:46:15 +0800 Subject: [PATCH 011/214] =?UTF-8?q?1.8=20=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 +- src/components/GithubCorner/index.vue | 51 ----- src/components/Hamburger/index.vue | 17 +- src/components/HeaderSearch/index.vue | 181 ++++++++++++++++++ src/components/RightPanel/index.vue | 157 +++++++++++++++ src/components/placard/index.vue | 27 ++- src/config/index.js | 17 +- src/icons/svg/search.svg | 1 + src/router/index.js | 2 +- src/store/index.js | 4 +- src/store/modules/settings.js | 23 +++ src/store/modules/tagsView.js | 4 +- src/styles/variables.scss | 25 ++- src/utils/index.js | 31 +++ src/views/dashboard/admin/index.vue | 7 +- src/views/layout/Layout.vue | 68 +++++-- src/views/layout/components/AppMain.vue | 16 +- src/views/layout/components/Navbar.vue | 29 ++- .../layout/components/Settings/index.vue | 91 +++++++++ src/views/layout/components/Sidebar/Logo.vue | 39 ++++ src/views/layout/components/Sidebar/index.vue | 19 +- src/views/layout/components/TagsView.vue | 66 ++++++- src/views/layout/components/index.js | 1 + 23 files changed, 737 insertions(+), 142 deletions(-) delete mode 100644 src/components/GithubCorner/index.vue create mode 100644 src/components/HeaderSearch/index.vue create mode 100644 src/components/RightPanel/index.vue create mode 100644 src/icons/svg/search.svg create mode 100644 src/store/modules/settings.js create mode 100644 src/views/layout/components/Settings/index.vue create mode 100644 src/views/layout/components/Sidebar/Logo.vue diff --git a/package.json b/package.json index 3dbb754e0..6e0d4de06 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ "stompjs": "2.3.3", "wangeditor": ">=3.0.0", "codemirror": "^5.38.0", - "mavon-editor": "^2.7.0" + "mavon-editor": "^2.7.0", + "path-to-regexp": "2.4.0" }, "devDependencies": { "autoprefixer": "8.5.0", diff --git a/src/components/GithubCorner/index.vue b/src/components/GithubCorner/index.vue deleted file mode 100644 index 6f91c5ef0..000000000 --- a/src/components/GithubCorner/index.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - diff --git a/src/components/Hamburger/index.vue b/src/components/Hamburger/index.vue index f1f9bda12..e4cf00ac2 100644 --- a/src/components/Hamburger/index.vue +++ b/src/components/Hamburger/index.vue @@ -4,24 +4,14 @@ :class="{'is-active':isActive}" t="1492500959545" class="hamburger" - style="" viewBox="0 0 1024 1024" - version="1.1" xmlns="http://www.w3.org/2000/svg" + version="1.1" p-id="1691" - xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64" @click="toggleClick"> - - - +
@@ -48,11 +38,10 @@ export default { cursor: pointer; width: 20px; height: 20px; - transform: rotate(90deg); transition: .38s; transform-origin: 50% 50%; } .hamburger.is-active { - transform: rotate(0deg); + transform: rotate(180deg); } diff --git a/src/components/HeaderSearch/index.vue b/src/components/HeaderSearch/index.vue new file mode 100644 index 000000000..813e3afe9 --- /dev/null +++ b/src/components/HeaderSearch/index.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/src/components/RightPanel/index.vue b/src/components/RightPanel/index.vue new file mode 100644 index 000000000..c6061d9da --- /dev/null +++ b/src/components/RightPanel/index.vue @@ -0,0 +1,157 @@ + + + + + + + diff --git a/src/components/placard/index.vue b/src/components/placard/index.vue index f6cef7f89..d45b2192a 100644 --- a/src/components/placard/index.vue +++ b/src/components/placard/index.vue @@ -11,28 +11,27 @@ width="32" height="32" @click="click"> - +
1.7版本更新说明
一、后端
    -
  1. 完成部门管理,岗位管理,字典管理,完成数据权限
  2. -
  3. 用户权限加入到缓存,避免重复请求数据库
  4. -
  5. 修复七牛云存储中文名下载失败的bug
  6. +
  7. 修复用户存在多角色时登录失败的bug
  8. +
  9. 修复在修改用户角色时缓存不刷新的bug
  10. +
  11. 修复修改邮箱配置需要重新启动才生效的bug
  12. 修复上级目录选择自己导致列表不显示的bug
  13. -
  14. 大量细节优化
  15. -
  16. 【文档】已更新至1.7版本,访问地址:https://docs.auauz.net
  17. +
  18. 新增部分工具类的单元测试
  19. +
  20. common模块新增 SecurityUtils 工具类、可获取当前用户的 id和 username
  21. +
  22. 配置文件新增 Swagger 的开启开关
二、前端
    -
  1. 优化实时控制台全屏后高宽自适应
  2. -
  3. 七牛云列表显示添加【文件类型】字段
  4. -
  5. sm.ms图床列表添加【缩略图】显示
  6. -
  7. 提供外链嵌入内部菜单的组件(可参考Sql监控或者接口文档菜单)
  8. -
  9. 重新设计个人中心页面
  10. -
  11. 取消无意义的前端MD5加密
  12. -
  13. 前端新增全局配置文件,文件位于src/config 下,目前可配置:网站名称、Cookie过期天数、TokenKey、请求超时时间
  14. -
  15. 大量细节优化
  16. +
  17. 新增系统设置,可设置logo、
  18. +
  19. 新增首屏加载动画
  20. +
  21. 新增系统Logo显示
  22. +
  23. 优化首页的 Tag 不可删除,由 affix 属性控制
  24. +
  25. 修复顶级部门不能修改的问题
  26. +
  27. 其他细节优化
diff --git a/src/config/index.js b/src/config/index.js index 31f5b0f2f..5d655ef2c 100644 --- a/src/config/index.js +++ b/src/config/index.js @@ -22,5 +22,20 @@ export default { /** * @description 请求超时时间,毫秒(默认2分钟) */ - timeout: 1200000 + timeout: 1200000, + + /** + * @description 是否显示 tagsView + */ + tagsView: true, + + /** + * @description 固定头部 + */ + fixedHeader: false, + + /** + * @description 是否显示logo + */ + sidebarLogo: true } diff --git a/src/icons/svg/search.svg b/src/icons/svg/search.svg new file mode 100644 index 000000000..84233ddaa --- /dev/null +++ b/src/icons/svg/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index f41b5592d..587eea8d6 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -55,7 +55,7 @@ export const constantRouterMap = [ path: 'dashboard', component: () => import('@/views/dashboard/index'), name: '首页', - meta: { title: '首页', icon: 'index', noCache: true } + meta: { title: '首页', icon: 'index', noCache: true, affix: true } } ] }, diff --git a/src/store/index.js b/src/store/index.js index cb9f594b1..1fc27ae08 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -5,6 +5,7 @@ import api from './modules/api' import user from './modules/user' import tagsView from './modules/tagsView' import permission from './modules/permission' +import settings from './modules/settings' import getters from './getters' Vue.use(Vuex) @@ -15,7 +16,8 @@ const store = new Vuex.Store({ api, user, tagsView, - permission + permission, + settings }, getters }) diff --git a/src/store/modules/settings.js b/src/store/modules/settings.js new file mode 100644 index 000000000..2d27f4656 --- /dev/null +++ b/src/store/modules/settings.js @@ -0,0 +1,23 @@ +import Config from '@/config' + +const settings = { + state: { + showRightPanel: false, + tagsView: Config.tagsView, + fixedHeader: Config.fixedHeader, + sidebarLogo: Config.sidebarLogo + }, + mutations: { + CHANGE_SETTING: (state, { key, value }) => { + if (state.hasOwnProperty(key)) { + state[key] = value + } + } + }, + actions: { + changeSetting({ commit }, data) { + commit('CHANGE_SETTING', data) + } + } +} +export default settings diff --git a/src/store/modules/tagsView.js b/src/store/modules/tagsView.js index cbf9eeb7b..0b457ab14 100644 --- a/src/store/modules/tagsView.js +++ b/src/store/modules/tagsView.js @@ -56,7 +56,8 @@ const tagsView = { }, DEL_ALL_VISITED_VIEWS: state => { - state.visitedViews = [] + const affixTags = state.visitedViews.filter(tag => tag.meta.affix) + state.visitedViews = affixTags }, DEL_ALL_CACHED_VIEWS: state => { state.cachedViews = [] @@ -129,7 +130,6 @@ const tagsView = { resolve([...state.cachedViews]) }) }, - delAllViews({ dispatch, state }, view) { return new Promise(resolve => { dispatch('delAllVisitedViews', view) diff --git a/src/styles/variables.scss b/src/styles/variables.scss index 2fee827b9..2130ff584 100644 --- a/src/styles/variables.scss +++ b/src/styles/variables.scss @@ -1,4 +1,27 @@ //sidebar +$menuText:#bfcbd9; +$menuActiveText:#409EFF; +$subMenuActiveText:#f4f4f5; // https://github.com/ElemeFE/element/issues/12951 + $menuBg:#304156; +$menuHover:#263445; + $subMenuBg:#1f2d3d; -$menuHover:#001528; +$subMenuHover:#001528; + +$sideBarWidth: 180px; + +$hideSidebarWidth: 38px; + +// the :export directive is the magic sauce for webpack +// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass +:export { + menuText: $menuText; + menuActiveText: $menuActiveText; + subMenuActiveText: $subMenuActiveText; + menuBg: $menuBg; + menuHover: $menuHover; + subMenuBg: $subMenuBg; + subMenuHover: $subMenuHover; + sideBarWidth: $sideBarWidth; +} diff --git a/src/utils/index.js b/src/utils/index.js index 79031e156..2514e9a12 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -116,3 +116,34 @@ export function regMobile(mobile) { } return new_mobile } + +/** + * 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, ' ') + } +} diff --git a/src/views/dashboard/admin/index.vue b/src/views/dashboard/admin/index.vue index 7a75f4902..0c8ce3ae8 100644 --- a/src/views/dashboard/admin/index.vue +++ b/src/views/dashboard/admin/index.vue @@ -1,8 +1,5 @@ - diff --git a/src/views/layout/components/AppMain.vue b/src/views/layout/components/AppMain.vue index 5f2e104e7..2322299b5 100644 --- a/src/views/layout/components/AppMain.vue +++ b/src/views/layout/components/AppMain.vue @@ -22,7 +22,7 @@ export default { } - diff --git a/src/views/layout/components/Navbar.vue b/src/views/layout/components/Navbar.vue index 45a981415..df97cd88a 100644 --- a/src/views/layout/components/Navbar.vue +++ b/src/views/layout/components/Navbar.vue @@ -4,28 +4,30 @@
- - - diff --git a/src/views/generator/module/form.vue b/src/views/generator/module/form.vue index 4853c236f..37e3d1db6 100644 --- a/src/views/generator/module/form.vue +++ b/src/views/generator/module/form.vue @@ -4,12 +4,15 @@ - - + + + + + @@ -34,7 +37,7 @@ export default { data() { return { loading: false, dialog: false, - form: { author: '', pack: '', path: '', moduleName: '', cover: 'false', apiPath: '' }, + form: { author: '', pack: '', path: '', moduleName: '', cover: 'false', apiPath: '', prefix: '' }, rules: { author: [ { required: true, message: '作者不能为空', trigger: 'blur' } @@ -88,7 +91,7 @@ export default { resetForm() { this.dialog = false this.$refs['form'].resetFields() - this.form = { author: '', pack: '', path: '', moduleName: '', cover: 'false', apiPath: '' } + this.form = { author: '', pack: '', path: '', moduleName: '', cover: 'false', apiPath: '', prefix: '' } } } } diff --git a/src/views/layout/components/Settings/index.vue b/src/views/layout/components/Settings/index.vue index a5abdd69f..bc1ee6c2e 100644 --- a/src/views/layout/components/Settings/index.vue +++ b/src/views/layout/components/Settings/index.vue @@ -2,7 +2,6 @@

系统布局配置

-
显示 Logo @@ -16,14 +15,13 @@
- 显示 SettingBtn + 显示 SettingButton
- 菜单 uniqueOpened + 菜单 UniqueOpened
-
diff --git a/src/views/monitor/log/errorLog.vue b/src/views/monitor/log/errorLog.vue index 76510f522..aca7612f9 100644 --- a/src/views/monitor/log/errorLog.vue +++ b/src/views/monitor/log/errorLog.vue @@ -15,7 +15,7 @@ @@ -37,6 +37,7 @@ - - diff --git a/src/views/monitor/redis/index.vue b/src/views/monitor/redis/index.vue index d18ca5fa3..ae8b30a4e 100644 --- a/src/views/monitor/redis/index.vue +++ b/src/views/monitor/redis/index.vue @@ -18,7 +18,6 @@ - - - diff --git a/src/views/monitor/redis/module/form.vue b/src/views/monitor/redis/module/form.vue deleted file mode 100644 index bf536e229..000000000 --- a/src/views/monitor/redis/module/form.vue +++ /dev/null @@ -1,102 +0,0 @@ - - - - - diff --git a/src/views/monitor/redis/module/header.vue b/src/views/monitor/redis/module/header.vue index e6c9997a3..08a2392a3 100644 --- a/src/views/monitor/redis/module/header.vue +++ b/src/views/monitor/redis/module/header.vue @@ -3,16 +3,6 @@ 搜索 - -
- 新增 - -
清空缓存 @@ -21,11 +11,9 @@ - - diff --git a/src/views/dashboard/index.vue b/src/views/dashboard/index.vue deleted file mode 100644 index ef50f6ac0..000000000 --- a/src/views/dashboard/index.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/src/views/errorPage/401.vue b/src/views/features/401.vue similarity index 97% rename from src/views/errorPage/401.vue rename to src/views/features/401.vue index 5e2244cb6..455918007 100644 --- a/src/views/errorPage/401.vue +++ b/src/views/features/401.vue @@ -4,7 +4,7 @@

Oops!

图片来源airbnb 页面 -

你没有权限去该页面

+

你没有权限去操作

如有不满请联系你领导
  • 或者你可以去:
  • diff --git a/src/views/errorPage/404.vue b/src/views/features/404.vue similarity index 100% rename from src/views/errorPage/404.vue rename to src/views/features/404.vue diff --git a/src/views/redirect/index.vue b/src/views/features/redirect.vue similarity index 100% rename from src/views/redirect/index.vue rename to src/views/features/redirect.vue diff --git a/src/views/home.vue b/src/views/home.vue new file mode 100644 index 000000000..bf2cad16d --- /dev/null +++ b/src/views/home.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/views/login/index.vue b/src/views/login.vue similarity index 90% rename from src/views/login/index.vue rename to src/views/login.vue index 650a8745a..972ec9c34 100644 --- a/src/views/login/index.vue +++ b/src/views/login.vue @@ -1,19 +1,21 @@ - - diff --git a/src/views/tools/email/module/send.vue b/src/views/tools/email/send.vue similarity index 100% rename from src/views/tools/email/module/send.vue rename to src/views/tools/email/send.vue diff --git a/src/views/tools/picture/index.vue b/src/views/tools/picture/index.vue index 27ecc27e2..fada1033a 100644 --- a/src/views/tools/picture/index.vue +++ b/src/views/tools/picture/index.vue @@ -1,6 +1,51 @@ + + diff --git a/src/views/tools/qiniu/module/description.vue b/src/views/tools/qiniu/module/description.vue deleted file mode 100644 index 0f0dbd84c..000000000 --- a/src/views/tools/qiniu/module/description.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - - diff --git a/src/views/tools/qiniu/module/list.vue b/src/views/tools/qiniu/module/list.vue deleted file mode 100644 index d93e9f789..000000000 --- a/src/views/tools/qiniu/module/list.vue +++ /dev/null @@ -1,146 +0,0 @@ - - - - - diff --git a/src/views/tools/qiniu/module/module/form.vue b/src/views/tools/qiniu/module/module/form.vue deleted file mode 100644 index 0c84a9448..000000000 --- a/src/views/tools/qiniu/module/module/form.vue +++ /dev/null @@ -1,84 +0,0 @@ - - - - - diff --git a/src/views/tools/qiniu/module/module/header.vue b/src/views/tools/qiniu/module/module/header.vue deleted file mode 100644 index da64e3ba1..000000000 --- a/src/views/tools/qiniu/module/module/header.vue +++ /dev/null @@ -1,107 +0,0 @@ - - - From 9ca7d4b05f72731a1e5b0ff19a133d9043f9b589 Mon Sep 17 00:00:00 2001 From: zhengjie <201507802@qq.com> Date: Sat, 29 Jun 2019 12:32:52 +0800 Subject: [PATCH 034/214] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=94=B9=E9=80=A0?= =?UTF-8?q?=E5=AE=8C=E6=88=90=EF=BC=8C=E5=8A=A0=E5=85=A5=E5=A4=9A=E5=AD=97?= =?UTF-8?q?=E5=85=B8=E6=9F=A5=E8=AF=A2=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/dictDetail.js | 13 ++ src/api/user.js | 11 -- src/mixins/initData.js | 6 +- src/mixins/initDict.js | 24 +++- .../generator/{module => }/generator.vue | 4 +- src/views/generator/index.vue | 124 +++++++++++++++++- src/views/generator/module/form.vue | 102 -------------- src/views/generator/module/header.vue | 45 ------- src/views/monitor/log/errorLog.vue | 13 +- src/views/monitor/log/index.vue | 11 +- src/views/monitor/log/module/header.vue | 28 ---- src/views/monitor/log/search.vue | 28 ++++ src/views/monitor/redis/index.vue | 6 +- src/views/system/dept/{module => }/form.vue | 8 +- src/views/system/dept/index.vue | 66 +++++++++- src/views/system/dept/module/edit.vue | 47 ------- src/views/system/dept/module/header.vue | 68 ---------- src/views/system/dict/{module => }/form.vue | 8 +- src/views/system/dict/index.vue | 39 ++++-- src/views/system/dict/module/edit.vue | 40 ------ src/views/system/dict/module/header.vue | 46 ------- .../system/dictDetail/{module => }/form.vue | 8 +- src/views/system/dictDetail/index.vue | 29 +++- src/views/system/dictDetail/module/edit.vue | 45 ------- src/views/system/dictDetail/module/header.vue | 38 ------ src/views/system/job/{module => }/form.vue | 8 +- src/views/system/job/index.vue | 54 +++++++- src/views/system/job/module/edit.vue | 49 ------- src/views/system/job/module/header.vue | 55 -------- src/views/system/menu/{module => }/form.vue | 8 +- src/views/system/menu/index.vue | 52 +++++++- src/views/system/menu/module/edit.vue | 37 ------ src/views/system/menu/module/header.vue | 58 -------- .../system/permission/{module => }/form.vue | 8 +- src/views/system/permission/index.vue | 52 +++++++- src/views/system/permission/module/edit.vue | 37 ------ src/views/system/permission/module/header.vue | 58 -------- src/views/system/role/{module => }/form.vue | 8 +- src/views/system/role/index.vue | 44 ++++++- src/views/system/role/module/edit.vue | 43 ------ src/views/system/role/module/header.vue | 42 ------ src/views/system/timing/index.vue | 120 +++++++++++++++-- src/views/system/timing/{module => }/log.vue | 2 +- src/views/system/timing/module/edit.vue | 36 ----- src/views/system/timing/module/form.vue | 124 ------------------ src/views/system/timing/module/header.vue | 57 -------- src/views/system/user/center.vue | 41 +++++- src/views/system/user/center/log.vue | 55 -------- src/views/system/user/center/updateEmail.vue | 19 +-- src/views/system/user/center/updatePass.vue | 29 ++-- src/views/system/user/{module => }/form.vue | 10 +- src/views/system/user/index.vue | 109 +++++++++++++-- src/views/system/user/module/edit.vue | 48 ------- src/views/system/user/module/header.vue | 110 ---------------- src/views/tools/picture/index.vue | 4 - src/views/tools/qiniu/list.vue | 4 - 56 files changed, 771 insertions(+), 1467 deletions(-) rename src/views/generator/{module => }/generator.vue (97%) delete mode 100644 src/views/generator/module/form.vue delete mode 100644 src/views/generator/module/header.vue delete mode 100644 src/views/monitor/log/module/header.vue create mode 100644 src/views/monitor/log/search.vue rename src/views/system/dept/{module => }/form.vue (96%) delete mode 100644 src/views/system/dept/module/edit.vue delete mode 100644 src/views/system/dept/module/header.vue rename src/views/system/dict/{module => }/form.vue (95%) delete mode 100644 src/views/system/dict/module/edit.vue delete mode 100644 src/views/system/dict/module/header.vue rename src/views/system/dictDetail/{module => }/form.vue (95%) delete mode 100644 src/views/system/dictDetail/module/edit.vue delete mode 100644 src/views/system/dictDetail/module/header.vue rename src/views/system/job/{module => }/form.vue (96%) delete mode 100644 src/views/system/job/module/edit.vue delete mode 100644 src/views/system/job/module/header.vue rename src/views/system/menu/{module => }/form.vue (97%) delete mode 100644 src/views/system/menu/module/edit.vue delete mode 100644 src/views/system/menu/module/header.vue rename src/views/system/permission/{module => }/form.vue (95%) delete mode 100644 src/views/system/permission/module/edit.vue delete mode 100644 src/views/system/permission/module/header.vue rename src/views/system/role/{module => }/form.vue (97%) delete mode 100644 src/views/system/role/module/edit.vue delete mode 100644 src/views/system/role/module/header.vue rename src/views/system/timing/{module => }/log.vue (98%) delete mode 100644 src/views/system/timing/module/edit.vue delete mode 100644 src/views/system/timing/module/form.vue delete mode 100644 src/views/system/timing/module/header.vue delete mode 100644 src/views/system/user/center/log.vue rename src/views/system/user/{module => }/form.vue (97%) delete mode 100644 src/views/system/user/module/edit.vue delete mode 100644 src/views/system/user/module/header.vue diff --git a/src/api/dictDetail.js b/src/api/dictDetail.js index d58bdc3fc..b03d1cc93 100644 --- a/src/api/dictDetail.js +++ b/src/api/dictDetail.js @@ -13,6 +13,19 @@ export function get(dictName) { }) } +export function getDictMap(dictName) { + const params = { + dictName, + page: 0, + size: 9999 + } + return request({ + url: 'api/dictDetail/map', + method: 'get', + params + }) +} + export function add(data) { return request({ url: 'api/dictDetail', diff --git a/src/api/user.js b/src/api/user.js index 436404900..220cc26ae 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -23,17 +23,6 @@ export function edit(data) { }) } -export function validPass(password) { - const data = { - password - } - return request({ - url: 'api/users/validPass/', - method: 'post', - data - }) -} - export function updatePass(password) { const data = { password diff --git a/src/mixins/initData.js b/src/mixins/initData.js index 2c6110de3..87c4ef699 100644 --- a/src/mixins/initData.js +++ b/src/mixins/initData.js @@ -3,7 +3,7 @@ import { initData } from '@/api/data' export default { data() { return { - loading: true, data: [], page: 0, size: 10, total: 0, url: '', params: {}, query: {}, time: 170 + loading: true, data: [], page: 0, size: 10, total: 0, url: '', params: {}, query: {}, time: 170, isAdd: false } }, methods: { @@ -46,6 +46,10 @@ export default { if (this.data.length === size && this.page !== 0) { this.page = this.page - 1 } + }, + toQuery() { + this.page = 0 + this.init() } } } diff --git a/src/mixins/initDict.js b/src/mixins/initDict.js index 312f41eb3..43b8cdf40 100644 --- a/src/mixins/initDict.js +++ b/src/mixins/initDict.js @@ -1,9 +1,9 @@ -import { get } from '@/api/dictDetail' +import { get, getDictMap } from '@/api/dictDetail' export default { data() { return { - dicts: [] + dicts: [], dictMap: {} } }, methods: { @@ -16,6 +16,26 @@ export default { reject(err) }) }) + }, + // 多个字典查询时使用逗号拼接, 如: + // 加载多个数据字典,如何调用如下: + // this.getDict('user_status,job_status') + // 在vue中使用加载出来的字典: + // dictMap.[字典名称] 如:dictMap.user_status、 dictMap.job_status + async getDictMap(names) { + // 优先放入到dictMap中,避免页面加载时 undefined + const arr = names.split(',') + for (let i = 0; i < arr.length; i++) { + this.dictMap[arr[i]] = [] + } + return new Promise((resolve, reject) => { + getDictMap(names).then(res => { + this.dictMap = res + resolve(res) + }).catch(err => { + reject(err) + }) + }) } } } diff --git a/src/views/generator/module/generator.vue b/src/views/generator/generator.vue similarity index 97% rename from src/views/generator/module/generator.vue rename to src/views/generator/generator.vue index c46566c85..c01a18f27 100644 --- a/src/views/generator/module/generator.vue +++ b/src/views/generator/generator.vue @@ -1,6 +1,6 @@