EasyUI的Messager拓展,一般的审核、请假、流程处理模块

发布于 2012-12-04  5.61k 次阅读


一般的审核功能,有基本的处理方式【通过】or【不通过】,处理意见等字段自定义。

今天用到,之前想用jquey的dialog来处理,但是感觉起来跟整体代码的美观不兼容,所以直接修改源码,思路是改个messager,源码贴上来:

1、首先要加个定义,基于1.3.1,找到$.messager.prompt ,通过重构这个方法来处理 ..

复制这段prompt定义为auditer

2、这auditer函数里写你自己的处理方式和页面结构了

,auditer:function(_22e,msg,lab1,lab2,fn){
var _22f="<div><label>"+lab1+"<label>:<select id='cc'/><div id='sp'><div style='color:#99BBE8;background:#fafafa;padding:5px;'>选择处理方式</div><input type='radio' name='opperatype' value='true'/><span>通过</span><br/><input type='radio' name='opperatype' value='false'/><span>不通过</span><br/></div>"+"<br/>"+"<label>"+lab2+":</label><textarea class="messager-input" type="text"/></div>"+"<div style="clear:both;"/>";
var _230={};
_230[$.messager.defaults.ok]=function(){
if($("#cc",win).combo('validate')==true)
win.window("close");
if(fn){
fn($(".messager-input",win).val(),$("#cc",win).combo('getValue'),$("#cc",win).combo('getText'));//
return false;//这里是返回前台调用时需要用到的值,下拉的text和value
}
};
_230[$.messager.defaults.cancel]=function(){
win.window("close");
if(fn){
fn();
return false;
}
};
var win=_222(_22e,_22f,_230,true);//后面加了个true,用来在_222函数中做判断是否需要别的处理
win.children("input.messager-input").focus();
return win;
},

3、_222函数也要改,把下拉的样式解析

function _222(_223,_224,_225,_226){
var win=$("<div class="messager-body"></div>").appendTo("body");
win.append(_224);

//在中间插入解析select
if(_226){
$("div.messager-body").find('#cc').combo({
required:true,
editable:false
});
$('#sp').appendTo($('#cc').combo('panel'));
$('#sp input').click(function(){
var v = $(this).val();
var s = $(this).next('span').text();
$('#cc').combo('setValue', v).combo('setText', s).combo('hidePanel');
});
}

 

if(_225){
var tb=$("<div class="messager-button"></div>").appendTo(win);
for(var _226 in _225){
$("<a></a>").attr("href","javascript:void(0)").text(_226).css("margin-left",10).bind("click",eval(_225[_226])).appendTo(tb).linkbutton();
}
}

 

4、前台调用就简单多了

$.messager.auditer('My Title', 'Please type something', '审核处理','审核意见', function(textValue,selectValue,selectText){
        alert(selectValue);
        //and do something...
    });

5、最后的结构就是这样的

 

all done..