代码更新
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,4 +88,11 @@ public interface DataPermissionService {
|
||||
* @return
|
||||
*/
|
||||
JSONArray getDataShow(String userId);
|
||||
|
||||
/**
|
||||
* 查看数据明细
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
JSONArray getDataDetail(JSONObject data);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 }
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user