/** * 表单权限。 * @returns {Permission} */ Permission=function(){ { this.FieldsPermission=[]; this.SubTablePermission=[]; this.SubTableFilePermission=[]; this.subTableShows=[]; this.Opinion=[]; }; /** * 获取默认权限对象。 */ this.getDefaultPermission=function(name,memo){ var permission={"title":name,"memo":memo,"read": {"type":"everyone","id":"", "fullname":""},"write":{"type":"everyone","id":"", "fullname":""},"required":{"type":"everyone","id":"", "fullname":""}}; return permission; }; /** * 从数据库加载权限,并初始化html表格状态。 * 需要传入tableId,formDefId。 * 如果是新建表单,权限根据表获取。 * 如果是更新表单,权限从表单权限获取。 */ this.loadPermission=function(formKey){ var params={formKey:formKey}; this.load("getPermissionSetting.ht", params); }; /** * 从数据库加载权限,并初始化html表格状态。 */ this.loadByNode=function(actDefId, nodeId,formKey,parentActDefId){ var params={actDefId:actDefId,nodeId:nodeId,formKey:formKey,parentActDefId:parentActDefId}; this.load("getPermissionSetting.ht", params); }; /** * 从数据库加载权限,并初始化html表格状态。 */ this.loadByActDefId=function(actDefId,formKey,parentActDefId){ var params={actDefId:actDefId,formKey:formKey,parentActDefId:parentActDefId}; this.load("getPermissionSetting.ht", params); }; this.load=function(url,params){ var _self=this; $.ligerDialog.waitting("正在加载表单权限,请稍后..."); $.post(url, params,function(data){ $.ligerDialog.closeWaitting(); var fields =data["field"]; var tables =data["table"]; var opinions =data["opinion"]; var tableShows =data["tableShow"]; //字段权限。 if(fields!=undefined && fields!=''){ _self.FieldsPermission=fields; var fieldHtml=_self.getPermission(_self.FieldsPermission,"field"); $("#fieldPermission").empty(); $("#fieldPermission").append(fieldHtml); _self.initStatus("fieldPermission"); } //子表权限 if(tables!=undefined && tables!=''){ _self.SubTablePermission=tables; _self.setSubTableFilePermission(tables); var tableHtml=_self.getPermission(_self.SubTablePermission,"subtable"); $("#tablePermission").empty(); $("#tablePermission").append(tableHtml); for ( var i = 0; i < _self.SubTablePermission.length; i++) { //按子表table的ID区域去初始化控件状态 var tablePermission=_self.SubTablePermission[i]; _self.initStatus("tableId_"+tablePermission.title); } }else{ $("#tablePermission").closest( 'table' ).hide(); } //意见权限。 if(opinions!=undefined && opinions!=''){ _self.Opinion=opinions; var opinionHtml=_self.getPermission(_self.Opinion,"opinion"); $("#opinionPermission").empty(); $("#opinionPermission").append(opinionHtml); _self.initStatus("opinionPermission"); }else{ $("#opinionPermission").closest( 'table' ).hide(); } //子表是否显示。 if(tableShows!=undefined && tableShows!=''){ _self.subTableShows=tableShows; _self.initSubTableCheck(_self.subTableShows); } }); _self.handChange(); _self.handClick(); }; /** * 加载完权限后,修改子表是否显示的复选框。 */ this.initSubTableCheck=function(tableShows){ for(var i=0;i0){ rpost = rpostInput.is(":checked"); } //读取office控件的菜单设置 var controlType = trObj.attr("controlType"); var menuRight = ""; if(controlType==12){ menuRight = $("a.officeMenu",trObj).attr("menuRight"); } var fieldName=rSelectObj.attr("name"); var permission={ "title":fieldName,"memo":memo,"tableName":tableName, "read": {"type": rSelectObj.val() ,"id":rId, "fullname":rFullName}, "write":{"type":wSelectObj.val(),"id":wId, "fullname":wFullName}, "required":{"type":bSelectObj.val(),"id":bId, "fullname":bFullName}, "rpost":rpost,"controlType":controlType }; //添加入控件菜单权限 if(typeof(menuRight)!=undefined&&menuRight!=''&&menuRight!='undefined'){ permission.menuRight = menuRight; } aryPermission.push(permission); }); return aryPermission; }; //读取每个子表的(radio)是否显示的选择,并放入对应的数组里面; this.readTablePermission=function(tables,type){ var aryPermission = []; // 赋值为一个空数组 for ( var cn = 0; cn < tables.length; cn++) { var table=tables[cn]; var scope = "#thead_"+table.title; var objScope=$(scope); var show = {}; $('input:checkbox[name^="checkbox_"]',objScope).each(function(){ var value = $(this).val(); var val=$(this).attr('checked')=="checked"?"true":"false"; show[value] = val; }); var permission={ "title":table.title,"memo":table.memo, "tableName":table.tableName,"show":show }; aryPermission.push(permission); } return aryPermission; } }; //OFFICE控件菜单选择 function selectOfficeMenu(obj){ if(!obj){ return; } var conf = {}; var menuRight = $(obj).attr("menuRight"); if(typeof(menuRight)!=undefined&&menuRight!=''&&menuRight!='undefined'){ conf = eval("("+menuRight+")"); } var url=__ctx + '/platform/form/bpmFormDef/selectOfficeMenu.ht'; url=url.getNewUrl(); /*KILLDIALOG*/ DialogUtil.open({ height:350, width :450, title : 'OFFICE控件菜单选择', url: url, isResize: true, //自定义参数 conf: conf, sucCall:function(rtn){ if(rtn){ var jsonStr = JSON2.stringify(rtn); $(obj).attr("menuRight",jsonStr); } } }); } function changeCheckbox(obj){ var chkObj= $(obj) var isChecked = chkObj.attr('checked')=="checked"; var v=chkObj.val(); if(isChecked){ //为隐藏 if(v=="y"){ $(obj).siblings("input:checkbox").attr('checked', false); } else{ if(v=="b"){ $(obj).siblings("input:checkbox[value='addRow']").attr('checked', true); } $(obj).siblings("input:checkbox[value='y']").attr('checked', false); } } else{ if(v=="y"){ $(obj).siblings("input:checkbox").attr('checked', true); $(obj).siblings("input:checkbox[value='b']").attr('checked', false); } } }