You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
483 lines
16 KiB
483 lines
16 KiB
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<%@include file="/wdk/theme/je/module/public/common.jsp"%>
|
|
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
|
|
<%
|
|
String menu_code = request.getParameter("menucode");
|
|
WDK.writeButton(out, su, menu_code);
|
|
%>
|
|
<title>角色授权-数据权限</title>
|
|
|
|
<style>
|
|
</style>
|
|
<script type="text/javascript" src="<%=WDK_ROOT%>/theme/je/core/js/wdk.datatable.js"></script>
|
|
<script type="text/javascript">
|
|
var fun_gridid = $.getUUID();
|
|
var g_role_uuid = '';
|
|
var _changed = [];
|
|
var right_level_scode_data = [];
|
|
var role_gridid = $.getUUID();
|
|
$(function() {
|
|
$("#btn_save").linkbutton({
|
|
disabled: true
|
|
});
|
|
|
|
var queryParams = {
|
|
_SRVNAME:'service.wdk.pub'
|
|
,_SRVMETHOD:'wql_queryCombobox'
|
|
,_DATA:$.json2str({
|
|
modulecode:'S_UC_ROLE_DATALEVEL'
|
|
,jparam:{
|
|
condition:''
|
|
}
|
|
})
|
|
,_RSFIELD:'result'
|
|
};
|
|
$.cuajax({
|
|
url: 'wdk?action=wdk.pub&method=call_service&ajaxparam='+new Date().getTime(),
|
|
method:"post",
|
|
timeout:WDK_Timeout,
|
|
data:queryParams,
|
|
success:function(result) {
|
|
right_level_scode_data = $.str2json(result);
|
|
},
|
|
error:function(result){
|
|
$.wait_close();
|
|
alert('网络错误!result='+result);
|
|
}
|
|
});
|
|
|
|
//-----------------------------------------------------------------
|
|
//1.应用系统
|
|
$.combobox({
|
|
id:'app_select'
|
|
,url : 'wdk?action=wdk.pub&method=call_service&ajaxparam='+new Date().getTime()
|
|
,queryParams:{
|
|
_SRVNAME: 'service.portal.app',
|
|
_SRVMETHOD: 'queryAppListByAttr',
|
|
_DATA: $.json2str({
|
|
app_info: {
|
|
}
|
|
}),
|
|
_RSTYPE: 'combobox',
|
|
_RSFIELD: 'app_info',
|
|
_RSPARAM: $.json2str({
|
|
idField: 'app_uuid',
|
|
textField: 'app_name'
|
|
})
|
|
}
|
|
,height:25
|
|
,width:200
|
|
,required:true
|
|
,editable:false
|
|
,disabled:true
|
|
,multiple:false
|
|
,initvalue:$.getSessionUser().appuuid
|
|
,idField:'id'
|
|
,textField:'text'
|
|
,missingMessage:'业务类型不能为空!'
|
|
,tipPosition:'right'
|
|
,defaultOption:'===请选择==='
|
|
,onSelect:function(record){
|
|
|
|
}
|
|
,onChange:function(newValue,oldVale){
|
|
|
|
}
|
|
});
|
|
|
|
|
|
//2 角色列表
|
|
var fun_param = {
|
|
_SRVNAME: 'service.usr.authorization',
|
|
_SRVMETHOD: 'queryDataRightListByRoleID',//queryDataRightListByRoleID
|
|
_DATA: $.json2str({
|
|
op_account_uuid: $.getSessionUser().account_id,
|
|
app_uuid: $.getSessionUser().appuuid,
|
|
role_uuid: 'a'
|
|
}),
|
|
_RSTYPE: 'grid',
|
|
_RSFIELD: 'resultset',
|
|
_RSPARAM: $.json2str({
|
|
pagequery: '0'
|
|
})
|
|
|
|
};
|
|
|
|
$.grid({
|
|
id :role_gridid,
|
|
containerid : 'role_grid',
|
|
gridcode : "platform.uum.uum_role2func.role",
|
|
checkbox : false,
|
|
checkOnSelect : false,
|
|
selectOnCheck : false,
|
|
fitColumns: true,
|
|
url : 'wdk?action=wdk.pub&method=call_service&ajaxparam=' + new Date().getTime(),
|
|
queryParams : {
|
|
_SRVNAME : 'service.usr.role',
|
|
_SRVMETHOD: 'queryNormalRoleList',
|
|
_DATA: $.json2str({
|
|
op_acc: $.getSessionUser().account_id,
|
|
app_uuid: $.getSessionUser().appuuid
|
|
}),
|
|
_RSTYPE: 'grid',
|
|
_RSFIELD: 'role_info',
|
|
_RSPARAM: $.json2str({
|
|
pagequery: "0"
|
|
})
|
|
},
|
|
idField : 'role_uuid',
|
|
pagination : false,
|
|
onClickCell: function (rowIndex, rowData,field, value) {
|
|
onClose();
|
|
|
|
//alert('onClickCell 第'+rowIndex+'行, 行数据:'+$.json2str(rowData) +'点击字段:'+ field +'单元格的值:'+value);
|
|
$('#role_name').html(rowData.role_name);
|
|
fun_param._DATA = $.json2str({
|
|
op_account_uuid: $.getSessionUser().account_id,
|
|
app_uuid: $.getSessionUser().appuuid,
|
|
role_uuid: rowData.role_uuid
|
|
});
|
|
$.grid_reload({ id:fun_gridid ,queryParams: fun_param });
|
|
g_role_uuid = rowData.role_uuid;
|
|
|
|
_changed = [];
|
|
|
|
$("#btn_save").linkbutton({
|
|
disabled: false
|
|
});
|
|
}
|
|
});
|
|
|
|
// 3. 角色授权资源数据权限列表
|
|
|
|
$.grid({
|
|
id :fun_gridid,
|
|
containerid : 'fun_grid',
|
|
gridcode : "platform.uum.uum_role2func.fun",
|
|
checkbox : true,
|
|
checkOnSelect : true,
|
|
selectOnCheck : true,
|
|
fitColumns:true,
|
|
singleSelect: false,
|
|
url : 'wdk?action=wdk.pub&method=call_service&ajaxparam=' + new Date().getTime(),
|
|
queryParams : fun_param,
|
|
idField : 'resource_uuid',
|
|
pagination : false,
|
|
fitColumns: true,
|
|
onClickCell: function (rowIndex, rowData,field, value) {
|
|
//alert('onClickCell 第'+rowIndex+'行, 行数据:'+$.json2str(rowData) +'点击字段:'+ field +'单元格的值:'+value);
|
|
}
|
|
,formatter:{
|
|
data_right_level_scode:'formatter_data_right_level_scode',
|
|
orgname_right_str:'formatter_orgname_right_str',
|
|
orguuid_right_str:'formatter_orguuid_right_str'
|
|
},
|
|
onLoadSuccess:function(data){
|
|
$('[id*="level_select_"]').each(function(i,o){
|
|
if(!$(o).get(0).inited){
|
|
$(o).get(0).inited=true;
|
|
var _id = $(o).attr('id');
|
|
var comid = 'div_'+ $(o).attr('data-id');
|
|
var data = $.str2json( $(o).attr('data-row'));
|
|
var data_right_level_scode = data.data_right_level_scode;
|
|
var org_attr_scode = data.org_attr_scode;
|
|
$.combobox({
|
|
id: _id,
|
|
data : right_level_scode_data
|
|
,width:100
|
|
,height:20
|
|
,required:false
|
|
,editable:false
|
|
,multiple:false
|
|
,initvalue:data_right_level_scode
|
|
,idField:'id'
|
|
,textField:'text'
|
|
,missingMessage:'业务类型不能为空!'
|
|
,tipPosition:'right'
|
|
//,defaultOption:'===请选择==='
|
|
,onSelect:function(record){
|
|
//alert('选中 id='+record.id+' text='+record.text);
|
|
}
|
|
,onChange:function(newValue,oldVale){
|
|
//alert('内容改变 新选中:'+newValue+' 原选中='+oldVale);
|
|
if(!$(this).changed){
|
|
$(this).changed = true;
|
|
$(this).attr('scode',data_right_level_scode);
|
|
}
|
|
if(newValue != $(this).attr('scode')){
|
|
_changed.push('1');
|
|
}else{
|
|
_changed.pop();
|
|
}
|
|
|
|
// if(newValue === '06' || newValue === '07'){
|
|
if( newValue === '07'){
|
|
//_cont找不到
|
|
var _cont = $('div[data-id="'+comid+'"]').parent();
|
|
_cont.before('<input id="'+comid+'" type="hidden"/>');
|
|
_cont.remove();
|
|
|
|
$('#treediv'+comid+'').remove();
|
|
|
|
var _data = {
|
|
op_acc: $.getSessionUser().account_id
|
|
|
|
};
|
|
var da = {
|
|
level: '-1'
|
|
,include_self: '1'
|
|
,result_fields:'org_uuid,org_name,parent_uuid'
|
|
,order_expr:' display_order '
|
|
}
|
|
var _menthod = "queryOrgListByMU";
|
|
if(org_attr_scode != "" && org_attr_scode != "00"){
|
|
if(newValue === '07'){
|
|
_menthod = "queryBizOrgListByMU";//多部门
|
|
}
|
|
// else if(newValue === '07'){
|
|
// _menthod = "queryBizCorpListByMU";// 07
|
|
// }
|
|
_data.org_attr_scode = org_attr_scode;
|
|
}
|
|
|
|
$.extend(_data,da);
|
|
|
|
var dataParam = {
|
|
_SRVNAME: 'service.usr.org',
|
|
_SRVMETHOD: _menthod,
|
|
_DATA: $.json2str(_data),
|
|
_RSFIELD: 'resultset',//TODO:待确认
|
|
_RSTYPE: 'combotree',
|
|
_RSPARAM: $.json2str({
|
|
idField: 'org_uuid'
|
|
,textField: 'org_name'
|
|
,parentField: 'parent_uuid'
|
|
})
|
|
};
|
|
|
|
var _initid = data.orguuid_right_str;
|
|
var _inittext = data.orgname_right_str;
|
|
if(data_right_level_scode != newValue){
|
|
_initid = '';
|
|
_inittext = '';
|
|
}
|
|
|
|
$.combotree({
|
|
id:comid,
|
|
checkbox: true,
|
|
//initid: _initid,
|
|
//inittext: _inittext,
|
|
initvalue: data.orguuid_right_str,
|
|
expandall:false,
|
|
height:20,
|
|
//cascadeCheck:false,
|
|
asyn:false,
|
|
multiple:true,
|
|
onlyLeafCheck:true,
|
|
url:'wdk?action=wdk.pub&method=call_service&ajaxparam='+new Date().getTime(),
|
|
queryParams:dataParam,
|
|
onChange:function(treeId,node){
|
|
//alert("onchange,treeId="+treeId+",node="+node);
|
|
}
|
|
});
|
|
|
|
}else{
|
|
var con = $('#'+comid).parent();
|
|
if(con[0].tagName != 'TD'){
|
|
con.before('<div style=";text-align:center;;height:auto;" class="datagrid-cell datagrid-cell-c1-orgname_right_str"><input style="width: 150px;" id="'+comid+'" type="hidden"/></div>');
|
|
con.remove();
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
$("#btn_save").on("click", function() {
|
|
if(!$(this).linkbutton("options").disabled){
|
|
save();
|
|
}
|
|
});
|
|
//-----------------------------------------------------------------
|
|
});
|
|
function formatter_data_right_level_scode(value,row,index) {
|
|
return row.data_right[0].data_right_level_scodename;
|
|
/* var _id = row.resource_uuid;
|
|
var data = $.json2str(row);
|
|
|
|
return '<input type="text" data-id="'+_id+'" id="level_select_'+ _id +'"data-row='+data+' class="txt" ></input>'; */
|
|
}
|
|
function formatter_orgname_right_str(value,row,index) {
|
|
/* var _id = 'div_' + row.resource_uuid;
|
|
return '<div><input style="width: 150px;" id="'+_id+'" type="hidden"/></div>'; */
|
|
return row.data_right[0].orgname_right_str;
|
|
}
|
|
function formatter_orguuid_right_str(value,row,index) {
|
|
return row.data_right[0].orgname_right_str;
|
|
}
|
|
function save(){
|
|
var _rolefunc_info = [];
|
|
var totalRows = $.grid_getRows({ id:fun_gridid });
|
|
|
|
$.wait_open();
|
|
$.each(totalRows, function(index, value) {
|
|
var data_right_level = $.combobox_getValue({id:'level_select_'+value.resource_uuid});
|
|
var uuid = [];
|
|
var name = [];
|
|
if(data_right_level == '06' || data_right_level == '07'){
|
|
var t = $('#div_'+value.resource_uuid).combotree('tree');
|
|
var nodes = t.tree('getChecked');
|
|
$.each(nodes,function(index,node){
|
|
uuid.push(node.id);
|
|
name.push(node.text);
|
|
});
|
|
}
|
|
|
|
var orguuid_right = uuid.join(',');
|
|
var orgname_right = name.join(',');
|
|
_rolefunc_info.push({
|
|
func_uuid: value.resource_uuid,
|
|
func_type_scode: value.func_type_scode,
|
|
data_right_level_scode: data_right_level,//取数据权限级别值
|
|
orguuid_right_str: orguuid_right,//取组织标志自定串
|
|
orgname_right_str: orgname_right//取组织名称自定串
|
|
});
|
|
});
|
|
|
|
var data = {
|
|
op_account_uuid: $.getSessionUser().account_id,
|
|
role_uuid: g_role_uuid,
|
|
rolefunc_info: _rolefunc_info
|
|
};
|
|
var dataParam = {
|
|
_SRVNAME: 'service.usr.authorization',
|
|
_SRVMETHOD: 'saveRoleFunc',
|
|
_DATA: $.json2str(data)
|
|
};
|
|
//通过界面直接调用服务
|
|
$.cuajax({
|
|
url:'wdk?action=wdk.pub&method=call_service&ajaxparam='+new Date().getTime(),
|
|
method:"post",
|
|
timeout:WDK_Timeout,
|
|
data:dataParam,
|
|
success:function(result) {
|
|
_changed = [];
|
|
$.wait_close();
|
|
//返回值字符串转json
|
|
var jres = $.str2json(result);
|
|
if(jres.code=="1"){ //操作成功
|
|
alert('操作保存成功!');
|
|
}else{
|
|
alert(result.desc);
|
|
}
|
|
},
|
|
error:function(result){
|
|
$.wait_close();
|
|
alert('网络错误!result='+result);
|
|
}
|
|
});
|
|
}
|
|
|
|
function btn_edit(){
|
|
var row = $.grid_getChecked({id:fun_gridid});
|
|
if(row.length == 0){
|
|
alert("请选择需要设置的功能菜单");
|
|
return false;
|
|
}
|
|
var role = $.grid_getSelected({id:role_gridid});
|
|
if(!role.role_uuid){
|
|
alert("请选择角色");
|
|
return false;
|
|
}
|
|
var json = {};
|
|
var func_uuid = [];
|
|
var fun_name = [];
|
|
for(var i=0; i<row.length; i++){
|
|
func_uuid.push(row[i].resource_uuid);
|
|
fun_name.push(row[i].fun_name);
|
|
}
|
|
if(row.length == 1){
|
|
json.org_attr_scode = row[0].org_attr_scode;
|
|
json.data_right_level_scode = row[0].data_right[0].data_right_level_scode;
|
|
json.orguuid_right_str = row[0].data_right[0].orguuid_right_str;
|
|
}else{
|
|
json.org_attr_scode = "";
|
|
json.data_right_level_scode = "";
|
|
json.orguuid_right_str = "";
|
|
}
|
|
json.rowcount = row.length;
|
|
json.role_uuid = g_role_uuid;
|
|
json.role_name = role.role_name;
|
|
json.func_uuid = func_uuid.join(",");
|
|
json.fun_name = fun_name.join(",");
|
|
|
|
var paramid = $.getUUID();
|
|
$.getRoot()[paramid] = json;
|
|
$.openWin({
|
|
id:$.getUUID(),
|
|
title:'角色权限--编辑',
|
|
url:'platform/uum/uum_role2func_edit.jsp',
|
|
height:420,
|
|
width:750,
|
|
queryParams:{
|
|
paramid : paramid
|
|
},
|
|
onClose:function(){
|
|
$.grid_reload({id:fun_gridid});
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
function onClose(){
|
|
if(_changed.length > 0){
|
|
// var issave = confirm("您已改变数据权限,是否进行保存?");
|
|
// if (issave) {
|
|
|
|
// }
|
|
confirmDialog("您已改变数据权限,是否进行保存?",function(){
|
|
save();
|
|
},function(){});
|
|
|
|
}
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
<div class="easyui-layout" data-options="fit:true">
|
|
<div data-options="region:'west',border:false,collapsed:false" style="width: 300px;">
|
|
<div class="easyui-layout" data-options="fit:true">
|
|
<div data-options="region:'north',border:false,collapsed:false" style="height:47px; ">
|
|
<div style="padding: 10px;">
|
|
<div>
|
|
<label>应用系统</label>
|
|
<input type="text" id="app_select"></input>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div data-options="region:'center',border:false,collapsed:false" id="role_grid"></div>
|
|
</div>
|
|
</div>
|
|
<div data-options="region:'center',border:false,collapsed:false">
|
|
<div class="easyui-layout" data-options="fit:true">
|
|
<div data-options="region:'north',border:false,collapsed:false" style="height:47px; line-height:45px; padding:0 10px;">
|
|
<label for="name"><font style="font-weight:bold;font-size:15px;">授权角色: </font><span id="role_name"></span></label>
|
|
<div style="float: right;">
|
|
<a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'fa fa-pencil-square-o'" onclick="btn_edit()">设置</a>
|
|
<!-- <a href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'fa fa-save'" id="btn_save">保存</a> -->
|
|
</div>
|
|
</div>
|
|
<div data-options="region:'center',border:false,collapsed:false" id="fun_grid"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
|
|
|
|
</html>
|