公共属性:
id=唯一标识,必填
name=表单名称,必填
value=表单值
isReadonly=是否只读

下拉框&查找框 特有属性:
code=元对象编码,必填
field=元字段名称,必填
multiple是否多选

文本框框&文本域 特有属性:
placeholder=框内友好提示信息

文本域&编辑框&JSON框 特有属性:
style=自定义CSS

图片框&文件框 特有属性:
filedir=自定义上传目录,必填

其它:
options=自定义高级属性,详情参见EovaUI源码!


EOVA控件

// 文本框
<#text id="txtInfo" name="info" value="一句话构建文本框" placeholder="请输入信息..." validator="" options="" isReadonly="" />
// 下拉框
<#combo id="" name="" code="" field="" value="" multiple="" isReadonly="" />
// 查找框
<#find id="" name="" code="" field="" value="" multiple="" isReadonly="" />
// 时间框
<#time id="" name="" value="" isReadonly="" options="format:'yyyy-MM-dd HH:mm:ss'" />
// 日期框
<#time id="" name="" value="" isReadonly="" options="format:'yyyy-MM-dd'"/>
// 文本域
<#texts id="" name="" value="" placeholder="" validator="" style="width:99.9%;height:20px;" isReadonly="" />
// 编辑框
<#edit id="" name="" value="" style="width: auto;height:250px;" isReadonly="" />
// 布尔框
<#bool id="" name="" value="" isReadonly="" />
// 图片框
<#img id="" name="" value="" filedir="" options="" />
// 文件框
<#file id="" name="" value="" isReadonly="" filedir="" />
// 图标框
<#icon id="" name="" value="" isReadonly="" />
// JSON框
<#json id="" name="" value="" style="margin-top: 3px;width:99.9%;height:200px;" isReadonly="" />


EOVA组件

objectCode=元对象编码(给我一个对象编码,我就能给你一个宇宙)
toolbar=绑定工具栏ID
menuCode=当前菜单编码(会自动获取当前菜单的相关限制,比如过滤条件等)

// 查询
<#query id="" objectCode="" />
// 表单
<#form id="" objectCode="" />
// 表格 
<#grid id="" objectCode="" toolbar="" menuCode="" />
// 树表
<#treegrid id="" objectCode="" toolbar="" menuCode="" treeField="以树方式展现的字段" />
// 树
<#tree id="" objectCode="" menuCode=""  idKey="" nameKey="" pidKey="" iconKey="" rootPid="" expandAll="true" />(故名思意,自解!)


格式化-红色加粗
function(value, row, index, field) {
    if (value) {
        return '<b style="color: red">' + value + '</b>';
    }
    return value;
}

格式化-图片
function(value, row, index, field) {
    if (value) {
        return '<img src="http://图片域名/图片目录/' + value + '" height=25>'
    }
    return value
}

格式化-链接
function(value, row, index, field) {
    return '<a target="_blank" href="http://eova.cn" style="color:blue">' + value + ''
}

格式化-进度条
function(value, row, index, field) {
    if (value) {
        var s = '<div style="width:100%;border:1px solid #ccc">' + '<div style="width:' + value + '%;background:#cc0000;color:#fff">' + value + '%' + '</div></div>';
        return s;
    } else {
        return '';
    }
}

格式化-新开关联页面 to 浏览器Tab
function(value, row, index, field) {
    return '<a target="_blank" href="/single_grid/list/biz_demo_hotel_stock?query_hotel_id=' + row.id + '" style="color:blue">' + value + '</a>';
}

格式化-新开关联页面 to Eova Tab
function(value, row, index, field) {
    var url = '/single_grid/list/biz_demo_hotel_stock?query_hotel_id=' + row.id;
    var title = row.name + '库存';
    var icon = 'eova-icon1';
    return $.str.format('<a href="javascript:$.eovatab(parent, \'{0}\', \'{1}\', \'{2}\')" style="color:blue">{3}</a>', url, title, icon, value);
}
PS:JS是万能的,只有你想不到的,没有你做不到的!大胆猜测,小心验证!

查询来自eova库中的字典,构建下拉框
select value ID,name CN from eova_dict where object = '表名' and field = '字段名';ds=eova


查询来自main库中的字典,构建下拉框(默认为main库,不用写ds=main)
select value ID,name CN from dicts where object = '表名' and field = '字段'


查找表达式
select id ID,name 酒店名 from hotel
select id ID,name 酒店名,address 地址 from hotel


查找表达式-逻辑判断SQL条件(Beetl语法)
${exp1!}

规则	参数	描述	例子
required		必填项	
required        //不能为空
required(xxx)   //满足xxx规则,才验证required
required(not, xxx) //如果值为空,或者xxx也认为是空
integer	可选,标识	整数	
integer         //请输入整数
integer[*]      //请输入整数
integer[+]      //请输入正整数
integer[+0]     //请输入正整数或0
integer[-]      //请输入负整数
integer[-0]     //请输入负整数或0
match	可选,标识
必选, 另一字段名	与另一字段匹配,两种用法:

match[name];
用于验证两个字段的值必须相同

match[condition, name];
用于比较两个字段大小	
match[password]  //与password字段的值匹配
match[lt, money]  //小于money字段的值
match[lte, money] //小于等于money字段的值
match[eq, money]  //等于money字段的值匹配
match[neq, money]  //不能等于money字段的值
match[gte, money] //大于等于money字段的值
match[gt, money]  //大于money字段的值
range	必选,范围值	数值范围	
range[0~99]      //0到99的整数
range[~99]       //小于或等于99的整数
range[0~]        //大于或等于0的整数
length	必选,范围值
可选,是否计算真实长度	验证字符长度	
length[6~16]       //6-16个字符
length[6]          //6个字符
length[~6]         //小于6个字符
length[6~]         //大于6个字符

length[~6, true]   //小于6个字符,全角字符计算双字符
checked	可选,范围值	对于checkbox或radio
必须要选中多少项	
checked             //必填,相当于required
checked[3~5]        //请选择3到5项
checked[3]          //请选择3项
checked[~5]         //请选择少于5项
checked[3~]         //请选择大于3项
remote	必选,url地址
可选,附带额外的字段	远程验证	
remote[path/to/server.php]
remote[path/to/server.php, name1, name2, ..]
// 自动刷新Eova组件(datagrid+treegrid)
$.widgetReLoad($widget);

// 自动获取组件选中行(datagrid+treegrid)
$.getWidgetSelected($widget);