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