代码更新

This commit is contained in:
2022-12-12 19:49:36 +08:00
parent 3360be325a
commit 0c37992e7c
7 changed files with 213 additions and 18 deletions

View File

@@ -93,4 +93,11 @@ public class DataPermissionController {
public ResponseEntity<Object> getDataShow(@RequestBody String id){ public ResponseEntity<Object> getDataShow(@RequestBody String id){
return new ResponseEntity<>(dataPermissionService.getDataShow(id),HttpStatus.OK); return new ResponseEntity<>(dataPermissionService.getDataShow(id),HttpStatus.OK);
} }
@PostMapping("/dataDetail")
@Log("查看数据明细")
@ApiOperation("查看数据明细")
public ResponseEntity<Object> getDataDetail(@RequestBody JSONObject data){
return new ResponseEntity<>(dataPermissionService.getDataDetail(data),HttpStatus.OK);
}
} }

View File

@@ -88,4 +88,11 @@ public interface DataPermissionService {
* @return * @return
*/ */
JSONArray getDataShow(String userId); JSONArray getDataShow(String userId);
/**
* 查看数据明细
* @param data
* @return
*/
JSONArray getDataDetail(JSONObject data);
} }

View File

@@ -43,7 +43,7 @@ public class DataPermissionServiceImpl implements DataPermissionService {
@Override @Override
public Map<String,Object> queryAll(Map whereJson, Pageable page){ public Map<String,Object> queryAll(Map whereJson, Pageable page){
WQLObject wo = WQLObject.getWQLObject("sys_data_permission"); WQLObject wo = WQLObject.getWQLObject("sys_data_permission");
ResultBean rb = wo.pagequery(WqlUtil.getHttpContext(page), "1=1", "update_time desc"); ResultBean rb = wo.pagequery(WqlUtil.getHttpContext(page), "1=1", "order_sort desc");
final JSONObject json = rb.pageResult(); final JSONObject json = rb.pageResult();
return json; return json;
} }
@@ -231,4 +231,11 @@ public class DataPermissionServiceImpl implements DataPermissionService {
} }
return resultJSONArray; return resultJSONArray;
} }
@Override
public JSONArray getDataDetail(JSONObject data) {
JSONArray jsonArray = WQL.getWO("Query").addParamMap(MapOf.of("flag", "4", "self_user_id", data.getString("user_id"),
"permission_scope_type", data.getString("permission_scope_type"))).process().getResultJSONArray(0);
return jsonArray;
}
} }

View File

@@ -88,3 +88,29 @@
ENDSELECT ENDSELECT
ENDPAGEQUERY ENDPAGEQUERY
ENDIF ENDIF
IF 输入.flag = "4"
PAGEQUERY
SELECT
scop.*,
dept.`name` as dept_name,
user.person_name,
dp.name as permission_name,
permission.permission_id
FROM
`sys_data_scope` scop
LEFT JOIN sys_user_data_permission permission ON scop.permission_scope_type = permission.permission_scope_type
LEFT JOIN sys_data_permission dp ON permission.permission_id = dp.permission_id
LEFT JOIN sys_dept dept ON scop.dept_id = dept.dept_id
LEFT JOIN sys_user user ON scop.user_id = user.user_id
WHERE
1 = 1
OPTION 输入.self_user_id <> ""
scop.self_user_id = 输入.self_user_id
ENDOPTION
OPTION 输入.permission_scope_type <> ""
scop.permission_scope_type = 输入.permission_scope_type
ENDOPTION
ORDER BY scop.permission_scope_type, scop.dept_id, scop.user_id
ENDSELECT
ENDPAGEQUERY
ENDIF

View File

@@ -54,4 +54,12 @@ export function getDataShow(id) {
}) })
} }
export default { add, edit, del, getDataScopeType, getDataPermissionOption, saveDataPermission, getDataShow } export function getDataDetail(data) {
return request({
url: 'api/dataPermission/dataDetail',
method: 'post',
data: data
})
}
export default { add, edit, del, getDataScopeType, getDataPermissionOption, saveDataPermission, getDataShow, getDataDetail }

View File

