From af25588b88a727b6c945796e3cf34ed3d4f05e89 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期四, 25 十一月 2021 19:39:53 +0800 Subject: [PATCH] Merge remote-tracking branch 'ruoyi-vue/master' into dev --- ruoyi-ui/src/components/RuoYi/Git/index.vue | 2 ruoyi-ui/src/views/system/role/index.vue | 3 ruoyi-ui/src/components/SizeSelect/index.vue | 3 ruoyi-ui/src/views/system/menu/index.vue | 35 +++-- ruoyi-ui/src/views/system/user/index.vue | 3 pom.xml | 4 ruoyi-ui/src/store/modules/settings.js | 2 ruoyi-ui/src/views/system/user/authRole.vue | 8 ruoyi-ui/package.json | 4 ruoyi-ui/src/views/tool/gen/editTable.vue | 4 ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java | 3 ruoyi-ui/src/main.js | 2 ruoyi-ui/src/plugins/tab.js | 66 +++++++++++ ruoyi-ui/src/plugins/index.js | 3 ruoyi-ui/src/api/monitor/server.js | 4 ruoyi-ui/src/views/system/user/profile/userAvatar.vue | 6 ruoyi-ui/src/layout/components/TagsView/index.vue | 19 +-- ruoyi-ui/src/router/index.js | 8 ruoyi-ui/src/views/monitor/logininfor/index.vue | 4 ruoyi-ui/src/views/system/user/profile/userInfo.vue | 5 ruoyi-ui/src/store/modules/tagsView.js | 4 ruoyi-ui/src/views/system/dict/data.vue | 14 ++ ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java | 3 ruoyi-ui/src/views/system/role/selectUser.vue | 4 ruoyi-ui/src/store/modules/permission.js | 4 ruoyi-ui/src/views/system/role/authUser.vue | 4 ruoyi-ui/src/views/system/user/profile/resetPwd.vue | 12 - ruoyi-generator/src/main/resources/vm/vue/index.vue.vm | 19 +- ruoyi-ui/src/views/system/dept/index.vue | 6 ruoyi-generator/pom.xml | 2 ruoyi-ui/src/views/monitor/operlog/index.vue | 4 ruoyi-ui/src/components/Breadcrumb/index.vue | 2 ruoyi-ui/src/components/RightToolbar/index.vue | 2 ruoyi-ui/src/views/login.vue | 8 + ruoyi-ui/src/utils/dict/index.js | 2 ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm | 18 +- ruoyi-ui/src/components/RuoYi/Doc/index.vue | 2 ruoyi-ui/src/layout/index.vue | 2 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java | 1 ruoyi-ui/src/layout/components/Sidebar/Logo.vue | 2 40 files changed, 189 insertions(+), 114 deletions(-) diff --git a/pom.xml b/pom.xml index 2edd523..dfb3464 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ <swagger-annotations.version>1.5.22</swagger-annotations.version> <poi.version>4.1.2</poi.version> <easyexcel.version>2.2.11</easyexcel.version> - <velocity.version>1.7</velocity.version> + <velocity.version>2.3</velocity.version> <jwt.version>0.9.1</jwt.version> <mybatis-plus.version>3.4.3.4</mybatis-plus.version> <p6spy.version>3.9.1</p6spy.version> @@ -118,7 +118,7 @@ <!-- velocity浠g爜鐢熸垚浣跨敤妯℃澘 --> <dependency> <groupId>org.apache.velocity</groupId> - <artifactId>velocity</artifactId> + <artifactId>velocity-engine-core</artifactId> <version>${velocity.version}</version> </dependency> diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java index 440eebb..4261f17 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java @@ -73,6 +73,7 @@ LoginUser loginUser = getLoginUser(); SysUser sysUser = userService.selectUserById(loginUser.getUserId()); user.setUserId(sysUser.getUserId()); + user.setUserName(null); user.setPassword(null); if (userService.updateUserProfile(user) > 0) { return AjaxResult.success(); diff --git a/ruoyi-generator/pom.xml b/ruoyi-generator/pom.xml index 668489f..045ecba 100644 --- a/ruoyi-generator/pom.xml +++ b/ruoyi-generator/pom.xml @@ -20,7 +20,7 @@ <!--velocity浠g爜鐢熸垚浣跨敤妯℃澘 --> <dependency> <groupId>org.apache.velocity</groupId> - <artifactId>velocity</artifactId> + <artifactId>velocity-engine-core</artifactId> </dependency> <!-- 閫氱敤宸ュ叿--> diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java index 461bc2c..a81bd51 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java @@ -19,10 +19,9 @@ Properties p = new Properties(); try { // 鍔犺浇classpath鐩綍涓嬬殑vm鏂囦欢 - p.setProperty("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); + p.setProperty("resource.loader.file.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); // 瀹氫箟瀛楃闆� p.setProperty(Velocity.INPUT_ENCODING, Constants.UTF8); - p.setProperty(Velocity.OUTPUT_ENCODING, Constants.UTF8); // 鍒濆鍖朧elocity寮曟搸锛屾寚瀹氶厤缃甈roperties Velocity.init(p); } catch (Exception e) { diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java index 0a3ffbc..d2e0e3a 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java @@ -247,7 +247,8 @@ List<String> dicts = new ArrayList<String>(); for (GenTableColumn column : columns) { if (!column.isSuperColumn() && StringUtils.isNotEmpty(column.getDictType()) && StringUtils.equalsAny( - column.getHtmlType(), new String[]{GenConstants.HTML_SELECT, GenConstants.HTML_RADIO})) { + column.getHtmlType(), + new String[] { GenConstants.HTML_SELECT, GenConstants.HTML_RADIO, GenConstants.HTML_CHECKBOX })) { dicts.add("'" + column.getDictType() + "'"); } } diff --git a/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm b/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm index 24494ad..7c530cb 100644 --- a/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm +++ b/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm @@ -108,7 +108,11 @@ #elseif($column.list && $column.dictType && "" != $column.dictType) <el-table-column label="${comment}" align="center" prop="${javaField}"> <template slot-scope="scope"> +#if($column.htmlType == "checkbox") + <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.${javaField} ? scope.row.${javaField}.split(',') : []"/> +#else <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.${javaField}"/> +#end </template> </el-table-column> #elseif($column.list && "" != $javaField) @@ -296,8 +300,7 @@ queryParams: { #foreach ($column in $columns) #if($column.query) - $column.javaField: null#if($velocityCount != $columns.size()),#end - + $column.javaField: null#if($foreach.count != $columns.size()),#end #end #end }, @@ -315,8 +318,7 @@ #end $column.javaField: [ { required: true, message: "$comment涓嶈兘涓虹┖", trigger: #if($column.htmlType == "select")"change"#else"blur"#end } - ]#if($velocityCount != $columns.size()),#end - + ]#if($foreach.count != $columns.size()),#end #end #end } @@ -379,14 +381,12 @@ this.form = { #foreach ($column in $columns) #if($column.htmlType == "radio") - $column.javaField: #if($column.javaType == "Integer" || $column.javaType == "Long")0#else"0"#end#if($velocityCount != $columns.size()),#end + $column.javaField: #if($column.javaType == "Integer" || $column.javaType == "Long")0#else"0"#end#if($foreach.count != $columns.size()),#end #elseif($column.htmlType == "checkbox") - $column.javaField: []#if($velocityCount != $columns.size()),#end - + $column.javaField: []#if($foreach.count != $columns.size()),#end #else - $column.javaField: null#if($velocityCount != $columns.size()),#end - + $column.javaField: null#if($foreach.count != $columns.size()),#end #end #end }; diff --git a/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm b/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm index 7650170..c0a5bf7 100644 --- a/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm +++ b/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm @@ -136,7 +136,11 @@ #elseif($column.list && $column.dictType && "" != $column.dictType) <el-table-column label="${comment}" align="center" prop="${javaField}"> <template slot-scope="scope"> +#if($column.htmlType == "checkbox") + <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.${javaField} ? scope.row.${javaField}.split(',') : []"/> +#else <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.${javaField}"/> +#end </template> </el-table-column> #elseif($column.list && "" != $javaField) @@ -360,8 +364,7 @@ pageSize: 10, #foreach ($column in $columns) #if($column.query) - $column.javaField: undefined#if($velocityCount != $columns.size()),#end - + $column.javaField: undefined#if($foreach.count != $columns.size()),#end #end #end }, @@ -379,8 +382,7 @@ #end $column.javaField: [ { required: true, message: "$comment涓嶈兘涓虹┖", trigger: #if($column.htmlType == "select")"change"#else"blur"#end } - ]#if($velocityCount != $columns.size()),#end - + ]#if($foreach.count != $columns.size()),#end #end #end } @@ -424,14 +426,11 @@ this.form = { #foreach ($column in $columns) #if($column.htmlType == "radio") - $column.javaField: #if($column.javaType == "Integer" || $column.javaType == "Long")0#else"0"#end#if($velocityCount != $columns.size()),#end - + $column.javaField: #if($column.javaType == "Integer" || $column.javaType == "Long")0#else"0"#end#if($foreach.count != $columns.size()),#end #elseif($column.htmlType == "checkbox") - $column.javaField: []#if($velocityCount != $columns.size()),#end - + $column.javaField: []#if($foreach.count != $columns.size()),#end #else - $column.javaField: undefined#if($velocityCount != $columns.size()),#end - + $column.javaField: undefined#if($foreach.count != $columns.size()),#end #end #end }; diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json index cb2109c..bad8e77 100644 --- a/ruoyi-ui/package.json +++ b/ruoyi-ui/package.json @@ -46,7 +46,7 @@ "fuse.js": "6.4.3", "highlight.js": "9.18.5", "js-beautify": "1.13.0", - "js-cookie": "2.2.1", + "js-cookie": "3.0.1", "jsencrypt": "3.2.1", "nprogress": "0.2.0", "quill": "1.3.7", @@ -55,7 +55,7 @@ "vue": "2.6.12", "vue-count-to": "1.0.13", "vue-cropper": "0.5.5", - "vue-meta": "^2.4.0", + "vue-meta": "2.4.0", "vue-router": "3.4.9", "vuedraggable": "2.24.3", "vuex": "3.6.0" diff --git a/ruoyi-ui/src/api/monitor/server.js b/ruoyi-ui/src/api/monitor/server.js index feed783..12489d8 100644 --- a/ruoyi-ui/src/api/monitor/server.js +++ b/ruoyi-ui/src/api/monitor/server.js @@ -1,9 +1,9 @@ import request from '@/utils/request' -// 鏌ヨ鏈嶅姟鍣ㄨ缁� +// 鑾峰彇鏈嶅姟淇℃伅 export function getServer() { return request({ url: '/monitor/server', method: 'get' }) -} \ No newline at end of file +} diff --git a/ruoyi-ui/src/components/Breadcrumb/index.vue b/ruoyi-ui/src/components/Breadcrumb/index.vue index 1fbae5f..1696f54 100644 --- a/ruoyi-ui/src/components/Breadcrumb/index.vue +++ b/ruoyi-ui/src/components/Breadcrumb/index.vue @@ -2,7 +2,7 @@ <el-breadcrumb class="app-breadcrumb" separator="/"> <transition-group name="breadcrumb"> <el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path"> - <span v-if="item.redirect==='noRedirect'||index==levelList.length-1" class="no-redirect">{{ item.meta.title }}</span> + <span v-if="item.redirect === 'noRedirect' || index == levelList.length - 1" class="no-redirect">{{ item.meta.title }}</span> <a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a> </el-breadcrumb-item> </transition-group> diff --git a/ruoyi-ui/src/components/RightToolbar/index.vue b/ruoyi-ui/src/components/RightToolbar/index.vue index c7ab139..976974e 100644 --- a/ruoyi-ui/src/components/RightToolbar/index.vue +++ b/ruoyi-ui/src/components/RightToolbar/index.vue @@ -62,7 +62,7 @@ }, // 鍙充晶鍒楄〃鍏冪礌鍙樺寲 dataChange(data) { - for (var item in this.columns) { + for (let item in this.columns) { const key = this.columns[item].key; this.columns[item].visible = !data.includes(key); } diff --git a/ruoyi-ui/src/components/RuoYi/Doc/index.vue b/ruoyi-ui/src/components/RuoYi/Doc/index.vue index e267f90..a60fd21 100644 --- a/ruoyi-ui/src/components/RuoYi/Doc/index.vue +++ b/ruoyi-ui/src/components/RuoYi/Doc/index.vue @@ -1,6 +1,6 @@ <template> <div> - <svg-icon icon-class="question" @click="goto"/> + <svg-icon icon-class="question" @click="goto" /> </div> </template> diff --git a/ruoyi-ui/src/components/RuoYi/Git/index.vue b/ruoyi-ui/src/components/RuoYi/Git/index.vue index 4d580e4..faecbc1 100644 --- a/ruoyi-ui/src/components/RuoYi/Git/index.vue +++ b/ruoyi-ui/src/components/RuoYi/Git/index.vue @@ -1,6 +1,6 @@ <template> <div> - <svg-icon icon-class="github" @click="goto"/> + <svg-icon icon-class="github" @click="goto" /> </div> </template> diff --git a/ruoyi-ui/src/components/SizeSelect/index.vue b/ruoyi-ui/src/components/SizeSelect/index.vue index e88065b..069b5de 100644 --- a/ruoyi-ui/src/components/SizeSelect/index.vue +++ b/ruoyi-ui/src/components/SizeSelect/index.vue @@ -5,8 +5,7 @@ </div> <el-dropdown-menu slot="dropdown"> <el-dropdown-item v-for="item of sizeOptions" :key="item.value" :disabled="size===item.value" :command="item.value"> - {{ - item.label }} + {{ item.label }} </el-dropdown-item> </el-dropdown-menu> </el-dropdown> diff --git a/ruoyi-ui/src/layout/components/Sidebar/Logo.vue b/ruoyi-ui/src/layout/components/Sidebar/Logo.vue index 4169687..b8d9d6b 100644 --- a/ruoyi-ui/src/layout/components/Sidebar/Logo.vue +++ b/ruoyi-ui/src/layout/components/Sidebar/Logo.vue @@ -29,7 +29,7 @@ variables() { return variables; }, - sideTheme() { + sideTheme() { return this.$store.state.settings.sideTheme } }, diff --git a/ruoyi-ui/src/layout/components/TagsView/index.vue b/ruoyi-ui/src/layout/components/TagsView/index.vue index 99bb289..20c4b55 100644 --- a/ruoyi-ui/src/layout/components/TagsView/index.vue +++ b/ruoyi-ui/src/layout/components/TagsView/index.vue @@ -152,31 +152,24 @@ }) }, refreshSelectedTag(view) { - this.$store.dispatch('tagsView/delCachedView', view).then(() => { - const { fullPath } = view - this.$nextTick(() => { - this.$router.replace({ - path: '/redirect' + fullPath - }) - }) - }) + this.$tab.refreshPage(view); }, closeSelectedTag(view) { - this.$store.dispatch('tagsView/delView', view).then(({ visitedViews }) => { + this.$tab.closePage(view).then(({ visitedViews }) => { if (this.isActive(view)) { this.toLastView(visitedViews, view) } }) }, closeRightTags() { - this.$store.dispatch('tagsView/delRightTags', this.selectedTag).then(visitedViews => { + this.$tab.closeRightPage(this.selectedTag).then(visitedViews => { if (!visitedViews.find(i => i.fullPath === this.$route.fullPath)) { this.toLastView(visitedViews) } }) }, closeLeftTags() { - this.$store.dispatch('tagsView/delLeftTags', this.selectedTag).then(visitedViews => { + this.$tab.closeLeftPage(this.selectedTag).then(visitedViews => { if (!visitedViews.find(i => i.fullPath === this.$route.fullPath)) { this.toLastView(visitedViews) } @@ -184,12 +177,12 @@ }, closeOthersTags() { this.$router.push(this.selectedTag).catch(()=>{}); - this.$store.dispatch('tagsView/delOthersViews', this.selectedTag).then(() => { + this.$tab.closeOtherPage(this.selectedTag).then(() => { this.moveToCurrentTag() }) }, closeAllTags(view) { - this.$store.dispatch('tagsView/delAllViews').then(({ visitedViews }) => { + this.$tab.closeAllPage().then(({ visitedViews }) => { if (this.affixTags.some(tag => tag.path === this.$route.path)) { return } diff --git a/ruoyi-ui/src/layout/index.vue b/ruoyi-ui/src/layout/index.vue index 214d86f..8be4184 100644 --- a/ruoyi-ui/src/layout/index.vue +++ b/ruoyi-ui/src/layout/index.vue @@ -98,7 +98,7 @@ } .hideSidebar .fixed-header { - width: calc(100% - 54px) + width: calc(100% - 54px); } .mobile .fixed-header { diff --git a/ruoyi-ui/src/main.js b/ruoyi-ui/src/main.js index 76e33d5..29c4022 100644 --- a/ruoyi-ui/src/main.js +++ b/ruoyi-ui/src/main.js @@ -10,7 +10,7 @@ import App from './App' import store from './store' import router from './router' -import directive from './directive' //directive +import directive from './directive' // directive import plugins from './plugins' // plugins import { download } from '@/utils/request' diff --git a/ruoyi-ui/src/plugins/index.js b/ruoyi-ui/src/plugins/index.js index 7cc83a4..9bc6eac 100644 --- a/ruoyi-ui/src/plugins/index.js +++ b/ruoyi-ui/src/plugins/index.js @@ -1,3 +1,4 @@ +import tab from './tab' import auth from './auth' import cache from './cache' import modal from './modal' @@ -5,6 +6,8 @@ export default { install(Vue) { + // 椤电鎿嶄綔 + Vue.prototype.$tab = tab // 璁よ瘉瀵硅薄 Vue.prototype.$auth = auth // 缂撳瓨瀵硅薄 diff --git a/ruoyi-ui/src/plugins/tab.js b/ruoyi-ui/src/plugins/tab.js new file mode 100644 index 0000000..95a3848 --- /dev/null +++ b/ruoyi-ui/src/plugins/tab.js @@ -0,0 +1,66 @@ +import store from '@/store' +import router from '@/router'; + +export default { + // 鍒锋柊褰撳墠tab椤电 + refreshPage(obj) { + const { path, matched } = router.currentRoute; + if (obj === undefined) { + matched.forEach((m) => { + if (m.components && m.components.default && m.components.default.name) { + if (!['Layout', 'ParentView'].includes(m.components.default.name)) { + obj = { name: m.components.default.name, path: path }; + } + } + }); + } + return store.dispatch('tagsView/delCachedView', obj).then(() => { + const { path } = obj + router.replace({ + path: '/redirect' + path + }) + }) + }, + // 鍏抽棴褰撳墠tab椤电锛屾墦寮�鏂伴〉绛� + closeOpenPage(obj) { + store.dispatch("tagsView/delView", router.currentRoute); + if (obj !== undefined) { + return router.push(obj); + } + }, + // 鍏抽棴鎸囧畾tab椤电 + closePage(obj) { + if (obj === undefined) { + return store.dispatch('tagsView/delView', router.currentRoute).then(({ lastPath }) => { + return router.push(lastPath || '/'); + }); + } + return store.dispatch('tagsView/delView', obj); + }, + // 鍏抽棴鎵�鏈塼ab椤电 + closeAllPage() { + return store.dispatch('tagsView/delAllViews'); + }, + // 鍏抽棴宸︿晶tab椤电 + closeLeftPage(obj) { + return store.dispatch('tagsView/delLeftTags', obj || router.currentRoute); + }, + // 鍏抽棴鍙充晶tab椤电 + closeRightPage(obj) { + return store.dispatch('tagsView/delRightTags', obj || router.currentRoute); + }, + // 鍏抽棴鍏朵粬tab椤电 + closeOtherPage(obj) { + return store.dispatch('tagsView/delOthersViews', obj || router.currentRoute); + }, + // 娣诲姞tab椤电 + openPage(title, url) { + var obj = { path: url, meta: { title: title } } + store.dispatch('tagsView/addView', obj); + return router.push(url); + }, + // 淇敼tab椤电 + updatePage(obj) { + return store.dispatch('tagsView/updateVisitedView', obj); + } +} diff --git a/ruoyi-ui/src/router/index.js b/ruoyi-ui/src/router/index.js index b6b14fa..cda6d4c 100644 --- a/ruoyi-ui/src/router/index.js +++ b/ruoyi-ui/src/router/index.js @@ -95,7 +95,7 @@ path: 'role/:userId(\\d+)', component: (resolve) => require(['@/views/system/user/authRole'], resolve), name: 'AuthRole', - meta: { title: '鍒嗛厤瑙掕壊', activeMenu: '/system/user'} + meta: { title: '鍒嗛厤瑙掕壊', activeMenu: '/system/user' } } ] }, @@ -108,7 +108,7 @@ path: 'user/:roleId(\\d+)', component: (resolve) => require(['@/views/system/role/authUser'], resolve), name: 'AuthUser', - meta: { title: '鍒嗛厤鐢ㄦ埛', activeMenu: '/system/role'} + meta: { title: '鍒嗛厤鐢ㄦ埛', activeMenu: '/system/role' } } ] }, @@ -121,7 +121,7 @@ path: 'index/:dictId(\\d+)', component: (resolve) => require(['@/views/system/dict/data'], resolve), name: 'Data', - meta: { title: '瀛楀吀鏁版嵁', activeMenu: '/system/dict'} + meta: { title: '瀛楀吀鏁版嵁', activeMenu: '/system/dict' } } ] }, @@ -147,7 +147,7 @@ path: 'index', component: (resolve) => require(['@/views/tool/gen/editTable'], resolve), name: 'GenEdit', - meta: { title: '淇敼鐢熸垚閰嶇疆', activeMenu: '/tool/gen'} + meta: { title: '淇敼鐢熸垚閰嶇疆', activeMenu: '/tool/gen' } } ] } diff --git a/ruoyi-ui/src/store/modules/permission.js b/ruoyi-ui/src/store/modules/permission.js index dba9252..8d84fff 100644 --- a/ruoyi-ui/src/store/modules/permission.js +++ b/ruoyi-ui/src/store/modules/permission.js @@ -1,7 +1,7 @@ import { constantRoutes } from '@/router' import { getRouters } from '@/api/menu' import Layout from '@/layout/index' -import ParentView from '@/components/ParentView'; +import ParentView from '@/components/ParentView' import InnerLink from '@/layout/components/InnerLink' const permission = { @@ -24,7 +24,7 @@ // 椤堕儴瀵艰埅鑿滃崟榛樿娣诲姞缁熻鎶ヨ〃鏍忔寚鍚戦椤� const index = [{ path: 'index', - meta: { title: '缁熻鎶ヨ〃', icon: 'dashboard'} + meta: { title: '缁熻鎶ヨ〃', icon: 'dashboard' } }] state.topbarRouters = routes.concat(index); }, diff --git a/ruoyi-ui/src/store/modules/settings.js b/ruoyi-ui/src/store/modules/settings.js index 5f36d8e..2455a1e 100644 --- a/ruoyi-ui/src/store/modules/settings.js +++ b/ruoyi-ui/src/store/modules/settings.js @@ -8,7 +8,7 @@ theme: storageSetting.theme || '#409EFF', sideTheme: storageSetting.sideTheme || sideTheme, showSettings: showSettings, - topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav, + topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav, tagsView: storageSetting.tagsView === undefined ? tagsView : storageSetting.tagsView, fixedHeader: storageSetting.fixedHeader === undefined ? fixedHeader : storageSetting.fixedHeader, sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo, diff --git a/ruoyi-ui/src/store/modules/tagsView.js b/ruoyi-ui/src/store/modules/tagsView.js index ef2fe4c..002c1d0 100644 --- a/ruoyi-ui/src/store/modules/tagsView.js +++ b/ruoyi-ui/src/store/modules/tagsView.js @@ -14,7 +14,7 @@ }, ADD_CACHED_VIEW: (state, view) => { if (state.cachedViews.includes(view.name)) return - if (!view.meta.noCache) { + if (view.meta && !view.meta.noCache) { state.cachedViews.push(view.name) } }, @@ -63,7 +63,7 @@ } } }, - + DEL_RIGHT_VIEWS: (state, view) => { const index = state.visitedViews.findIndex(v => v.path === view.path) if (index === -1) { diff --git a/ruoyi-ui/src/utils/dict/index.js b/ruoyi-ui/src/utils/dict/index.js index 66ddfef..d6fdb80 100644 --- a/ruoyi-ui/src/utils/dict/index.js +++ b/ruoyi-ui/src/utils/dict/index.js @@ -5,7 +5,7 @@ mergeOptions(options) Vue.mixin({ data() { - if (this.$options.dicts === undefined || this.$options.dicts === null) { + if (this.$options === undefined || this.$options.dicts === undefined || this.$options.dicts === null) { return {} } const dict = new Dict() diff --git a/ruoyi-ui/src/views/login.vue b/ruoyi-ui/src/views/login.vue index 6c35bd8..4df8936 100644 --- a/ruoyi-ui/src/views/login.vue +++ b/ruoyi-ui/src/views/login.vue @@ -3,7 +3,12 @@ <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form"> <h3 class="title">RuoYi-Vue-Plus鍚庡彴绠$悊绯荤粺</h3> <el-form-item prop="username"> - <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="璐﹀彿"> + <el-input + v-model="loginForm.username" + type="text" + auto-complete="off" + placeholder="璐﹀彿" + > <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> </el-input> </el-form-item> @@ -66,7 +71,6 @@ data() { return { codeUrl: "", - cookiePassword: "", loginForm: { username: "admin", password: "admin123", diff --git a/ruoyi-ui/src/views/monitor/logininfor/index.vue b/ruoyi-ui/src/views/monitor/logininfor/index.vue index 0f4ecbb..98bd743 100644 --- a/ruoyi-ui/src/views/monitor/logininfor/index.vue +++ b/ruoyi-ui/src/views/monitor/logininfor/index.vue @@ -6,8 +6,8 @@ v-model="queryParams.ipaddr" placeholder="璇疯緭鍏ョ櫥褰曞湴鍧�" clearable + size="small" style="width: 240px;" - size="small" @keyup.enter.native="handleQuery" /> </el-form-item> @@ -16,8 +16,8 @@ v-model="queryParams.userName" placeholder="璇疯緭鍏ョ敤鎴峰悕绉�" clearable + size="small" style="width: 240px;" - size="small" @keyup.enter.native="handleQuery" /> </el-form-item> diff --git a/ruoyi-ui/src/views/monitor/operlog/index.vue b/ruoyi-ui/src/views/monitor/operlog/index.vue index 28f705b..9b8b785 100644 --- a/ruoyi-ui/src/views/monitor/operlog/index.vue +++ b/ruoyi-ui/src/views/monitor/operlog/index.vue @@ -6,8 +6,8 @@ v-model="queryParams.title" placeholder="璇疯緭鍏ョ郴缁熸ā鍧�" clearable - style="width: 240px;" size="small" + style="width: 240px;" @keyup.enter.native="handleQuery" /> </el-form-item> @@ -16,8 +16,8 @@ v-model="queryParams.operName" placeholder="璇疯緭鍏ユ搷浣滀汉鍛�" clearable - style="width: 240px;" size="small" + style="width: 240px;" @keyup.enter.native="handleQuery" /> </el-form-item> diff --git a/ruoyi-ui/src/views/system/dept/index.vue b/ruoyi-ui/src/views/system/dept/index.vue index f9c7741..e215b1c 100644 --- a/ruoyi-ui/src/views/system/dept/index.vue +++ b/ruoyi-ui/src/views/system/dept/index.vue @@ -179,8 +179,6 @@ isExpandAll: true, // 閲嶆柊娓叉煋琛ㄦ牸鐘舵�� refreshTable: true, - // 鏄惁灞曞紑 - expand: false, // 鏌ヨ鍙傛暟 queryParams: { deptName: undefined, @@ -276,7 +274,7 @@ this.open = true; this.title = "娣诲姞閮ㄩ棬"; listDept().then(response => { - this.deptOptions = this.handleTree(response.data, "deptId"); + this.deptOptions = this.handleTree(response.data, "deptId"); }); }, /** 灞曞紑/鎶樺彔鎿嶄綔 */ @@ -296,7 +294,7 @@ this.title = "淇敼閮ㄩ棬"; }); listDeptExcludeChild(row.deptId).then(response => { - this.deptOptions = this.handleTree(response.data, "deptId"); + this.deptOptions = this.handleTree(response.data, "deptId"); }); }, /** 鎻愪氦鎸夐挳 */ diff --git a/ruoyi-ui/src/views/system/dict/data.vue b/ruoyi-ui/src/views/system/dict/data.vue index bb77919..bf538ad 100644 --- a/ruoyi-ui/src/views/system/dict/data.vue +++ b/ruoyi-ui/src/views/system/dict/data.vue @@ -79,6 +79,15 @@ v-hasPermi="['system:dict:export']" >瀵煎嚭</el-button> </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-close" + size="mini" + @click="handleClose" + >鍏抽棴</el-button> + </el-col> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> </el-row> @@ -316,6 +325,11 @@ this.queryParams.pageNum = 1; this.getList(); }, + /** 杩斿洖鎸夐挳鎿嶄綔 */ + handleClose() { + const obj = { path: "/system/dict" }; + this.$tab.closeOpenPage(obj); + }, /** 閲嶇疆鎸夐挳鎿嶄綔 */ resetQuery() { this.resetForm("queryForm"); diff --git a/ruoyi-ui/src/views/system/menu/index.vue b/ruoyi-ui/src/views/system/menu/index.vue index a89e1ee..d65773a 100644 --- a/ruoyi-ui/src/views/system/menu/index.vue +++ b/ruoyi-ui/src/views/system/menu/index.vue @@ -78,7 +78,8 @@ </el-table-column> <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> <template slot-scope="scope"> - <el-button size="mini" + <el-button + size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" @@ -126,8 +127,8 @@ </el-radio-group> </el-form-item> </el-col> - <el-col :span="24"> - <el-form-item v-if="form.menuType != 'F'" label="鑿滃崟鍥炬爣"> + <el-col :span="24" v-if="form.menuType != 'F'"> + <el-form-item label="鑿滃崟鍥炬爣"> <el-popover placement="bottom-start" width="460" @@ -158,8 +159,8 @@ <el-input-number v-model="form.orderNum" controls-position="right" :min="0" /> </el-form-item> </el-col> - <el-col :span="12"> - <el-form-item v-if="form.menuType != 'F'"> + <el-col :span="12" v-if="form.menuType != 'F'"> + <el-form-item> <span slot="label"> <el-tooltip content="閫夋嫨鏄閾惧垯璺敱鍦板潃闇�瑕佷互`http(s)://`寮�澶�" placement="top"> <i class="el-icon-question"></i> @@ -172,8 +173,8 @@ </el-radio-group> </el-form-item> </el-col> - <el-col :span="12"> - <el-form-item v-if="form.menuType != 'F'" prop="path"> + <el-col :span="12" v-if="form.menuType != 'F'"> + <el-form-item prop="path"> <span slot="label"> <el-tooltip content="璁块棶鐨勮矾鐢卞湴鍧�锛屽锛歚user`锛屽澶栫綉鍦板潃闇�鍐呴摼璁块棶鍒欎互`http(s)://`寮�澶�" placement="top"> <i class="el-icon-question"></i> @@ -194,8 +195,8 @@ <el-input v-model="form.component" placeholder="璇疯緭鍏ョ粍浠惰矾寰�" /> </el-form-item> </el-col> - <el-col :span="12"> - <el-form-item v-if="form.menuType != 'M'"> + <el-col :span="12" v-if="form.menuType != 'M'"> + <el-form-item> <el-input v-model="form.perms" placeholder="璇疯緭鍏ユ潈闄愭爣璇�" maxlength="100" /> <span slot="label"> <el-tooltip content="鎺у埗鍣ㄤ腑瀹氫箟鐨勬潈闄愬瓧绗︼紝濡傦細@PreAuthorize(`@ss.hasPermi('system:user:list')`)" placement="top"> @@ -205,8 +206,8 @@ </span> </el-form-item> </el-col> - <el-col :span="12"> - <el-form-item v-if="form.menuType == 'C'"> + <el-col :span="12" v-if="form.menuType == 'C'"> + <el-form-item> <el-input v-model="form.query" placeholder="璇疯緭鍏ヨ矾鐢卞弬鏁�" maxlength="255" /> <span slot="label"> <el-tooltip content='璁块棶璺敱鐨勯粯璁や紶閫掑弬鏁帮紝濡傦細`{"id": 1, "name": "ry"}`' placement="top"> @@ -216,8 +217,8 @@ </span> </el-form-item> </el-col> - <el-col :span="12"> - <el-form-item v-if="form.menuType == 'C'"> + <el-col :span="12" v-if="form.menuType == 'C'"> + <el-form-item> <span slot="label"> <el-tooltip content="閫夋嫨鏄垯浼氳`keep-alive`缂撳瓨锛岄渶瑕佸尮閰嶇粍浠剁殑`name`鍜屽湴鍧�淇濇寔涓�鑷�" placement="top"> <i class="el-icon-question"></i> @@ -230,8 +231,8 @@ </el-radio-group> </el-form-item> </el-col> - <el-col :span="12"> - <el-form-item v-if="form.menuType != 'F'"> + <el-col :span="12" v-if="form.menuType != 'F'"> + <el-form-item> <span slot="label"> <el-tooltip content="閫夋嫨闅愯棌鍒欒矾鐢卞皢涓嶄細鍑虹幇鍦ㄤ晶杈规爮锛屼絾浠嶇劧鍙互璁块棶" placement="top"> <i class="el-icon-question"></i> @@ -247,8 +248,8 @@ </el-radio-group> </el-form-item> </el-col> - <el-col :span="12"> - <el-form-item v-if="form.menuType != 'F'"> + <el-col :span="12" v-if="form.menuType != 'F'"> + <el-form-item> <span slot="label"> <el-tooltip content="閫夋嫨鍋滅敤鍒欒矾鐢卞皢涓嶄細鍑虹幇鍦ㄤ晶杈规爮锛屼篃涓嶈兘琚闂�" placement="top"> <i class="el-icon-question"></i> diff --git a/ruoyi-ui/src/views/system/role/authUser.vue b/ruoyi-ui/src/views/system/role/authUser.vue index e18ea8b..dd18812 100644 --- a/ruoyi-ui/src/views/system/role/authUser.vue +++ b/ruoyi-ui/src/views/system/role/authUser.vue @@ -153,8 +153,8 @@ }, // 杩斿洖鎸夐挳 handleClose() { - this.$store.dispatch("tagsView/delView", this.$route); - this.$router.push({ path: "/system/role" }); + const obj = { path: "/system/role" }; + this.$tab.closeOpenPage(obj); }, /** 鎼滅储鎸夐挳鎿嶄綔 */ handleQuery() { diff --git a/ruoyi-ui/src/views/system/role/index.vue b/ruoyi-ui/src/views/system/role/index.vue index a2a4120..779f556 100644 --- a/ruoyi-ui/src/views/system/role/index.vue +++ b/ruoyi-ui/src/views/system/role/index.vue @@ -355,8 +355,7 @@ /** 鏌ヨ瑙掕壊鍒楄〃 */ getList() { this.loading = true; - listRole(this.addDateRange(this.queryParams, this.dateRange)).then( - response => { + listRole(this.addDateRange(this.queryParams, this.dateRange)).then(response => { this.roleList = response.rows; this.total = response.total; this.loading = false; diff --git a/ruoyi-ui/src/views/system/role/selectUser.vue b/ruoyi-ui/src/views/system/role/selectUser.vue index a9e2ce0..02610d8 100644 --- a/ruoyi-ui/src/views/system/role/selectUser.vue +++ b/ruoyi-ui/src/views/system/role/selectUser.vue @@ -123,6 +123,10 @@ handleSelectUser() { const roleId = this.queryParams.roleId; const userIds = this.userIds.join(","); + if (userIds == "") { + this.$modal.msgError("璇烽�夋嫨瑕佸垎閰嶇殑鐢ㄦ埛"); + return; + } authUserSelectAll({ roleId: roleId, userIds: userIds }).then(res => { this.$modal.msgSuccess(res.msg); if (res.code === 200) { diff --git a/ruoyi-ui/src/views/system/user/authRole.vue b/ruoyi-ui/src/views/system/user/authRole.vue index dabdc27..52a7923 100644 --- a/ruoyi-ui/src/views/system/user/authRole.vue +++ b/ruoyi-ui/src/views/system/user/authRole.vue @@ -33,7 +33,7 @@ </template> </el-table-column> </el-table> - + <pagination v-show="total>0" :total="total" :page.sync="pageNum" :limit.sync="pageSize" /> <el-form label-width="100px"> @@ -109,9 +109,9 @@ }, /** 鍏抽棴鎸夐挳 */ close() { - this.$store.dispatch("tagsView/delView", this.$route); - this.$router.push({ path: "/system/user" }); + const obj = { path: "/system/user" }; + this.$tab.closeOpenPage(obj); }, }, }; -</script> \ No newline at end of file +</script> diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue index 4d86a14..1ff9b90 100644 --- a/ruoyi-ui/src/views/system/user/index.vue +++ b/ruoyi-ui/src/views/system/user/index.vue @@ -206,7 +206,7 @@ </el-col> </el-row> - <!-- 娣诲姞鎴栦慨鏀瑰弬鏁伴厤缃璇濇 --> + <!-- 娣诲姞鎴栦慨鏀圭敤鎴烽厤缃璇濇 --> <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body> <el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-row> @@ -652,7 +652,6 @@ /** 涓嬭浇妯℃澘鎿嶄綔 */ importTemplate() { this.download('system/user/importTemplate', { - ...this.queryParams }, `user_template_${new Date().getTime()}.xlsx`) }, // 鏂囦欢涓婁紶涓鐞� diff --git a/ruoyi-ui/src/views/system/user/profile/resetPwd.vue b/ruoyi-ui/src/views/system/user/profile/resetPwd.vue index 119f103..0a8d216 100644 --- a/ruoyi-ui/src/views/system/user/profile/resetPwd.vue +++ b/ruoyi-ui/src/views/system/user/profile/resetPwd.vue @@ -29,7 +29,6 @@ } }; return { - test: "1test", user: { oldPassword: undefined, newPassword: undefined, @@ -55,17 +54,14 @@ submit() { this.$refs["form"].validate(valid => { if (valid) { - updateUserPwd(this.user.oldPassword, this.user.newPassword).then( - response => { - this.$modal.msgSuccess("淇敼鎴愬姛"); - } - ); + updateUserPwd(this.user.oldPassword, this.user.newPassword).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + }); } }); }, close() { - this.$store.dispatch("tagsView/delView", this.$route); - this.$router.push({ path: "/index" }); + this.$tab.closePage(); } } }; diff --git a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue b/ruoyi-ui/src/views/system/user/profile/userAvatar.vue index 08652c2..d094602 100644 --- a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue +++ b/ruoyi-ui/src/views/system/user/profile/userAvatar.vue @@ -1,7 +1,7 @@ <template> <div> <div class="user-info-head" @click="editCropper()"><img v-bind:src="options.img" title="鐐瑰嚮涓婁紶澶村儚" class="img-circle img-lg" /></div> - <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body @opened="modalOpened" @close="closeDialog()"> + <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body @opened="modalOpened" @close="closeDialog"> <el-row> <el-col :xs="24" :md="12" :style="{height: '350px'}"> <vue-cropper @@ -143,7 +143,7 @@ // 鍏抽棴绐楀彛 closeDialog() { this.options.img = store.getters.avatar - this.visible = false; + this.visible = false; } } }; @@ -172,4 +172,4 @@ line-height: 110px; border-radius: 50%; } -</style> \ No newline at end of file +</style> diff --git a/ruoyi-ui/src/views/system/user/profile/userInfo.vue b/ruoyi-ui/src/views/system/user/profile/userInfo.vue index 854b819..b422c51 100644 --- a/ruoyi-ui/src/views/system/user/profile/userInfo.vue +++ b/ruoyi-ui/src/views/system/user/profile/userInfo.vue @@ -2,7 +2,7 @@ <el-form ref="form" :model="user" :rules="rules" label-width="80px"> <el-form-item label="鐢ㄦ埛鏄电О" prop="nickName"> <el-input v-model="user.nickName" maxlength="30" /> - </el-form-item> + </el-form-item> <el-form-item label="鎵嬫満鍙风爜" prop="phonenumber"> <el-input v-model="user.phonenumber" maxlength="11" /> </el-form-item> @@ -68,8 +68,7 @@ }); }, close() { - this.$store.dispatch("tagsView/delView", this.$route); - this.$router.push({ path: "/index" }); + this.$tab.closePage(); } } }; diff --git a/ruoyi-ui/src/views/tool/gen/editTable.vue b/ruoyi-ui/src/views/tool/gen/editTable.vue index 95b12cf..6ba7f5d 100644 --- a/ruoyi-ui/src/views/tool/gen/editTable.vue +++ b/ruoyi-ui/src/views/tool/gen/editTable.vue @@ -211,8 +211,8 @@ }, /** 鍏抽棴鎸夐挳 */ close() { - this.$store.dispatch("tagsView/delView", this.$route); - this.$router.push({ path: "/tool/gen", query: { t: Date.now(), pageNum: this.$route.query.pageNum } }) + const obj = { path: "/tool/gen", query: { t: Date.now(), pageNum: this.$route.query.pageNum } }; + this.$tab.closeOpenPage(obj); } }, mounted() { -- Gitblit v1.9.3