<?xml version="1.0" encoding="UTF-8"?>
|
<ViewConfig>
|
<Arguments/>
|
<Context/>
|
<Model>
|
<DataType name="dataTypeUrl">
|
<Property name="creationType">com.bstek.bdf2.core.model.Url</Property>
|
<PropertyDef name="id">
|
<Property></Property>
|
<Property name="label">菜单ID</Property>
|
</PropertyDef>
|
<PropertyDef name="name">
|
<Property></Property>
|
<Property name="label">菜单名称</Property>
|
<Property name="required">true</Property>
|
</PropertyDef>
|
<PropertyDef name="desc">
|
<Property></Property>
|
<Property name="label">菜单说明</Property>
|
</PropertyDef>
|
<PropertyDef name="url">
|
<Property></Property>
|
<Property name="label">菜单路径</Property>
|
</PropertyDef>
|
<PropertyDef name="forNavigation">
|
<Property name="dataType">boolean</Property>
|
<Property name="label">是否启用</Property>
|
<Property name="required">true</Property>
|
</PropertyDef>
|
<PropertyDef name="companyId">
|
<Property></Property>
|
<Property name="label">所属组织</Property>
|
</PropertyDef>
|
<PropertyDef name="systemId">
|
<Property></Property>
|
<Property name="label">所属分类</Property>
|
<Property name="mapping">
|
<Property name="mapValues">${dorado.getDataProvider("companyPR#triggerFunctionModel").getResult()}</Property>
|
<Property name="keyProperty">code</Property>
|
<Property name="valueProperty">name</Property>
|
</Property>
|
</PropertyDef>
|
<PropertyDef name="icon">
|
<Property></Property>
|
<Property name="label">菜单图标</Property>
|
</PropertyDef>
|
<PropertyDef name="order">
|
<Property name="dataType">Integer</Property>
|
<Property name="label">排序</Property>
|
</PropertyDef>
|
<PropertyDef name="parentId">
|
<Property></Property>
|
</PropertyDef>
|
<PropertyDef name="target">
|
<Property name="label">打开方式</Property>
|
</PropertyDef>
|
<Reference name="children">
|
<Property name="dataType">[SELF]</Property>
|
<Property name="dataProvider">core.urlMaintain#loadUrls</Property>
|
<Property name="parameter">
|
<Entity>
|
<Property name="parentId">$${this.id}</Property>
|
</Entity>
|
</Property>
|
</Reference>
|
</DataType>
|
</Model>
|
<View layout="padding:5;regionPadding:5">
|
<ClientEvent name="onReady">self.buildOrder=function(nodes){
|
var order=1;
|
nodes.each(function(node){
|
var entityOrder=node.get("data.order");
|
order=entityOrder+1;
|
});
|
return order;
|
}</ClientEvent>
|
<UpdateAction id="updateActionUrl">
|
<Property name="dataResolver">bdf2.urlMaintain#saveUrls</Property>
|
<Property name="successMessage">数据已保存</Property>
|
<UpdateItem>
|
<Property name="dataSet">dataSetUrl</Property>
|
</UpdateItem>
|
</UpdateAction>
|
<DataSet id="dataSetUrl">
|
<Property name="dataType">[dataTypeUrl]</Property>
|
<Property name="dataProvider">core.urlMaintain#loadUrls0</Property>
|
</DataSet>
|
<Panel layoutConstraint="left">
|
<Property name="caption">菜单列表</Property>
|
<Property name="width">280</Property>
|
<Buttons/>
|
<Children>
|
<ToolBar>
|
<ToolBarLabel>
|
<Property name="text">所属分类:</Property>
|
</ToolBarLabel>
|
<TextEditor id="systemId">
|
<ClientEvent name="onPost">var key = view.get("#systemId").get("value");
|
view.get("#dataSetUrl").set("parameter",key).flushAsync();</ClientEvent>
|
<Property name="mapping">
|
<Property name="mapValues">${dorado.getDataProvider("companyPR#triggerFunctionModel").getResult()}</Property>
|
<Property name="keyProperty">code</Property>
|
<Property name="valueProperty">name</Property>
|
</Property>
|
<Property name="trigger">autoMappingDropDown2</Property>
|
<Property name="style">
|
<Property name="height">25px</Property>
|
<Property name="line-height">25px</Property>
|
</Property>
|
</TextEditor>
|
</ToolBar>
|
<DataTree id="dataTreeUrl">
|
<ClientEvent name="beforeCurrentChange">var node=arg.oldCurrent;
|
if(node){
|
var data=node.get("data");
|
if(data && data.state!=dorado.Entity.STATE_NONE && data.state!=dorado.Entity.STATE_MOVED){
|
view.id("updateActionUrl").execute();
|
if(data.validate()!="ok"){
|
arg.processDefault=false;
|
}
|
}
|
}
|
</ClientEvent>
|
<ClientEvent name="onDraggingSourceDrop">var draggingInfo=arg.draggingInfo;
|
if(!draggingInfo){
|
return true;
|
}
|
var parentNode=draggingInfo.get("targetObject");
|
if(!parentNode){
|
return true;
|
}
|
var parentId=parentNode.get("data.id");
|
var order=1;
|
parentNode.get("nodes").each(function(node){
|
var data=node.get("data");
|
data.set("order",order++);
|
data.set("parentId",parentId);
|
});
|
view.id("updateActionUrl").execute();
|
</ClientEvent>
|
<ClientEvent name="onContextMenu">view.id("menuOperate").show({
|
position: {
|
left: arg.event.pageX,
|
top: arg.event.pageY
|
}
|
});
|
</ClientEvent>
|
<Property name="dataSet">dataSetUrl</Property>
|
<Property name="width">280</Property>
|
<Property name="currentNodeDataPath">currentUrl</Property>
|
<Property name="draggable">true</Property>
|
<Property name="dragTags">url</Property>
|
<Property name="droppable">true</Property>
|
<Property name="droppableTags">url</Property>
|
<Property name="dropMode">onOrInsertItems</Property>
|
<BindingConfigs>
|
<BindingConfig>
|
<Property name="childrenProperty">children</Property>
|
<Property name="iconProperty">icon</Property>
|
<Property name="tipProperty">desc</Property>
|
<Property name="labelProperty">name</Property>
|
<Property name="expandLevel">1</Property>
|
<Property name="recursive">true</Property>
|
</BindingConfig>
|
</BindingConfigs>
|
</DataTree>
|
</Children>
|
<Tools/>
|
</Panel>
|
<Panel layoutConstraint="center ">
|
<Property name="caption">菜单编辑</Property>
|
<Property name="style">
|
<Property name="padding-left">10px</Property>
|
</Property>
|
<Buttons/>
|
<Children>
|
<AutoForm layoutConstraint="center">
|
<Property name="dataSet">dataSetUrl</Property>
|
<Property name="dataPath">!currentUrl</Property>
|
<Property name="cols">*</Property>
|
<Property name="labelSeparator">:</Property>
|
<Property name="labelAlign">right</Property>
|
<Property name="labelWidth">120</Property>
|
<Property name="width">600</Property>
|
<AutoFormElement>
|
<Property name="name">name</Property>
|
<Property name="property">name</Property>
|
<Editor/>
|
</AutoFormElement>
|
<AutoFormElement>
|
<Property name="name">forNavigation</Property>
|
<Property name="property">forNavigation</Property>
|
<Editor/>
|
</AutoFormElement>
|
<AutoFormElement>
|
<Property name="name">url</Property>
|
<Property name="property">url</Property>
|
<Editor/>
|
</AutoFormElement>
|
<AutoFormElement>
|
<Property name="name">target</Property>
|
<Property name="property">target</Property>
|
<Editor>
|
<RadioGroup>
|
<Property name="dataSet">dataSetUrl</Property>
|
<Property name="dataPath">!currentUrl</Property>
|
<Property name="property">target</Property>
|
<RadioButton>
|
<Property name="text">默认打开</Property>
|
<Property name="value">_self</Property>
|
</RadioButton>
|
<RadioButton>
|
<Property name="text">新页面打开</Property>
|
<Property name="value">_blank</Property>
|
</RadioButton>
|
</RadioGroup>
|
</Editor>
|
</AutoFormElement>
|
<AutoFormElement>
|
<Property name="name">icon</Property>
|
<Property name="property">icon</Property>
|
<Editor/>
|
</AutoFormElement>
|
<AutoFormElement>
|
<Property name="name">systemId</Property>
|
<Property name="property">systemId</Property>
|
<Editor/>
|
</AutoFormElement>
|
<AutoFormElement>
|
<Property name="name">desc</Property>
|
<Property name="property">desc</Property>
|
<Property name="editorType">TextArea</Property>
|
<Editor/>
|
</AutoFormElement>
|
</AutoForm>
|
<Container layout="regionPadding:20" layoutConstraint="center">
|
<Button layoutConstraint="left ">
|
<ClientEvent name="onClick">dorado.MessageBox.confirm("您真的要删除用于导航的URL缓存吗?",function(){
|
view.id("ajaxActionRefreshCache").execute();
|
})</ClientEvent>
|
<Property name="caption">刷新缓存</Property>
|
<Property name="icon">url(skin>common/icons.gif) -40px -240px</Property>
|
</Button>
|
<Button layoutConstraint="left">
|
<Property name="icon">url(skin>common/icons.gif) -140px -20px</Property>
|
<Property name="caption">确定保存</Property>
|
<Property name="style">
|
<Property name="margin-right">30</Property>
|
</Property>
|
<Property name="action">updateActionUrl</Property>
|
</Button>
|
</Container>
|
</Children>
|
<Tools/>
|
</Panel>
|
<Menu id="menuOperate">
|
<MenuItem>
|
<ClientEvent name="onClick">var data=view.id("dataSetUrl").getData();
|
var newOrder=view.buildOrder(view.id("dataTreeUrl").get("root").get("nodes"));
|
var newEntity=data.insert({order:newOrder,name:'新菜单'});
|
view.id("dataTreeUrl").set("currentEntity",newEntity);</ClientEvent>
|
<Property name="name">addRoot</Property>
|
<Property name="caption">添加根节点</Property>
|
<Property name="icon">url(skin>common/icons.gif) -280px -100px</Property>
|
</MenuItem>
|
<MenuItem>
|
<ClientEvent name="onClick">var tree=view.id("dataTreeUrl");
|
var currentNode=tree.get("currentNode");
|
if(!currentNode){
|
dorado.MessageBox.alert("请先选中一个父节点!");
|
return;
|
}
|
var newOrder=view.buildOrder(currentNode.get("nodes"));
|
var currentEntity=currentNode.get("data");
|
currentNode.expand();
|
var newEntity=currentEntity.createChild("children",{
|
parentId:currentEntity.get("id"),
|
order:newOrder,
|
name:'新菜单'
|
});
|
tree.set("currentEntity",newEntity);
|
</ClientEvent>
|
<Property name="caption">添加子节点</Property>
|
<Property name="name">addSub</Property>
|
<Property name="icon">url(skin>common/icons.gif) -120px 0px</Property>
|
</MenuItem>
|
<MenuItem>
|
<ClientEvent name="onClick">var tree=view.id("dataTreeUrl");
|
var entity=tree.get("currentEntity");
|
if(entity){
|
view.id("ajaxActionCheckChildren").set("parameter", entity.get("id")).execute(function(count){
|
if (count>0){
|
dorado.MessageBox.alert("请先删除子节点");
|
} else {
|
dorado.MessageBox.confirm("真的要删除当前节点?",function(){
|
entity.remove();
|
var firstNode=tree.get("firstNode");
|
if(firstNode){
|
tree.set("currentNode",firstNode);
|
}
|
view.id("updateActionUrl").execute();
|
});
|
}
|
});
|
}else{
|
dorado.MessageBox.alert("当前没有节点可供删除!");
|
}
|
</ClientEvent>
|
<Property name="name">del</Property>
|
<Property name="caption">删除</Property>
|
<Property name="icon">url(skin>common/icons.gif) -140px 0px</Property>
|
</MenuItem>
|
</Menu>
|
<Import src="bdf2.core.view.IconSelect#$dialogSelectIcon"/>
|
<AjaxAction id="ajaxActionCheckChildren">
|
<Property name="service">core.urlMaintain#countChildren</Property>
|
</AjaxAction>
|
<AjaxAction id="ajaxActionRefreshCache">
|
<Property name="service">core.urlMaintain#refreshUrlCache</Property>
|
<Property name="successMessage">缓存刷新成功!</Property>
|
</AjaxAction>
|
</View>
|
</ViewConfig>
|