diff --git a/lms/nladmin-system/src/main/java/org/nl/sso/permission/rest/DataPermissionController.java b/lms/nladmin-system/src/main/java/org/nl/sso/permission/rest/DataPermissionController.java index 3122ea967..d445cf0d0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/sso/permission/rest/DataPermissionController.java +++ b/lms/nladmin-system/src/main/java/org/nl/sso/permission/rest/DataPermissionController.java @@ -86,4 +86,11 @@ public class DataPermissionController { dataPermissionService.savePermission(datas); return new ResponseEntity<>(HttpStatus.CREATED); } + + @PostMapping("/dataShow") + @Log("查看数据权限") + @ApiOperation("查看数据权限") + public ResponseEntity getDataShow(@RequestBody String id){ + return new ResponseEntity<>(dataPermissionService.getDataShow(id),HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/sso/permission/service/DataPermissionService.java b/lms/nladmin-system/src/main/java/org/nl/sso/permission/service/DataPermissionService.java index e0f60c755..3144da3cf 100644 --- a/lms/nladmin-system/src/main/java/org/nl/sso/permission/service/DataPermissionService.java +++ b/lms/nladmin-system/src/main/java/org/nl/sso/permission/service/DataPermissionService.java @@ -81,4 +81,11 @@ public interface DataPermissionService { * @param datas */ void savePermission(JSONObject datas); + + /** + * 通过用户id获取其数据权限 + * @param userId + * @return + */ + JSONArray getDataShow(String userId); } diff --git a/lms/nladmin-system/src/main/java/org/nl/sso/permission/service/impl/DataPermissionServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/sso/permission/service/impl/DataPermissionServiceImpl.java index 4b6e76c00..b2163736e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/sso/permission/service/impl/DataPermissionServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/sso/permission/service/impl/DataPermissionServiceImpl.java @@ -210,4 +210,25 @@ public class DataPermissionServiceImpl implements DataPermissionService { } } } + + @Override + public JSONArray getDataShow(String userId) { + WQLObject scopeTab = WQLObject.getWQLObject("sys_user_data_permission"); // 用户数据权限表 + WQLObject dataTab = WQLObject.getWQLObject("sys_data_permission"); // 权限:user用户权限,dept部门权限 + JSONArray resultJSONArray = scopeTab.query("user_id = '" + userId + "'").getResultJSONArray(0); + for (int i = 0; i < resultJSONArray.size(); i++) { + JSONObject jsonObject = resultJSONArray.getJSONObject(i); + String permissionId = jsonObject.getString("permission_id"); + JSONObject dataObj = dataTab.query("permission_id = '" + permissionId + "'").uniqueResult(0); + if (dataObj.getString("code").equals("user")) { // 用户权限 + JSONArray userIds = WQL.getWO("Query").addParamMap(MapOf.of("flag", "2", "self_user_id", userId, "permission_scope_type", jsonObject.getString("permission_scope_type"))).process().getResultJSONArray(0); + jsonObject.put("users", userIds); + } else if (dataObj.getString("code").equals("dept")) { // 部门权限 + JSONArray deptIds = WQL.getWO("Query").addParamMap(MapOf.of("flag", "3", "self_user_id", userId, "permission_scope_type", jsonObject.getString("permission_scope_type"))).process().getResultJSONArray(0); + jsonObject.put("depts", deptIds); + } + // 其他不做处理 + } + return resultJSONArray; + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/sso/permission/wql/Query.wql b/lms/nladmin-system/src/main/java/org/nl/sso/permission/wql/Query.wql index e1b67a94f..40754e8cc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/sso/permission/wql/Query.wql +++ b/lms/nladmin-system/src/main/java/org/nl/sso/permission/wql/Query.wql @@ -13,8 +13,10 @@ ################################################# ## 表字段对应输入参数 ################################################# - 输入.flag TYPEAS s_string + 输入.flag TYPEAS s_string 输入.dept_id TYPEAS s_string + 输入.self_user_id TYPEAS s_string + 输入.permission_scope_type TYPEAS s_string [临时表] --这边列出来的临时表就会在运行期动态创建 @@ -52,3 +54,37 @@ ENDSELECT ENDPAGEQUERY ENDIF + IF 输入.flag = "2" + PAGEQUERY + SELECT + scop.user_id + FROM + `sys_data_scope` scop + WHERE + 1 = 1 + OPTION 输入.self_user_id <> "" + self_user_id = 输入.self_user_id + ENDOPTION + OPTION 输入.permission_scope_type <> "" + permission_scope_type = 输入.permission_scope_type + ENDOPTION + ENDSELECT + ENDPAGEQUERY + ENDIF + IF 输入.flag = "3" + PAGEQUERY + SELECT + DISTINCT scop.dept_id + FROM + `sys_data_scope` scop + WHERE + 1 = 1 + OPTION 输入.self_user_id <> "" + self_user_id = 输入.self_user_id + ENDOPTION + OPTION 输入.permission_scope_type <> "" + permission_scope_type = 输入.permission_scope_type + ENDOPTION + ENDSELECT + ENDPAGEQUERY + ENDIF diff --git a/lms/nladmin-ui/src/views/system/permission/dataPermission.js b/lms/nladmin-ui/src/views/system/permission/dataPermission.js index 234298dbf..075b32606 100644 --- a/lms/nladmin-ui/src/views/system/permission/dataPermission.js +++ b/lms/nladmin-ui/src/views/system/permission/dataPermission.js @@ -46,4 +46,12 @@ export function saveDataPermission(data) { }) } -export default { add, edit, del, getDataScopeType, getDataPermissionOption, saveDataPermission } +export function getDataShow(id) { + return request({ + url: 'api/dataPermission/dataShow', + method: 'post', + data: id + }) +} + +export default { add, edit, del, getDataScopeType, getDataPermissionOption, saveDataPermission, getDataShow } diff --git a/lms/nladmin-ui/src/views/system/user/dialog/relevanceDeptDialog.vue b/lms/nladmin-ui/src/views/system/user/dialog/relevanceDeptDialog.vue index 99cb0aea4..01022e3cb 100644 --- a/lms/nladmin-ui/src/views/system/user/dialog/relevanceDeptDialog.vue +++ b/lms/nladmin-ui/src/views/system/user/dialog/relevanceDeptDialog.vue @@ -44,7 +44,6 @@ border :header-cell-style="{background:'#f5f7fa',color:'#606266'}" @select="handleSelectionChange" - @select-all="onSelectAll" @current-change="clickChange" > diff --git a/lms/nladmin-ui/src/views/system/user/dialog/relevanceUserDialog.vue b/lms/nladmin-ui/src/views/system/user/dialog/relevanceUserDialog.vue index 2a1559095..83b26b2d3 100644 --- a/lms/nladmin-ui/src/views/system/user/dialog/relevanceUserDialog.vue +++ b/lms/nladmin-ui/src/views/system/user/dialog/relevanceUserDialog.vue @@ -37,7 +37,6 @@ border :header-cell-style="{background:'#f5f7fa',color:'#606266'}" @select="handleSelectionChange" - @select-all="onSelectAll" @current-change="clickChange" > diff --git a/lms/nladmin-ui/src/views/system/user/index.vue b/lms/nladmin-ui/src/views/system/user/index.vue index ce82de28a..6ca01201c 100644 --- a/lms/nladmin-ui/src/views/system/user/index.vue +++ b/lms/nladmin-ui/src/views/system/user/index.vue @@ -258,9 +258,12 @@ > - + - - - - - - - - - - + + + + + + + + + + - + @@ -649,16 +652,40 @@ export default { this.dataDialog.username = row.username this.dataDialog.user_id = row.user_id this.dataPerm = true - console.log(res) + // console.log(res) + // 回显数据 + crudDataPermission.getDataShow(row.user_id).then(res => { + console.log('回显数据', res) + for (var index = 0; index < res.length; index++) { + for (var i = 0; i < this.dataDialog.dataScopeType.length; i++) { + if (this.dataDialog.dataScopeType[i].value == res[index].permission_scope_type) { + this.dataDialog.dataScopeType[i].permission_id = res[index].permission_id + if (res[index].users) this.dataDialog.dataScopeType[i].users = res[index].users + if (res[index].depts) this.dataDialog.dataScopeType[i].depts = res[index].depts + // 选中 + this.$refs.dialogTable.toggleRowSelection(this.dataDialog.dataScopeType[i], true) + break + } + } + } + console.log(this.dataDialog.dataScopeType) + }) }) }) }, getRows(val) { // 获取行数据 this.multipleSelection = val - console.log(val) + console.log('选中', val) }, - openRelevance(row) { + openRelevance(row, index) { + console.log('下标', index) console.log('关联的当行数据', row) + for (var i = 0; i < this.permissions.length; i++) { + if (this.permissions[i].permission_id != undefined && this.permissions[i].permission_id && this.permissions[i].permission_id != row.permission_id) { + this.$delete(this.dataDialog.dataScopeType[index], this.permissions[i].permission_id.toString()) + } + } + this.$set(this.dataDialog.dataScopeType[index], this.dataDialog.dataScopeType[index].permission_id, row.permission_id) this.rowData = {} if (row.permission_id == '1601040560293023744') { // 用户 this.rowData = row @@ -696,6 +723,7 @@ export default { user_id: this.dataDialog.user_id, datas: this.multipleSelection } + console.log(this.dataDialog) crudDataPermission.saveDataPermission(param).then(res => { this.dataPerm = false this.crud.notify('添加数据权限成功', CRUD.NOTIFICATION_TYPE.SUCCESS)