mxml代码:
PermissionManage.mxml 主模块:
<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%"
height="100%" fontSize="12" xmlns:ns1="components.*" creationComplete="init()">
<mx:Script>
<![CDATA[
import MyEvent.ObjectEvent;
import mx.rpc.remoting.mxml.RemoteObject;
import mx.rpc.AsyncToken;
import mx.rpc.AbstractOperation;
import mx.rpc.AsyncResponder;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
public var ro:RemoteObject;
public var token:AsyncToken;
public var operation:AbstractOperation
private var roleid:Number;
private var funcid:Number;
private var frid:Number;
private function init():void
{
ro = new RemoteObject("roleService");
roleid=0;
funcid=0;
frid=0;
if(funccheckbox.selected == false){
newcheckbox.enabled = false;
editcheckbox.enabled = false;
deletecheckbox.enabled = false;
viewcheckbox.enabled = false;
auditcheckbox.enabled = false;
antiauditcheckbox.enabled = false;
}
}
//获取角色ID并初始化权限列表
private function getroleId(event:Event):void
{
var objectEvent:ObjectEvent = event as ObjectEvent;
roleid = objectEvent.obid;
if(funcid ==0) return;
operation = ro.getOperation("getPermissions");
token = operation.send(roleid,funcid);
token.addResponder(new AsyncResponder(success,null));
}
//获取 菜单ID并初始化权限列表
private function getfuncId(event:Event):void
{
var objectEvent:ObjectEvent = event as ObjectEvent;
funcid = objectEvent.obid;
if(roleid ==0) return;
operation = ro.getOperation("getPermissions");
token = operation.send(roleid,funcid);
token.addResponder(new AsyncResponder(success,null));
}
//成功返回处理
public function success(result:Object,token:Object=null):void
{
var eve:ResultEvent = result as ResultEvent;
if(eve.result != null)
{
var returnObj:Array = eve.result as Array;
funccheckbox.data=funcid;
frid = returnObj[8];
funccheckbox.label=returnObj[6];
if(returnObj[7] =="1"){
funccheckbox.selected = true;
}else{
funccheckbox.selected = false;
}
if(returnObj[0] =="1"){
newcheckbox.selected = true;
}else{
newcheckbox.selected = false;
}
if(returnObj[1] =="1"){
editcheckbox.selected = true;
}else{
editcheckbox.selected = false;
}
if(returnObj[2] =="1"){
deletecheckbox.selected = true;
}else{
deletecheckbox.selected = false;
}
if(returnObj[3] =="1"){
viewcheckbox.selected = true;
}else{
viewcheckbox.selected = false;
}
if(returnObj[4] =="1"){
auditcheckbox.selected = true;
}else{
auditcheckbox.selected = false;
}
if(returnObj[5] =="1"){
antiauditcheckbox.selected = true;
}else{
antiauditcheckbox.selected = false;
}
if(funccheckbox.selected){
newcheckbox.enabled = true;
editcheckbox.enabled = true;
deletecheckbox.enabled = true;
viewcheckbox.enabled = true;
auditcheckbox.enabled = true;
antiauditcheckbox.enabled = true;
}else{
newcheckbox.enabled = false;
editcheckbox.enabled = false;
deletecheckbox.enabled = false;
viewcheckbox.enabled = false;
auditcheckbox.enabled = false;
antiauditcheckbox.enabled = false;
}
}
}
//设置菜单权限
private function setfuncper(event:Event):void
{
if(roleid ==0 || funcid==0){
Alert.show("请选择要设置权限的角色和菜单!");
return;
}
var state:String;
if(funccheckbox.selected){
newcheckbox.enabled = true;
editcheckbox.enabled = true;
deletecheckbox.enabled = true;
viewcheckbox.enabled = true;
auditcheckbox.enabled = true;
antiauditcheckbox.enabled = true;
state="1";
}else{
state="0";
newcheckbox.enabled = false;
editcheckbox.enabled = false;
deletecheckbox.enabled = false;
viewcheckbox.enabled = false;
auditcheckbox.enabled = false;
antiauditcheckbox.enabled = false;
}
operation = ro.getOperation("updateFunctionState");
token = operation.send(frid,state);
}
//设置新增按钮权限
private function setnewbuttom(event:Event):void
{
if(frid ==0){
Alert.show("请选择要设置权限的角色和菜单!");
return;
}else{
var state:String;
if(newcheckbox.selected){
state="1";
}else{
state="0";
}
operation = ro.getOperation("updateButtomState");
token = operation.send(frid,state,1);
}
}
//设置修改按钮权限
private function seteditbuttom(event:Event):void
{
if(frid ==0){
Alert.show("请选择要设置权限的角色和菜单!");
return;
}else{
var state:String;
if(newcheckbox.selected){
state="1";
}else{
state="0";
}
operation = ro.getOperation("updateButtomState");
token = operation.send(frid,state,2);
}
}
//设置删除按钮权限
private function setdeletebuttom(event:Event):void
{
if(frid ==0){
Alert.show("请选择要设置权限的角色和菜单!");
return;
}else{
var state:String;
if(newcheckbox.selected){
state="1";
}else{
state="0";
}
operation = ro.getOperation("updateButtomState");
token = operation.send(frid,state,3);
}
}
//设置查看按钮权限
private function setviewbuttom(event:Event):void
{
if(frid ==0){
Alert.show("请选择要设置权限的角色和菜单!");
return;
}else{
var state:String;
if(newcheckbox.selected){
state="1";
}else{
state="0";
}
operation = ro.getOperation("updateButtomState");
token = operation.send(frid,state,4);
}
}
//设置 审核按钮权限
private function setauditbuttom(event:Event):void
{
if(frid ==0){
Alert.show("请选择要设置权限的角色和菜单!");
return;
}else{
var state:String;
if(newcheckbox.selected){
state="1";
}else{
state="0";
}
operation = ro.getOperation("updateButtomState");
token = operation.send(frid,state,5);
}
}
//设置新增按钮权限
private function setantiauditbuttom(event:Event):void
{
if(frid ==0){
Alert.show("请选择要设置权限的角色和菜单!");
return;
}else{
var state:String;
if(newcheckbox.selected){
state="1";
}else{
state="0";
}
operation = ro.getOperation("updateButtomState");
token = operation.send(frid,state,6);
}
}
]]>
</mx:Script>
<mx:Panel width="100%" height="100%" layout="absolute" title="权限设置">
<mx:HBox width="100%" height="100%">
<mx:VBox width="190" height="100%">
<ns1:RoleListPage id="rolelistPage" rolelistEvent="getroleId(event)">
</ns1:RoleListPage>
</mx:VBox>
<mx:VBox width="200" height="100%">
<ns1:MenuListPage id="menulistpage" funlistEvent="getfuncId(event)">
</ns1:MenuListPage>
</mx:VBox>
<mx:VBox width="100%" height="100%">
<mx:HBox width="100%" height="20">
<mx:Spacer width="40"/>
<mx:Label text="菜单名称 " fontWeight="bold"/>
<mx:Spacer width="60"/>
<mx:Label text="新增 " fontWeight="bold"/>
<mx:Spacer width="20"/>
<mx:Label text="修改 " fontWeight="bold"/>
<mx:Spacer width="20"/>
<mx:Label text="删除 " fontWeight="bold"/>
<mx:Spacer width="20"/>
<mx:Label text="查看 " fontWeight="bold"/>
<mx:Spacer width="20"/>
<mx:Label text="审核 " fontWeight="bold"/>
<mx:Spacer width="20"/>
<mx:Label text="反审核 " fontWeight="bold"/>
</mx:HBox>
<mx:HBox width="100%" height="100%">
<mx:HBox width="150" height="100%">
<mx:Spacer width="30"/>
<mx:CheckBox id="funccheckbox" width="100" click="setfuncper(event)"/>
</mx:HBox>
<mx:HBox width="100%" height="100%">
<mx:Spacer width="25"/>
<mx:CheckBox id="newcheckbox" width="20" click="setnewbuttom(event)"/>
<mx:Spacer width="35"/>
<mx:CheckBox id="editcheckbox" width="20" click="seteditbuttom(event)"/>
<mx:Spacer width="35"/>
<mx:CheckBox id="deletecheckbox" width="20" click="setdeletebuttom(event)"/>
<mx:Spacer width="35"/>
<mx:CheckBox id="viewcheckbox" width="20" click="setviewbuttom(event)"/>
<mx:Spacer width="35"/>
<mx:CheckBox id="auditcheckbox" width="20" click="setauditbuttom(event)"/>
<mx:Spacer width="40"/>
<mx:CheckBox id="antiauditcheckbox" width="20" click="setantiauditbuttom(event)"/>
</mx:HBox>
</mx:HBox>
</mx:VBox>
</mx:HBox>
</mx:Panel>
</mx:Module>
RoleListPage.mxml 组件:
<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%"
height="100%" fontSize="12" xmlns:ns1="components.*" creationComplete="init()">
<mx:Script>
<![CDATA[
import MyEvent.ObjectEvent;
import mx.rpc.remoting.mxml.RemoteObject;
import mx.rpc.AsyncToken;
import mx.rpc.AbstractOperation;
import mx.rpc.AsyncResponder;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
public var ro:RemoteObject;
public var token:AsyncToken;
public var operation:AbstractOperation
private var roleid:Number;
private var funcid:Number;
private var frid:Number;
private function init():void
{
ro = new RemoteObject("roleService");
roleid=0;
funcid=0;
frid=0;
if(funccheckbox.selected == false){
newcheckbox.enabled = false;
editcheckbox.enabled = false;
deletecheckbox.enabled = false;
viewcheckbox.enabled = false;
auditcheckbox.enabled = false;
antiauditcheckbox.enabled = false;
}
}
//获取角色ID并初始化权限列表
private function getroleId(event:Event):void
{
var objectEvent:ObjectEvent = event as ObjectEvent;
roleid = objectEvent.obid;
if(funcid ==0) return;
operation = ro.getOperation("getPermissions");
token = operation.send(roleid,funcid);
token.addResponder(new AsyncResponder(success,null));
}
//获取 菜单ID并初始化权限列表
private function getfuncId(event:Event):void
{
var objectEvent:ObjectEvent = event as ObjectEvent;
funcid = objectEvent.obid;
if(roleid ==0) return;
operation = ro.getOperation("getPermissions");
token = operation.send(roleid,funcid);
token.addResponder(new AsyncResponder(success,null));
}
//成功返回处理
public function success(result:Object,token:Object=null):void
{
var eve:ResultEvent = result as ResultEvent;
if(eve.result != null)
{
var returnObj:Array = eve.result as Array;
funccheckbox.data=funcid;
frid = returnObj[8];
funccheckbox.label=returnObj[6];
if(returnObj[7] =="1"){
funccheckbox.selected = true;
}else{
funccheckbox.selected = false;
}
if(returnObj[0] =="1"){
newcheckbox.selected = true;
}else{
newcheckbox.selected = false;
}
if(returnObj[1] =="1"){
editcheckbox.selected = true;
}else{
editcheckbox.selected = false;
}
if(returnObj[2] =="1"){
deletecheckbox.selected = true;
}else{
deletecheckbox.selected = false;
}
if(returnObj[3] =="1"){
viewcheckbox.selected = true;
}else{
viewcheckbox.selected = false;
}
if(returnObj[4] =="1"){
auditcheckbox.selected = true;
}else{
auditcheckbox.selected = false;
}
if(returnObj[5] =="1"){
antiauditcheckbox.selected = true;
}else{
antiauditcheckbox.selected = false;
}
if(funccheckbox.selected){
newcheckbox.enabled = true;
editcheckbox.enabled = true;
deletecheckbox.enabled = true;
viewcheckbox.enabled = true;
auditcheckbox.enabled = true;
antiauditcheckbox.enabled = true;
}else{
newcheckbox.enabled = false;
editcheckbox.enabled = false;
deletecheckbox.enabled = false;
viewcheckbox.enabled = false;
auditcheckbox.enabled = false;
antiauditcheckbox.enabled = false;
}
}
}
//设置菜单权限
private function setfuncper(event:Event):void
{
if(roleid ==0 || funcid==0){
Alert.show("请选择要设置权限的角色和菜单!");
return;
}
var state:String;
if(funccheckbox.selected){
newcheckbox.enabled = true;
editcheckbox.enabled = true;
deletecheckbox.enabled = true;
viewcheckbox.enabled = true;
auditcheckbox.enabled = true;
antiauditcheckbox.enabled = true;
state="1";
}else{
state="0";
newcheckbox.enabled = false;
editcheckbox.enabled = false;
deletecheckbox.enabled = false;
viewcheckbox.enabled = false;
auditcheckbox.enabled = false;
antiauditcheckbox.enabled = false;
}
operation = ro.getOperation("updateFunctionState");
token = operation.send(frid,state);
}
//设置新增按钮权限
private function setnewbuttom(event:Event):void
{
if(frid ==0){
Alert.show("请选择要设置权限的角色和菜单!");
return;
}else{
var state:String;
if(newcheckbox.selected){
state="1";
}else{
state="0";
}
operation = ro.getOperation("updateButtomState");
token = operation.send(frid,state,1);
}
}
//设置修改按钮权限
private function seteditbuttom(event:Event):void
{
if(frid ==0){
Alert.show("请选择要设置权限的角色和菜单!");
return;
}else{
var state:String;
if(newcheckbox.selected){
state="1";
}else{
state="0";
}
operation = ro.getOperation("updateButtomState");
token = operation.send(frid,state,2);
}
}
//设置删除按钮权限
private function setdeletebuttom(event:Event):void
{
if(frid ==0){
Alert.show("请选择要设置权限的角色和菜单!");
return;
}else{
var state:String;
if(newcheckbox.selected){
state="1";
}else{
state="0";
}
operation = ro.getOperation("updateButtomState");
token = operation.send(frid,state,3);
}
}
//设置查看按钮权限
private function setviewbuttom(event:Event):void
{
if(frid ==0){
Alert.show("请选择要设置权限的角色和菜单!");
return;
}else{
var state:String;
if(newcheckbox.selected){
state="1";
}else{
state="0";
}
operation = ro.getOperation("updateButtomState");
token = operation.send(frid,state,4);
}
}
//设置 审核按钮权限
private function setauditbuttom(event:Event):void
{
if(frid ==0){
Alert.show("请选择要设置权限的角色和菜单!");
return;
}else{
var state:String;
if(newcheckbox.selected){
state="1";
}else{
state="0";
}
operation = ro.getOperation("updateButtomState");
token = operation.send(frid,state,5);
}
}
//设置新增按钮权限
private function setantiauditbuttom(event:Event):void
{
if(frid ==0){
Alert.show("请选择要设置权限的角色和菜单!");
return;
}else{
var state:String;
if(newcheckbox.selected){
state="1";
}else{
state="0";
}
operation = ro.getOperation("updateButtomState");
token = operation.send(frid,state,6);
}
}
]]>
</mx:Script>
<mx:Panel width="100%" height="100%" layout="absolute" title="权限设置">
<mx:HBox width="100%" height="100%">
<mx:VBox width="190" height="100%">
<ns1:RoleListPage id="rolelistPage" rolelistEvent="getroleId(event)">
</ns1:RoleListPage>
</mx:VBox>
<mx:VBox width="200" height="100%">
<ns1:MenuListPage id="menulistpage" funlistEvent="getfuncId(event)">
</ns1:MenuListPage>
</mx:VBox>
<mx:VBox width="100%" height="100%">
<mx:HBox width="100%" height="20">
<mx:Spacer width="40"/>
<mx:Label text="菜单名称 " fontWeight="bold"/>
<mx:Spacer width="60"/>
<mx:Label text="新增 " fontWeight="bold"/>
<mx:Spacer width="20"/>
<mx:Label text="修改 " fontWeight="bold"/>
<mx:Spacer width="20"/>
<mx:Label text="删除 " fontWeight="bold"/>
<mx:Spacer width="20"/>
<mx:Label text="查看 " fontWeight="bold"/>
<mx:Spacer width="20"/>
<mx:Label text="审核 " fontWeight="bold"/>
<mx:Spacer width="20"/>
<mx:Label text="反审核 " fontWeight="bold"/>
</mx:HBox>
<mx:HBox width="100%" height="100%">
<mx:HBox width="150" height="100%">
<mx:Spacer width="30"/>
<mx:CheckBox id="funccheckbox" width="100" click="setfuncper(event)"/>
</mx:HBox>
<mx:HBox width="100%" height="100%">
<mx:Spacer width="25"/>
<mx:CheckBox id="newcheckbox" width="20" click="setnewbuttom(event)"/>
<mx:Spacer width="35"/>
<mx:CheckBox id="editcheckbox" width="20" click="seteditbuttom(event)"/>
<mx:Spacer width="35"/>
<mx:CheckBox id="deletecheckbox" width="20" click="setdeletebuttom(event)"/>
<mx:Spacer width="35"/>
<mx:CheckBox id="viewcheckbox" width="20" click="setviewbuttom(event)"/>
<mx:Spacer width="35"/>
<mx:CheckBox id="auditcheckbox" width="20" click="setauditbuttom(event)"/>
<mx:Spacer width="40"/>
<mx:CheckBox id="antiauditcheckbox" width="20" click="setantiauditbuttom(event)"/>
</mx:HBox>
</mx:HBox>
</mx:VBox>
</mx:HBox>
</mx:Panel>
</mx:Module>
MenuListPage.mxml组件:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" fontSize="12"
creationComplete="init()">
<mx:Metadata>
[Event(name="funlistEvent","MyEvent.ObjectEvent")]
</mx:Metadata>
<mx:Script>
<![CDATA[
import mx.collections.Sort;
import Modules.MainPage;
import ValueObject.User;
import mx.events.ItemClickEvent;
import mx.rpc.remoting.mxml.RemoteObject;
import mx.rpc.AsyncToken;
import mx.rpc.AbstractOperation;
import mx.rpc.AsyncResponder;
import mx.collections.ArrayCollection;
import mx.collections.Sort;
import mx.collections.SortField;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
import MyEvent.ObjectEvent;
public var ro:RemoteObject;
private var selectedNode:Object;
private function init():void
{
ro = new RemoteObject("roleService");
var token:AsyncToken ;
var operation:AbstractOperation = ro.getOperation("getFunLists");
token = operation.send();
token.addResponder(new AsyncResponder(success,null));
}
private function success(result:Object,token:Object=null):void
{
var eve:ResultEvent = result as ResultEvent;
if(eve.result != null)
{
var arrayOr:ArrayCollection = eve.result as ArrayCollection;
menulist.dataProvider =arrayOr;
}
}
//设置角色回调函数
private function onclickLsit(event:Event):void
{
selectedNode = List(event.target).selectedItem;
var menuEvent:ObjectEvent = new ObjectEvent("funlistEvent",selectedNode.data);
dispatchEvent(menuEvent);
}
]]>
</mx:Script>
<mx:VBox width="100%" height="100%">
<mx:Panel width="100%" height="100%" layout="absolute" title="菜单名称">
<mx:List x="0" id="menulist" width="100%" height="100%" change="onclickLsit(event)"></mx:List>
</mx:Panel>
</mx:VBox>
</mx:Canvas>
java代码:
获取菜单列表:
/**
* 菜单列表
* @return
* 2010-2-25
* Administrator
*/
public List getFunLists(){
List list = new ArrayList();
List returnList = new ArrayList();
list = this.service.findAllObjects("TFunction", 0, 0,"id asc");
for(int i=0;list !=null && i<list.size();i++){
TFunction tFunction = (TFunction)list.get(i);
if(tFunction.getId() ==1) continue;
PagComBo pagComBo = new PagComBo();
pagComBo.setLabel(tFunction.getModuleName());
pagComBo.setData(tFunction.getId());
returnList.add(pagComBo);
}
return returnList;
}
获取角色列表:
/**
* 角色附权获取所有角色
* @return
* 2010-2-25
* Administrator
*/
public List getRoleLists(){
List list = new ArrayList();
List returnList = new ArrayList();
list = this.service.findAllObjects("TRole", 0, 0,"");
for(int i=0;list !=null && i<list.size();i++){
TRole tRole = (TRole)list.get(i);
PagComBo pagComBo = new PagComBo();
pagComBo.setLabel(tRole.getRoleName());
pagComBo.setData(tRole.getId());
returnList.add(pagComBo);
}
return returnList;
}
获取菜单权限:
/**
* 获取菜单权限
* @param roldid
* @param funcid
* @return
* 2010-2-25
* Administrator
*/
public Object[] getPermissions(int roleid,int funcid){
Object[] obj = new Object[9];
TRole trole = new TRole();
trole = (TRole) this.service.findObjectById(trole,roleid);
TFunction tFunction = new TFunction();
tFunction = (TFunction) this.service.findObjectById(tFunction,funcid);
Object[] field =new Object[2];
Object[] value =new Object[2];
field[0] = "tRole";
value[0] = trole;
field[1] = "tFunction";
value[1] = tFunction;
TRoleFunction tRoleFunction = (TRoleFunction) this.service.findObjectByEntity("TRoleFunction", field, value);
//菜单权限
String state = tRoleFunction.getState().trim();
String funcName = tFunction.getModuleName();
obj[6] = funcName;
if("0".equals(state)){
obj[7] = "0";
}else{
obj[7] = "1";
}
//按钮权限
java.util.Set set = tRoleFunction.getTRfButtons();
for(Iterator it=set.iterator();it.hasNext();){
TRfButton tRfButton = (TRfButton) it.next();
TButtonType tButtonType = tRfButton.gettButtonType();
String bstate = tRfButton.getState().trim();
if("1".equals(bstate)){
obj[Integer.parseInt(tButtonType.getBtype().trim())-1]="1";
}else{
obj[Integer.parseInt(tButtonType.getBtype().trim())-1]="0";
}
}
obj[8] = tRoleFunction.getId();
return obj;
}
更新权限状态:
/**
* 更新菜单是否显示
* @param frid
* @param state
* 2010-2-25
* Administrator
*/
public void updateFunctionState(int frid,String state){
updateState("TRoleFunction",frid,state);
}
/**
* 更新按钮是否显示
* @param frid
* @param state
* @param bid
* 2010-2-25
* Administrator
*/
public void updateButtomState(int frid,String state,int bid){
TRoleFunction tRoleFunction = new TRoleFunction();
tRoleFunction = (TRoleFunction) this.service.findObjectById(tRoleFunction, frid);
TButtonType tButtonType = new TButtonType();
tButtonType = (TButtonType) this.service.findObjectById(tButtonType, bid);
Object[] field =new Object[2];
Object[] value =new Object[2];
field[0] = "tRoleFunction";
value[0] = tRoleFunction;
field[1] = "tButtonType";
value[1] = tButtonType;
TRfButton tRfButton = (TRfButton) this.service.findObjectByEntity("TRfButton", field, value);
int btid = tRfButton.getId();
updateState("TRfButton",btid,state);
}
/**
* 更新状态
* @param obj
* @param objid
* @param state
* 2010-2-25
* Administrator
*/
public void updateState(String obj,int objid,String state){
String[] field =new String[2];
String[] value =new String[2];
field[0] = "state";
value[0] = state;
field[1] = "id";
value[1] = Integer.toString(objid);
this.service.updateSql(obj,field,value);
}
938

被折叠的 条评论
为什么被折叠?