@@ -0,0 +1,96 @@
<template>
<el-dialog
title="数据权限"
append-to-body
:visible.sync="dialogVisible"
destroy-on-close
width="1000px"
@close="close"
@open="open"
>
<!--表格渲染-->
<el-table
ref="table"
v-loading="crud.loading"
:data="crud.data"
style="width: 100%;"
size="mini"
border
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
>
<el-table-column prop="permission_scope_type" label="权限类型" min-width="100" show-overflow-tooltip />
<el-table-column prop="permission_name" label="权限范围" min-width="100" show-overflow-tooltip />
<el-table-column prop="dept_name" label="部门名称" min-width="100" show-overflow-tooltip />
<el-table-column prop="person_name" label="用户名称" min-width="100" show-overflow-tooltip />
</el-table>
<!--分页组件-->
<pagination />
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="dialogVisible = false"> </el-button>
</span>
</el-dialog>
</template>
<script>
import CRUD, { header, presenter } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import pagination from '@crud/Pagination'
export default {
name: 'ShowDataPermissionDialog',
components: { rrOperation, pagination },
cruds() {
return CRUD({ title: '权限明细', idField: 'user_id', url: 'api/dataPermission/dataDetail'})
},
mixins: [presenter(), header()],
dicts: ['product_series'],
props: {
dialogShow: {
type: Boolean,
default: false
},
currentUserId: {
type: Number,
default: 0
}
},
data() {
return {
dialogVisible: false,
classes: [],
tableRadio: null,
rows: []
}
},
watch: {
dialogShow: {
handler(newValue) {
this.dialogVisible = newValue
}
}
},
methods: {
clickChange(item) {
this.tableRadio = item
},
open() {
console.log(this.currentUserId)
},
close() {
this.crud.resetQuery(false)
this.$emit('update:dialogShow', false)
},
[CRUD.HOOK.afterRefresh]() {
this.open()
}
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
::v-deep .el-dialog__body {
padding-top: 0px;
}
</style>

View File

@@ -273,16 +273,16 @@
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column--> <el-table-column
<!-- label="操作"--> label="操作"
<!-- fixed="right"--> fixed="right"
<!-- align="center"--> align="center"
<!-- width="100"--> width="100"
<!-- >--> >
<!-- <template slot-scope="scope">--> <template slot-scope="scope">
<!-- <el-button type="text">查看明细</el-button>--> <el-button type="text" @click="showDatas(scope.row)">查看明细</el-button>
<!-- </template>--> </template>
<!-- </el-table-column>--> </el-table-column>
</el-table> </el-table>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@@ -290,6 +290,27 @@
<el-button type="primary" @click="savePermise()">确认</el-button> <el-button type="primary" @click="savePermise()">确认</el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog
:close-on-click-modal="true"
:visible.sync="showData"
title="数据权限"
width="700px"
>
<el-table
ref="dialogTable"
:data="dataPermissions"
style="width: 100%; max-height: 500px"
>
<el-table-column prop="permission_scope_type" label="权限类型" min-width="100" show-overflow-tooltip >
<template slot-scope="scope">
{{ dict.label.permission_scope_type[scope.row.permission_scope_type] }}
</template>
</el-table-column>
<el-table-column prop="permission_name" label="权限范围" min-width="100" show-overflow-tooltip />
<el-table-column prop="dept_name" label="部门名称" min-width="100" show-overflow-tooltip />
<el-table-column prop="person_name" label="用户名称" min-width="100" show-overflow-tooltip />
</el-table>
</el-dialog>
<relevance-user-dialog :dialog-show.sync="relevanceUser" :is-single="false" :users="userIds" @selectUsers="selectUsers" /> <relevance-user-dialog :dialog-show.sync="relevanceUser" :is-single="false" :users="userIds" @selectUsers="selectUsers" />
<relevance-dept-dialog :dialog-show.sync="relevanceDept" :is-single="false" :depts="deptIds" @selectDepts="selectDepts" /> <relevance-dept-dialog :dialog-show.sync="relevanceDept" :is-single="false" :depts="deptIds" @selectDepts="selectDepts" />
</div> </div>
@@ -332,7 +353,7 @@ export default {
}, },
mixins: [presenter(), header(), form(defaultForm), crud()], mixins: [presenter(), header(), form(defaultForm), crud()],
// 数据字典 // 数据字典
dicts: ['user_status'], dicts: ['user_status', 'permission_scope_type'],
data() { data() {
return { return {
height: document.documentElement.clientHeight - 180 + 'px;', height: document.documentElement.clientHeight - 180 + 'px;',
@@ -376,7 +397,9 @@ export default {
rowData: {}, // 当行数据 rowData: {}, // 当行数据
relevanceDept: false, // 关联部门 relevanceDept: false, // 关联部门
deptIds: [], deptIds: [],
userIds: [] userIds: [],
showData: false,
dataPermissions: []
} }
}, },
computed: { computed: {
@@ -682,8 +705,6 @@ export default {
console.log('选中', val) console.log('选中', val)
}, },
openRelevance(row, index) { openRelevance(row, index) {
console.log('下标', index)
console.log('关联的当行数据', row)
for (var i = 0; i < this.permissions.length; i++) { 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) { 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.$delete(this.dataDialog.dataScopeType[index], this.permissions[i].permission_id.toString())
@@ -693,14 +714,25 @@ export default {
this.rowData = {} this.rowData = {}
this.deptIds = [] this.deptIds = []
this.userIds = [] this.userIds = []
if (row.permission_id == '1601040560293023744') { // 用户 if (row.permission_id == '1601040560293023744') { // 选择用户
this.userIds = this.dataDialog.dataScopeType[index].users this.userIds = this.dataDialog.dataScopeType[index].users
this.rowData = row this.rowData = row
this.relevanceUser = true this.relevanceUser = true
} else if (row.permission_id == '1601040621190123520') { } else if (row.permission_id == '1601040621190123520') { // 选择部门
this.deptIds = this.dataDialog.dataScopeType[index].depts this.deptIds = this.dataDialog.dataScopeType[index].depts
this.rowData = row this.rowData = row
this.relevanceDept = true this.relevanceDept = true
} else if (row.permission_id == '1601038030326599680') { // 自身
const param = {
user_id: this.dataDialog.user_id
}
console.log(param)
this.dataDialog.dataScopeType[index].users = []
this.dataDialog.dataScopeType[index].users.push(param)
console.log(this.dataDialog.dataScopeType[index])
} else { // 其他应该清空
this.dataDialog.dataScopeType[index].depts = []
this.dataDialog.dataScopeType[index].users = []
} }
}, },
selectUsers(row) { // row对话框传来的数据 selectUsers(row) { // row对话框传来的数据
@@ -818,6 +850,18 @@ export default {
checkNode.parent.checked = false checkNode.parent.checked = false
checkNode.parent.indeterminate = false checkNode.parent.indeterminate = false
} }
},
showDatas(row) {
console.log(row)
const param = {
user_id: this.dataDialog.user_id,
permission_scope_type: row.value
}
crudDataPermission.getDataDetail(param).then(res => {
// console.log('权限信息', res)
this.dataPermissions = res
})
this.showData = true
} }
} }
} }