代码更新

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){
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
*/
JSONArray getDataShow(String userId);
/**
* 查看数据明细
* @param data
* @return
*/
JSONArray getDataDetail(JSONObject data);
}

View File

@@ -43,7 +43,7 @@ public class DataPermissionServiceImpl implements DataPermissionService {
@Override
public Map<String,Object> queryAll(Map whereJson, Pageable page){
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();
return json;
}
@@ -231,4 +231,11 @@ public class DataPermissionServiceImpl implements DataPermissionService {
}
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
ENDPAGEQUERY
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>
</template>
</el-table-column>
<!-- <el-table-column-->
<!-- label="操作"-->
<!-- fixed="right"-->
<!-- align="center"-->
<!-- width="100"-->
<!-- >-->
<!-- <template slot-scope="scope">-->
<!-- <el-button type="text">查看明细</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column
label="操作"
fixed="right"
align="center"
width="100"
>
<template slot-scope="scope">
<el-button type="text" @click="showDatas(scope.row)">查看明细</el-button>
</template>
</el-table-column>
</el-table>
</el-form>
<div slot="footer" class="dialog-footer">
@@ -290,6 +290,27 @@
<el-button type="primary" @click="savePermise()">确认</el-button>
</div>
</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-dept-dialog :dialog-show.sync="relevanceDept" :is-single="false" :depts="deptIds" @selectDepts="selectDepts" />
</div>
@@ -332,7 +353,7 @@ export default {
},
mixins: [presenter(), header(), form(defaultForm), crud()],
// 数据字典
dicts: ['user_status'],
dicts: ['user_status', 'permission_scope_type'],
data() {
return {
height: document.documentElement.clientHeight - 180 + 'px;',
@@ -376,7 +397,9 @@ export default {
rowData: {}, // 当行数据
relevanceDept: false, // 关联部门
deptIds: [],
userIds: []
userIds: [],
showData: false,
dataPermissions: []
}
},
computed: {
@@ -682,8 +705,6 @@ export default {
console.log('选中', val)
},
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())
@@ -693,14 +714,25 @@ export default {
this.rowData = {}
this.deptIds = []
this.userIds = []
if (row.permission_id == '1601040560293023744') { // 用户
if (row.permission_id == '1601040560293023744') { // 选择用户
this.userIds = this.dataDialog.dataScopeType[index].users
this.rowData = row
this.relevanceUser = true
} else if (row.permission_id == '1601040621190123520') {
} else if (row.permission_id == '1601040621190123520') { // 选择部门
this.deptIds = this.dataDialog.dataScopeType[index].depts
this.rowData = row
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对话框传来的数据
@@ -818,6 +850,18 @@ export default {
checkNode.parent.checked = 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
}
}
}