From 4af334f2ad7eeab801b8724f0bf420f4276e98ed Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期四, 25 八月 2022 12:08:50 +0800 Subject: [PATCH] update 同步 ruoyi 新功能 --- ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java | 8 + ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java | 12 ++ script/sql/ry_vue_4.X.sql | 1 ruoyi-ui/src/views/system/role/index.vue | 17 -- ruoyi-ui/src/views/system/user/index.vue | 11 - ruoyi-ui/src/api/system/user.js | 8 + ruoyi-system/src/main/java/com/ruoyi/system/service/SysPermissionService.java | 14 ++ script/sql/postgres/postgres_ry_vue_4.X.sql | 1 script/sql/sqlserver/sqlserver_ry_vue_4.X.sql | 2 ruoyi-ui/src/api/system/dept.js | 18 -- ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java | 12 ++ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java | 18 +++ ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java | 6 + script/sql/update/oracle/update-4.2-4.3.sql | 2 ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java | 8 + script/sql/update/postgres/update-4.2-4.3.sql | 3 ruoyi-ui/src/api/system/role.js | 8 + ruoyi-ui/src/components/ImageUpload/index.vue | 68 ++++++----- script/sql/update/update-4.2-4.3.sql | 2 script/sql/update/sqlserver/update-4.2-4.3.sql | 3 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java | 19 +++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java | 26 ---- ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java | 8 + script/sql/oracle/oracle_ry_vue_4.X.sql | 1 ruoyi-ui/src/components/FileUpload/index.vue | 26 ++- ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java | 2 ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java | 5 ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml | 7 + 28 files changed, 213 insertions(+), 103 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java index 2980e64..411eee9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java @@ -1,7 +1,6 @@ package com.ruoyi.web.controller.system; import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.util.ArrayUtil; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.constant.UserConstants; @@ -15,9 +14,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * 閮ㄩ棬淇℃伅 @@ -66,29 +63,6 @@ public R<SysDept> getInfo(@PathVariable Long deptId) { deptService.checkDeptDataScope(deptId); return R.ok(deptService.selectDeptById(deptId)); - } - - /** - * 鑾峰彇閮ㄩ棬涓嬫媺鏍戝垪琛� - */ - @GetMapping("/treeselect") - public R<List<Tree<Long>>> treeselect(SysDept dept) { - List<SysDept> depts = deptService.selectDeptList(dept); - return R.ok(deptService.buildDeptTreeSelect(depts)); - } - - /** - * 鍔犺浇瀵瑰簲瑙掕壊閮ㄩ棬鍒楄〃鏍� - * - * @param roleId 瑙掕壊ID - */ - @GetMapping(value = "/roleDeptTreeselect/{roleId}") - public R<Map<String, Object>> roleDeptTreeselect(@PathVariable("roleId") Long roleId) { - List<SysDept> depts = deptService.selectDeptList(new SysDept()); - Map<String, Object> ajax = new HashMap<>(); - ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); - ajax.put("depts", deptService.buildDeptTreeSelect(depts)); - return R.ok(ajax); } /** 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 1fcd599..5c33168 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 @@ -68,6 +68,8 @@ user.setUserId(getUserId()); user.setUserName(null); user.setPassword(null); + user.setAvatar(null); + user.setDeptId(null); if (userService.updateUserProfile(user) > 0) { return R.ok(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java index 08aeb2d..5768806 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java @@ -7,6 +7,7 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; @@ -15,6 +16,7 @@ import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysUserRole; +import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.SysPermissionService; @@ -23,7 +25,9 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 瑙掕壊淇℃伅 @@ -38,6 +42,7 @@ private final ISysRoleService roleService; private final ISysUserService userService; + private final ISysDeptService deptService; private final SysPermissionService permissionService; /** @@ -215,4 +220,18 @@ roleService.checkRoleDataScope(roleId); return toAjax(roleService.insertAuthUsers(roleId, userIds)); } + + /** + * 鑾峰彇瀵瑰簲瑙掕壊閮ㄩ棬鏍戝垪琛� + * + * @param roleId 瑙掕壊ID + */ + @SaCheckPermission("system:role:list") + @GetMapping(value = "/deptTree/{roleId}") + public R<Map<String, Object>> roleDeptTreeselect(@PathVariable("roleId") Long roleId) { + Map<String, Object> ajax = new HashMap<>(); + ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); + ajax.put("depts", deptService.selectDeptTreeList(new SysDept())); + return R.ok(ajax); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index 8a65b69..e939273 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -3,6 +3,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.secure.BCrypt; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; import com.ruoyi.common.annotation.Log; @@ -23,6 +24,7 @@ import com.ruoyi.system.domain.vo.SysUserExportVo; import com.ruoyi.system.domain.vo.SysUserImportVo; import com.ruoyi.system.listener.SysUserImportListener; +import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysPostService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; @@ -52,6 +54,7 @@ private final ISysUserService userService; private final ISysRoleService roleService; private final ISysPostService postService; + private final ISysDeptService deptService; /** * 鑾峰彇鐢ㄦ埛鍒楄〃 @@ -235,4 +238,13 @@ userService.insertUserAuth(userId, roleIds); return R.ok(); } + + /** + * 鑾峰彇閮ㄩ棬鏍戝垪琛� + */ + @SaCheckPermission("system:user:list") + @GetMapping("/deptTree") + public R<List<Tree<Long>>> deptTree(SysDept dept) { + return R.ok(deptService.selectDeptTreeList(dept)); + } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java index 938b8a4..340f857 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java @@ -17,6 +17,7 @@ import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; +import java.util.Set; /** * 瑙掕壊琛� sys_role @@ -114,6 +115,11 @@ @TableField(exist = false) private Long[] deptIds; + /** + * 瑙掕壊鑿滃崟鏉冮檺 + */ + private Set<String> permissions; + public SysRole(Long roleId) { this.roleId = roleId; } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java index 551a1ec..fa2cdfb 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java @@ -37,6 +37,11 @@ public class LogAspect { /** + * 鎺掗櫎鏁忔劅灞炴�у瓧娈� + */ + public static final String[] EXCLUDE_PROPERTIES = { "password", "oldPassword", "newPassword", "confirmPassword" }; + + /** * 澶勭悊瀹岃姹傚悗鎵ц * * @param joinPoint 鍒囩偣 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java index 8844f27..0043903 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java @@ -41,6 +41,14 @@ List<String> selectMenuPermsByUserId(Long userId); /** + * 鏍规嵁瑙掕壊ID鏌ヨ鏉冮檺 + * + * @param roleId 瑙掕壊ID + * @return 鏉冮檺鍒楄〃 + */ + List<String> selectMenuPermsByRoleId(Long roleId); + + /** * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟 * * @return 鑿滃崟鍒楄〃 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java index 8508d4f..d821a4a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java @@ -20,6 +20,14 @@ List<SysDept> selectDeptList(SysDept dept); /** + * 鏌ヨ閮ㄩ棬鏍戠粨鏋勪俊鎭� + * + * @param dept 閮ㄩ棬淇℃伅 + * @return 閮ㄩ棬鏍戜俊鎭泦鍚� + */ + List<Tree<Long>> selectDeptTreeList(SysDept dept); + + /** * 鏋勫缓鍓嶇鎵�闇�瑕佷笅鎷夋爲缁撴瀯 * * @param depts 閮ㄩ棬鍒楄〃 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java index e7b5c9b..813b1e2 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java @@ -40,6 +40,14 @@ Set<String> selectMenuPermsByUserId(Long userId); /** + * 鏍规嵁瑙掕壊ID鏌ヨ鏉冮檺 + * + * @param roleId 瑙掕壊ID + * @return 鏉冮檺鍒楄〃 + */ + Set<String> selectMenuPermsByRoleId(Long roleId); + + /** * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟鏍戜俊鎭� * * @param userId 鐢ㄦ埛ID diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysPermissionService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysPermissionService.java index a255fe8..97ff480 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysPermissionService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysPermissionService.java @@ -1,10 +1,12 @@ package com.ruoyi.system.service; +import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.HashSet; +import java.util.List; import java.util.Set; /** @@ -48,7 +50,17 @@ if (user.isAdmin()) { perms.add("*:*:*"); } else { - perms.addAll(menuService.selectMenuPermsByUserId(user.getUserId())); + List<SysRole> roles = user.getRoles(); + if (!roles.isEmpty() && roles.size() > 1) { + // 澶氳鑹茶缃畃ermissions灞炴�э紝浠ヤ究鏁版嵁鏉冮檺鍖归厤鏉冮檺 + for (SysRole role : roles) { + Set<String> rolePerms = menuService.selectMenuPermsByRoleId(role.getRoleId()); + role.setPermissions(rolePerms); + perms.addAll(rolePerms); + } + } else { + perms.addAll(menuService.selectMenuPermsByUserId(user.getUserId())); + } } return perms; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index 32e06d3..b309386 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -59,6 +59,18 @@ } /** + * 鏌ヨ閮ㄩ棬鏍戠粨鏋勪俊鎭� + * + * @param dept 閮ㄩ棬淇℃伅 + * @return 閮ㄩ棬鏍戜俊鎭泦鍚� + */ + @Override + public List<Tree<Long>> selectDeptTreeList(SysDept dept) { + List<SysDept> depts = this.selectDeptList(dept); + return buildDeptTreeSelect(depts); + } + + /** * 鏋勫缓鍓嶇鎵�闇�瑕佷笅鎷夋爲缁撴瀯 * * @param depts 閮ㄩ棬鍒楄〃 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index 6525d31..c29bfab 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -98,6 +98,24 @@ } /** + * 鏍规嵁瑙掕壊ID鏌ヨ鏉冮檺 + * + * @param roleId 瑙掕壊ID + * @return 鏉冮檺鍒楄〃 + */ + @Override + public Set<String> selectMenuPermsByRoleId(Long roleId) { + List<String> perms = baseMapper.selectMenuPermsByRoleId(roleId); + Set<String> permsSet = new HashSet<>(); + for (String perm : perms) { + if (StringUtils.isNotEmpty(perm)) { + permsSet.addAll(Arrays.asList(perm.trim().split(","))); + } + } + return permsSet; + } + + /** * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟 * * @param userId 鐢ㄦ埛鍚嶇О diff --git a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml index 2f69197..d308d8d 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -95,4 +95,11 @@ and sur.user_id = #{userId} </select> + <select id="selectMenuPermsByRoleId" parameterType="Long" resultType="String"> + select distinct m.perms + from sys_menu m + left join sys_role_menu rm on m.menu_id = rm.menu_id + where m.status = '0' and rm.role_id = #{roleId} + </select> + </mapper> diff --git a/ruoyi-ui/src/api/system/dept.js b/ruoyi-ui/src/api/system/dept.js index 2804676..331c4b2 100644 --- a/ruoyi-ui/src/api/system/dept.js +++ b/ruoyi-ui/src/api/system/dept.js @@ -25,22 +25,6 @@ }) } -// 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� -export function treeselect() { - return request({ - url: '/system/dept/treeselect', - method: 'get' - }) -} - -// 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戠粨鏋� -export function roleDeptTreeselect(roleId) { - return request({ - url: '/system/dept/roleDeptTreeselect/' + roleId, - method: 'get' - }) -} - // 鏂板閮ㄩ棬 export function addDept(data) { return request({ @@ -65,4 +49,4 @@ url: '/system/dept/' + deptId, method: 'delete' }) -} \ No newline at end of file +} diff --git a/ruoyi-ui/src/api/system/role.js b/ruoyi-ui/src/api/system/role.js index 888538e..f13e6f4 100644 --- a/ruoyi-ui/src/api/system/role.js +++ b/ruoyi-ui/src/api/system/role.js @@ -109,3 +109,11 @@ params: data }) } + +// 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戠粨鏋� +export function deptTreeSelect(roleId) { + return request({ + url: '/system/role/deptTree/' + roleId, + method: 'get' + }) +} diff --git a/ruoyi-ui/src/api/system/user.js b/ruoyi-ui/src/api/system/user.js index 4fd752b..f2f76ef 100644 --- a/ruoyi-ui/src/api/system/user.js +++ b/ruoyi-ui/src/api/system/user.js @@ -125,3 +125,11 @@ params: data }) } + +// 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� +export function deptTreeSelect() { + return request({ + url: '/system/user/deptTree', + method: 'get' + }) +} diff --git a/ruoyi-ui/src/components/FileUpload/index.vue b/ruoyi-ui/src/components/FileUpload/index.vue index bb5b3da..1095824 100644 --- a/ruoyi-ui/src/components/FileUpload/index.vue +++ b/ruoyi-ui/src/components/FileUpload/index.vue @@ -12,7 +12,7 @@ :show-file-list="false" :headers="headers" class="upload-file-uploader" - ref="upload" + ref="fileUpload" > <!-- 涓婁紶鎸夐挳 --> <el-button size="mini" type="primary">閫夊彇鏂囦欢</el-button> @@ -163,17 +163,13 @@ handleUploadSuccess(res, file) { if (res.code === 200) { this.uploadList.push({ name: res.data.fileName, url: res.data.url, ossId: res.data.ossId }); - if (this.uploadList.length === this.number) { - this.fileList = this.fileList.concat(this.uploadList); - this.uploadList = []; - this.number = 0; - this.$emit("input", this.listToString(this.fileList)); - this.$modal.closeLoading(); - } + this.uploadedSuccessfully(); } else { - this.$modal.msgError(res.msg); - this.$modal.closeLoading(); this.number--; + this.$modal.closeLoading(); + this.$modal.msgError(res.msg); + this.$refs.fileUpload.handleRemove(file); + this.uploadedSuccessfully(); } }, // 鍒犻櫎鏂囦欢 @@ -183,6 +179,16 @@ this.fileList.splice(index, 1); this.$emit("input", this.listToString(this.fileList)); }, + // 涓婁紶缁撴潫澶勭悊 + uploadedSuccessfully() { + if (this.number > 0 && this.uploadList.length === this.number) { + this.fileList = this.fileList.concat(this.uploadList); + this.uploadList = []; + this.number = 0; + this.$emit("input", this.listToString(this.fileList)); + this.$modal.closeLoading(); + } + }, // 鑾峰彇鏂囦欢鍚嶇О getFileName(name) { // 濡傛灉鏄痷rl閭d箞鍙栨渶鍚庣殑鍚嶅瓧 濡傛灉涓嶆槸鐩存帴杩斿洖 diff --git a/ruoyi-ui/src/components/ImageUpload/index.vue b/ruoyi-ui/src/components/ImageUpload/index.vue index 82c3b3c..981ca46 100644 --- a/ruoyi-ui/src/components/ImageUpload/index.vue +++ b/ruoyi-ui/src/components/ImageUpload/index.vue @@ -9,8 +9,8 @@ :limit="limit" :on-error="handleUploadError" :on-exceed="handleExceed" - name="file" - :on-remove="handleRemove" + ref="imageUpload" + :on-remove="handleDelete" :show-file-list="true" :headers="headers" :file-list="fileList" @@ -120,33 +120,6 @@ }, }, methods: { - // 鍒犻櫎鍥剧墖 - handleRemove(file, fileList) { - const findex = this.fileList.map(f => f.name).indexOf(file.name); - if(findex > -1) { - let ossId = this.fileList[findex].ossId; - delOss(ossId); - this.fileList.splice(findex, 1); - this.$emit("input", this.listToString(this.fileList)); - } - }, - // 涓婁紶鎴愬姛鍥炶皟 - handleUploadSuccess(res) { - if (res.code == 200) { - this.uploadList.push({ name: res.data.fileName, url: res.data.url, ossId: res.data.ossId }); - if (this.uploadList.length === this.number) { - this.fileList = this.fileList.concat(this.uploadList); - this.uploadList = []; - this.number = 0; - this.$emit("input", this.listToString(this.fileList)); - this.$modal.closeLoading(); - } - } else { - this.$modal.msgError(res.msg); - this.$modal.closeLoading(); - this.number--; - } - }, // 涓婁紶鍓峫oading鍔犺浇 handleBeforeUpload(file) { let isImg = false; @@ -182,10 +155,43 @@ handleExceed() { this.$modal.msgError(`涓婁紶鏂囦欢鏁伴噺涓嶈兘瓒呰繃 ${this.limit} 涓�!`); }, + // 涓婁紶鎴愬姛鍥炶皟 + handleUploadSuccess(res, file) { + if (res.code === 200) { + this.uploadList.push({ name: res.data.fileName, url: res.data.url, ossId: res.data.ossId }); + this.uploadedSuccessfully(); + } else { + this.number--; + this.$modal.closeLoading(); + this.$modal.msgError(res.msg); + this.$refs.imageUpload.handleRemove(file); + this.uploadedSuccessfully(); + } + }, + // 鍒犻櫎鍥剧墖 + handleDelete(file) { + const findex = this.fileList.map(f => f.name).indexOf(file.name); + if(findex > -1) { + let ossId = this.fileList[findex].ossId; + delOss(ossId); + this.fileList.splice(findex, 1); + this.$emit("input", this.listToString(this.fileList)); + } + }, // 涓婁紶澶辫触 handleUploadError(res) { this.$modal.msgError("涓婁紶鍥剧墖澶辫触锛岃閲嶈瘯"); this.$modal.closeLoading(); + }, + // 涓婁紶缁撴潫澶勭悊 + uploadedSuccessfully() { + if (this.number > 0 && this.uploadList.length === this.number) { + this.fileList = this.fileList.concat(this.uploadList); + this.uploadList = []; + this.number = 0; + this.$emit("input", this.listToString(this.fileList)); + this.$modal.closeLoading(); + } }, // 棰勮 handlePictureCardPreview(file) { @@ -197,7 +203,9 @@ let strs = ""; separator = separator || ","; for (let i in list) { - strs += list[i].ossId + separator; + if (list[i].ossId) { + strs += list[i].ossId + separator; + } } return strs != "" ? strs.substr(0, strs.length - 1) : ""; }, diff --git a/ruoyi-ui/src/views/system/role/index.vue b/ruoyi-ui/src/views/system/role/index.vue index b08cf34..c14984b 100644 --- a/ruoyi-ui/src/views/system/role/index.vue +++ b/ruoyi-ui/src/views/system/role/index.vue @@ -254,9 +254,8 @@ </template> <script> -import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus } from "@/api/system/role"; +import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role"; import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu"; -import { treeselect as deptTreeselect, roleDeptTreeselect } from "@/api/system/dept"; export default { name: "Role", @@ -364,12 +363,6 @@ this.menuOptions = response.data; }); }, - /** 鏌ヨ閮ㄩ棬鏍戠粨鏋� */ - getDeptTreeselect() { - deptTreeselect().then(response => { - this.deptOptions = response.data; - }); - }, // 鎵�鏈夎彍鍗曡妭鐐规暟鎹� getMenuAllCheckedKeys() { // 鐩墠琚�変腑鐨勮彍鍗曡妭鐐� @@ -396,8 +389,8 @@ }); }, /** 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戠粨鏋� */ - getRoleDeptTreeselect(roleId) { - return roleDeptTreeselect(roleId).then(response => { + getDeptTree(roleId) { + return deptTreeSelect(roleId).then(response => { this.deptOptions = response.data.depts; return response; }); @@ -543,12 +536,12 @@ /** 鍒嗛厤鏁版嵁鏉冮檺鎿嶄綔 */ handleDataScope(row) { this.reset(); - const roleDeptTreeselect = this.getRoleDeptTreeselect(row.roleId); + const deptTreeSelect = this.getDeptTree(row.roleId); getRole(row.roleId).then(response => { this.form = response.data; this.openDataScope = true; this.$nextTick(() => { - roleDeptTreeselect.then(res => { + deptTreeSelect.then(res => { this.$refs.dept.setCheckedKeys(res.data.checkedKeys); }); }); diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue index 7b79ac8..72bb942 100644 --- a/ruoyi-ui/src/views/system/user/index.vue +++ b/ruoyi-ui/src/views/system/user/index.vue @@ -342,9 +342,8 @@ </template> <script> -import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus } from "@/api/system/user"; +import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus, deptTreeSelect } from "@/api/system/user"; import { getToken } from "@/utils/auth"; -import { treeselect } from "@/api/system/dept"; import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; @@ -462,7 +461,7 @@ }, created() { this.getList(); - this.getTreeselect(); + this.getDeptTree(); this.getConfigKey("sys.user.initPassword").then(response => { this.initPassword = response.msg; }); @@ -479,8 +478,8 @@ ); }, /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */ - getTreeselect() { - treeselect().then(response => { + getDeptTree() { + deptTreeSelect().then(response => { this.deptOptions = response.data; }); }, @@ -561,7 +560,6 @@ /** 鏂板鎸夐挳鎿嶄綔 */ handleAdd() { this.reset(); - this.getTreeselect(); getUser().then(response => { this.postOptions = response.data.posts; this.roleOptions = response.data.roles; @@ -573,7 +571,6 @@ /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { this.reset(); - this.getTreeselect(); const userId = row.userId || this.ids; getUser(userId).then(response => { this.form = response.data.user; diff --git a/script/sql/oracle/oracle_ry_vue_4.X.sql b/script/sql/oracle/oracle_ry_vue_4.X.sql index 7fc223a..ac8523d 100644 --- a/script/sql/oracle/oracle_ry_vue_4.X.sql +++ b/script/sql/oracle/oracle_ry_vue_4.X.sql @@ -642,6 +642,7 @@ insert into sys_dict_data values(15, 2, '鍏憡', '2', 'sys_notice_type', '', 'success', 'N', '0', 'admin', sysdate, '', null, '鍏憡'); insert into sys_dict_data values(16, 1, '姝e父', '0', 'sys_notice_status', '', 'primary', 'Y', '0', 'admin', sysdate, '', null, '姝e父鐘舵��'); insert into sys_dict_data values(17, 2, '鍏抽棴', '1', 'sys_notice_status', '', 'danger', 'N', '0', 'admin', sysdate, '', null, '鍏抽棴鐘舵��'); +insert into sys_dict_data values(29, 99, '鍏朵粬', '0', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate, '', null, '鍏朵粬鎿嶄綔'); insert into sys_dict_data values(18, 1, '鏂板', '1', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate, '', null, '鏂板鎿嶄綔'); insert into sys_dict_data values(19, 2, '淇敼', '2', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate, '', null, '淇敼鎿嶄綔'); insert into sys_dict_data values(20, 3, '鍒犻櫎', '3', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', sysdate, '', null, '鍒犻櫎鎿嶄綔'); diff --git a/script/sql/postgres/postgres_ry_vue_4.X.sql b/script/sql/postgres/postgres_ry_vue_4.X.sql index 468db1b..e529254 100644 --- a/script/sql/postgres/postgres_ry_vue_4.X.sql +++ b/script/sql/postgres/postgres_ry_vue_4.X.sql @@ -650,6 +650,7 @@ insert into sys_dict_data values(15, 2, '鍏憡', '2', 'sys_notice_type', '', 'success', 'N', '0', 'admin', now(), '', null, '鍏憡'); insert into sys_dict_data values(16, 1, '姝e父', '0', 'sys_notice_status', '', 'primary', 'Y', '0', 'admin', now(), '', null, '姝e父鐘舵��'); insert into sys_dict_data values(17, 2, '鍏抽棴', '1', 'sys_notice_status', '', 'danger', 'N', '0', 'admin', now(), '', null, '鍏抽棴鐘舵��'); +insert into sys_dict_data values(29, 99, '鍏朵粬', '0', 'sys_oper_type', '', 'info', 'N', '0', 'admin', now(), '', null, '鍏朵粬鎿嶄綔'); insert into sys_dict_data values(18, 1, '鏂板', '1', 'sys_oper_type', '', 'info', 'N', '0', 'admin', now(), '', null, '鏂板鎿嶄綔'); insert into sys_dict_data values(19, 2, '淇敼', '2', 'sys_oper_type', '', 'info', 'N', '0', 'admin', now(), '', null, '淇敼鎿嶄綔'); insert into sys_dict_data values(20, 3, '鍒犻櫎', '3', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', now(), '', null, '鍒犻櫎鎿嶄綔'); diff --git a/script/sql/ry_vue_4.X.sql b/script/sql/ry_vue_4.X.sql index fc749b6..fbe9f79 100644 --- a/script/sql/ry_vue_4.X.sql +++ b/script/sql/ry_vue_4.X.sql @@ -499,6 +499,7 @@ insert into sys_dict_data values(15, 2, '鍏憡', '2', 'sys_notice_type', '', 'success', 'N', '0', 'admin', sysdate(), '', null, '鍏憡'); insert into sys_dict_data values(16, 1, '姝e父', '0', 'sys_notice_status', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '姝e父鐘舵��'); insert into sys_dict_data values(17, 2, '鍏抽棴', '1', 'sys_notice_status', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '鍏抽棴鐘舵��'); +insert into sys_dict_data values(29, 99, '鍏朵粬', '0', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate(), '', null, '鍏朵粬鎿嶄綔'); insert into sys_dict_data values(18, 1, '鏂板', '1', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate(), '', null, '鏂板鎿嶄綔'); insert into sys_dict_data values(19, 2, '淇敼', '2', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate(), '', null, '淇敼鎿嶄綔'); insert into sys_dict_data values(20, 3, '鍒犻櫎', '3', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '鍒犻櫎鎿嶄綔'); diff --git a/script/sql/sqlserver/sqlserver_ry_vue_4.X.sql b/script/sql/sqlserver/sqlserver_ry_vue_4.X.sql index e8fd07a..c27b1bd 100644 --- a/script/sql/sqlserver/sqlserver_ry_vue_4.X.sql +++ b/script/sql/sqlserver/sqlserver_ry_vue_4.X.sql @@ -702,6 +702,8 @@ GO INSERT [sys_dict_data] ([dict_code], [dict_sort], [dict_label], [dict_value], [dict_type], [css_class], [list_class], [is_default], [status], [create_by], [create_time], [update_by], [update_time], [remark]) VALUES (17, 2, N'鍏抽棴', N'1', N'sys_notice_status', N'', N'danger', N'N', N'0', N'admin', getdate(), N'', NULL, N'鍏抽棴鐘舵��') GO +INSERT [sys_dict_data] ([dict_code], [dict_sort], [dict_label], [dict_value], [dict_type], [css_class], [list_class], [is_default], [status], [create_by], [create_time], [update_by], [update_time], [remark]) VALUES (29, 99, N'鍏朵粬', N'0', N'sys_oper_type', N'', N'info', N'N', N'0', N'admin', getdate(), N'', NULL, N'鍏朵粬鎿嶄綔'); +GO INSERT [sys_dict_data] ([dict_code], [dict_sort], [dict_label], [dict_value], [dict_type], [css_class], [list_class], [is_default], [status], [create_by], [create_time], [update_by], [update_time], [remark]) VALUES (18, 1, N'鏂板', N'1', N'sys_oper_type', N'', N'info', N'N', N'0', N'admin', getdate(), N'', NULL, N'鏂板鎿嶄綔') GO INSERT [sys_dict_data] ([dict_code], [dict_sort], [dict_label], [dict_value], [dict_type], [css_class], [list_class], [is_default], [status], [create_by], [create_time], [update_by], [update_time], [remark]) VALUES (19, 2, N'淇敼', N'2', N'sys_oper_type', N'', N'info', N'N', N'0', N'admin', getdate(), N'', NULL, N'淇敼鎿嶄綔') diff --git a/script/sql/update/oracle/update-4.2-4.3.sql b/script/sql/update/oracle/update-4.2-4.3.sql index bfcd35b..23dbb7e 100644 --- a/script/sql/update/oracle/update-4.2-4.3.sql +++ b/script/sql/update/oracle/update-4.2-4.3.sql @@ -7,3 +7,5 @@ insert into sys_menu values('1050', '璐︽埛瑙i攣', '501', '4', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:unlock', '#', 'admin', sysdate, '', null, ''); insert into sys_role_menu values ('2', '1050'); + +insert into sys_dict_data values(29, 99, '鍏朵粬', '0', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate, '', null, '鍏朵粬鎿嶄綔'); diff --git a/script/sql/update/postgres/update-4.2-4.3.sql b/script/sql/update/postgres/update-4.2-4.3.sql index 8efbbd0..582c2ab 100644 --- a/script/sql/update/postgres/update-4.2-4.3.sql +++ b/script/sql/update/postgres/update-4.2-4.3.sql @@ -14,3 +14,6 @@ $$ language sql strict ; create cast (varchar as timestamptz) with function cast_varchar_to_timestamp as IMPLICIT; + +insert into sys_dict_data values(29, 99, '鍏朵粬', '0', 'sys_oper_type', '', 'info', 'N', '0', 'admin', now(), '', null, '鍏朵粬鎿嶄綔'); + diff --git a/script/sql/update/sqlserver/update-4.2-4.3.sql b/script/sql/update/sqlserver/update-4.2-4.3.sql index 44c2a40..19e5a9f 100644 --- a/script/sql/update/sqlserver/update-4.2-4.3.sql +++ b/script/sql/update/sqlserver/update-4.2-4.3.sql @@ -12,3 +12,6 @@ INSERT [sys_role_menu] ([role_id], [menu_id]) VALUES (2, 1050) GO + +INSERT [sys_dict_data] ([dict_code], [dict_sort], [dict_label], [dict_value], [dict_type], [css_class], [list_class], [is_default], [status], [create_by], [create_time], [update_by], [update_time], [remark]) VALUES (29, 99, N'鍏朵粬', N'0', N'sys_oper_type', N'', N'info', N'N', N'0', N'admin', getdate(), N'', NULL, N'鍏朵粬鎿嶄綔'); +GO diff --git a/script/sql/update/update-4.2-4.3.sql b/script/sql/update/update-4.2-4.3.sql index 3fcbd60..c889e4c 100644 --- a/script/sql/update/update-4.2-4.3.sql +++ b/script/sql/update/update-4.2-4.3.sql @@ -7,3 +7,5 @@ insert into sys_menu values('1050', '璐︽埛瑙i攣', '501', '4', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:unlock', '#', 'admin', sysdate(), '', null, ''); insert into sys_role_menu values ('2', '1050'); + +insert into sys_dict_data values(29, 99, '鍏朵粬', '0', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate(), '', null, '鍏朵粬鎿嶄綔'); -- Gitblit v1.9.3