信呼OA版本v2.3.8
This commit is contained in:
433
mode/bootstrapplugin/jquery-bootsform.js
vendored
Normal file
433
mode/bootstrapplugin/jquery-bootsform.js
vendored
Normal file
@@ -0,0 +1,433 @@
|
||||
/**
|
||||
* bootstable 表单录入插件
|
||||
* caratename:雨中磐石(rainrock)
|
||||
* caratetime:2014-04-06 21:40:00
|
||||
* email:admin@rockoa.com
|
||||
* homepage:www.rockoa.com
|
||||
*/
|
||||
|
||||
|
||||
(function ($) {
|
||||
|
||||
function bootsform(element, options){
|
||||
var obj = element;
|
||||
var can = options;
|
||||
var rand = can.rand;
|
||||
var me = this;
|
||||
this.form = null;
|
||||
this.editdata = {};
|
||||
this.itemsdata = {};
|
||||
|
||||
this.init = function(){
|
||||
if(rand=='')rand=js.getrand();
|
||||
if(!can.window)return;
|
||||
can.windowid = 'window_'+rand+'';
|
||||
var s = this._create();
|
||||
js.tanbody(can.windowid, can.title, can.width, can.height,{bbar:'none',html:s,titlecls:can.saveCls});
|
||||
can.render = ''+can.windowid+'_body';
|
||||
obj = $('#'+can.render+'');
|
||||
this.createafter();
|
||||
$('#cancel_'+rand+'').focus();
|
||||
};
|
||||
this.forminit = function(){
|
||||
this.createafter();
|
||||
};
|
||||
this.createafter = function(){
|
||||
this.form = document['form_'+rand+''];
|
||||
var saveid = can.saveid;
|
||||
if(saveid=='')saveid = 'save_'+rand+'';
|
||||
$('#'+saveid+'').click(function(){
|
||||
me._save(this, 0);
|
||||
});
|
||||
$('#cancel_'+rand+'').click(function(){
|
||||
me._cancel(this);
|
||||
});
|
||||
var a = can.items,b=[],i;
|
||||
if(can.requiredfields!='')b = can.requiredfields.split(',');
|
||||
for(i=0; i<a.length; i++){
|
||||
if(a[i].required)b.push(a[i].name);
|
||||
}
|
||||
for(i=0; i<b.length; i++){
|
||||
$(this.form[b[i]]).change(function(){
|
||||
me.isValid();
|
||||
});
|
||||
$(this.form[b[i]]).blur(function(){
|
||||
me.isValid();
|
||||
});
|
||||
}
|
||||
if(obj){
|
||||
obj.find("button[changeuser]").click(function(){
|
||||
me._changeuser($(this));
|
||||
return false;
|
||||
});
|
||||
obj.find("button[changeclear]").click(function(){
|
||||
me._changeclear($(this));
|
||||
return false;
|
||||
});
|
||||
obj.find("button[changedate]").click(function(){
|
||||
me._changedate($(this));
|
||||
return false;
|
||||
});
|
||||
}
|
||||
};
|
||||
this._changeuser = function(o){
|
||||
var cn = o.attr('changeuser');
|
||||
var ssa = this.itemsdata[cn].changeuser;
|
||||
if(!ssa)ssa={};
|
||||
ssa.nameobj = this.form[cn];
|
||||
if(ssa.idname){
|
||||
ssa.value = this.getValue(ssa.idname);
|
||||
ssa.idobj = this.form[ssa.idname];
|
||||
}
|
||||
js.getuser(ssa);
|
||||
};
|
||||
this._changedate = function(o){
|
||||
var viev = o.attr('changedate'),atr='',
|
||||
inpu = o.attr('inputid');
|
||||
var cans = {view:viev,inputid:inpu,initshow:true};
|
||||
o.rockdatepicker(cans);
|
||||
};
|
||||
this._changeclear = function(o){
|
||||
var cn = o.attr('changeclear');
|
||||
var ssa = this.itemsdata[cn].changeuser;
|
||||
if(!ssa)ssa={};
|
||||
if(ssa.idname){
|
||||
this.setValue(ssa.idname, '');
|
||||
}
|
||||
this.setValue(cn, '');
|
||||
};
|
||||
this._create = function(){
|
||||
var s = '',a=can.items,i,i1,style='padding:10px';
|
||||
if(can.bodyheight!=0)style+=';height:'+can.bodyheight+'px';
|
||||
s+='<div align="center" style="'+style+';overflow-y:auto" >';
|
||||
s+='<form id="form_'+rand+'" name="form_'+rand+'" style="padding:0px;maring:0px">';
|
||||
s+='<input name="id" value="0" type="hidden">';
|
||||
s+='<table width="'+can.bodywidth+'">';
|
||||
for(i=0; i<a.length; i++){
|
||||
can.items[i] = js.applyIf(a[i], can.defaultfields);
|
||||
a[i] = can.items[i];
|
||||
this.itemsdata[a[i].name] = a[i];
|
||||
var bl=a[i].blankText,bt='',attr = a[i].attr;
|
||||
if(!bl)bl='';if(!attr)attr='';
|
||||
if(a[i].required)bt='<font color="red">*</font>';
|
||||
if(a[i].readOnly)attr+=' readonly';
|
||||
if(a[i].repEmpty)attr+=' onblur="this.value=strreplace(this.value)"';
|
||||
if(a[i].type=='number')attr+=' onfocus="js.focusval=this.value" onblur="js.number(this)"';
|
||||
var inp = '<input placeholder="'+bl+'" '+attr+' type="'+a[i].type+'" value="'+a[i].value+'" name="'+a[i].name+'" class="form-control">';
|
||||
if(a[i].type=='checkbox'){
|
||||
if(a[i].checked)attr+=' checked';
|
||||
inp = '<label><input name="'+a[i].name+'" '+attr+' value="1" type="checkbox"> '+a[i].labelBox+'</label>';
|
||||
}else if(a[i].type=='textarea'){
|
||||
inp = '<textarea placeholder="'+bl+'" '+attr+' name="'+a[i].name+'" class="form-control" style="height:'+a[i].height+'px">'+a[i].value+'</textarea>';
|
||||
}else if(a[i].type=='select'){
|
||||
inp = '<select name="'+a[i].name+'" class="form-control">';
|
||||
var sto = a[i].store;
|
||||
for(i1=0;i1<sto.length;i1++){
|
||||
inp+='<option value="'+sto[i1][a[i].valuefields]+'">'+sto[i1][a[i].displayfields]+'</option>';
|
||||
}
|
||||
inp += '</select>';
|
||||
}else if(a[i].type=='changeuser'){
|
||||
inp = '<div class="input-group"><input placeholder="'+bl+'" readonly class="form-control" name="'+a[i].name+'" >';
|
||||
inp+= '<span class="input-group-btn">';
|
||||
if(a[i].clearbool)inp+= '<button class="btn btn-default" changeclear="'+a[i].name+'" type="button"><i class="icon-remove"></i></button>';
|
||||
inp+= '<button class="btn btn-default" changeuser="'+a[i].name+'" type="button"><i class="icon-search"></i></button>';
|
||||
inp+= '</span></div>';
|
||||
}else if(a[i].type=='date'){
|
||||
inp = '<div class="input-group"><input readonly class="form-control" id="'+a[i].name+'-'+rand+'-inputid" name="'+a[i].name+'" >';
|
||||
inp+= '<span class="input-group-btn">';
|
||||
inp+= '<button class="btn btn-default" '+attr+' changedate="'+a[i].view+'" inputid="'+a[i].name+'-'+rand+'-inputid" type="button"><i class="icon-calendar"></i></button>';
|
||||
inp+= '</span></div>';
|
||||
}else if(a[i].type=='html'){
|
||||
inp = a[i].html;
|
||||
}
|
||||
if(a[i].type == 'hidden'){
|
||||
s+='<tr><td></td><td>'+inp+'</td></tr>';
|
||||
}else{
|
||||
s+='<tr na="'+a[i].name+'">';
|
||||
s+='<td align="'+can.labelAlign+'" style="padding-right:5px" width="'+can.labelWidth+'">'+bt+''+a[i].labelText+'</td>';
|
||||
s+='<td style="padding:5px" align="left">'+inp+'</td>'
|
||||
s+='</tr>';
|
||||
}
|
||||
}
|
||||
s+='</table>';
|
||||
s+='</form>';
|
||||
s+='</div>';
|
||||
s+='<div style="padding:8px 10px;background:#eeeeee;line-height:30px" align="right"><span id="msgview_'+rand+'"></span> ';
|
||||
s+=' <button type="button" class="btn btn-'+can.saveCls+'" disabled id="save_'+rand+'"><i class="icon-save"></i> '+can.saveText+'</button>';
|
||||
if(can.cancelbtn)s+=' <button type="button" class="btn btn-default" id="cancel_'+rand+'"><i class="icon-remove"></i> 取消</button>';
|
||||
s+='</div>';
|
||||
return s;
|
||||
};
|
||||
this.setVisited=function(na, bo){
|
||||
var o = obj.find("tr[na='"+na+"']");
|
||||
if(bo){o.show();}else{o.hide();}
|
||||
};
|
||||
this.isValid = function(){
|
||||
var bo= false,o;
|
||||
var a = can.items,s='';
|
||||
for(i=0; i<a.length; i++){
|
||||
if(a[i].required){
|
||||
if(isempt(this.getValue(a[i].name))){
|
||||
bo = true;
|
||||
s = a[i].tipText;
|
||||
if(!s)s=''+a[i].labelText+'不能为空';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!bo && can.requiredfields!=''){
|
||||
a = can.requiredfields.split(',');
|
||||
for(i=0; i<a.length; i++){
|
||||
if(isempt(this.getValue(a[i]))){
|
||||
bo = true;
|
||||
s = '*是必填的';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
o = get('save_'+rand+'');
|
||||
if(o){
|
||||
o.disabled=bo;
|
||||
o.title=s;
|
||||
}
|
||||
this.isValidText = s;
|
||||
return bo;
|
||||
};
|
||||
|
||||
this._cancel = function(o1){
|
||||
if(can.windowid!='')js.tanclose(can.windowid);
|
||||
};
|
||||
this.close = function(){
|
||||
this._cancel();
|
||||
};
|
||||
this.save = function(o1){
|
||||
this._save(o1, 1);
|
||||
};
|
||||
this.signature= function(da, url){
|
||||
var time = parseInt(js.now('time')*0.001);
|
||||
var siaa = ''+NOWURL+''+url+''+da.tablename_postabc+''+time+'_'+adminid+'';
|
||||
var sign = md5(siaa);
|
||||
da.sys_signature= sign;
|
||||
da.sys_timeature= time;
|
||||
return da;
|
||||
};
|
||||
this._save = function(o1, lx){
|
||||
if(this.isValid()){
|
||||
this.setmsg(this.isValidText);
|
||||
return;
|
||||
}
|
||||
var data = this.getValues(),ac,ebo=false,s,i;
|
||||
var fids = can.submitfields.split(',');
|
||||
for(i=0;i<fids.length;i++){
|
||||
ac = fids[i];
|
||||
if(data[ac]!=this.editdata[ac]){
|
||||
ebo = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!ebo && lx == 0 && can.pdedit){
|
||||
//this.setmsg('数据没修改,不用保存','#F92FB6');
|
||||
//return;
|
||||
};
|
||||
s = can.submitcheck(data, me);
|
||||
if(typeof(s)=='string' && s){
|
||||
this.setmsg(s);
|
||||
return;
|
||||
}
|
||||
this.setmsg('处理中...','#ff6600');
|
||||
for(ac in can.params)data[ac]=can.params[ac];
|
||||
if(typeof(s)=='object'){
|
||||
for(ac in s)data[ac]=s[ac];
|
||||
}
|
||||
data.tablename_postabc = jm.encrypt(can.tablename);
|
||||
data.submitfields_postabc = jm.base64encode(can.submitfields);
|
||||
data.aftersaveaction = can.aftersaveaction;
|
||||
data.beforesaveaction = can.beforesaveaction;
|
||||
data.editrecord_postabc = can.editrecord;
|
||||
data.sysmodenumabc = can.modenum;
|
||||
o1.disabled = true;
|
||||
$.ajax({
|
||||
type:'post',
|
||||
url:can.url,
|
||||
data:this.signature(data, can.url),
|
||||
success:function(da){
|
||||
var a = js.decode(da);
|
||||
if(a.success){
|
||||
me.setmsg(a.msg, 'green');
|
||||
if(can.autoclose){
|
||||
js.msg('success', a.msg);
|
||||
me._cancel();
|
||||
}
|
||||
can.success(a, me);
|
||||
}else{
|
||||
o1.disabled = false;
|
||||
me.setmsg(a.msg);
|
||||
if(!a.msg)js.msg('msg', da);
|
||||
can.error();
|
||||
}
|
||||
},
|
||||
error:function(e){
|
||||
o1.disabled = false;
|
||||
me.setmsg('Error:'+e.responseText+'');
|
||||
can.error();
|
||||
}
|
||||
});
|
||||
};
|
||||
this.getValue = function(na){
|
||||
var o = this.form[na];
|
||||
if(!o)return '';
|
||||
return o.value;
|
||||
};
|
||||
this.setValue = function(na,val){
|
||||
var o = this.form[na];
|
||||
if(!o)return;
|
||||
o.value = val;
|
||||
};
|
||||
this.setUrl = function(url){
|
||||
can.url = url;
|
||||
};
|
||||
this.setmsg = function(txt,col){
|
||||
if(!col)col='red';
|
||||
var msgid = can.msgviewid;
|
||||
if(msgid == '')msgid='msgview_'+rand+'';
|
||||
$('#'+msgid+'').html(js.getmsg(txt,col));
|
||||
};
|
||||
this.getValues=function(){
|
||||
var da ={},i,ona='',o;
|
||||
for(i=0;i<this.form.length;i++){
|
||||
o = this.form[i];
|
||||
var type = o.type,
|
||||
val = o.value,
|
||||
na = o.name;
|
||||
if(type=='checkbox'){
|
||||
val = '0';
|
||||
if(o.checked)val='1';
|
||||
da[na] = val;
|
||||
}else if(type=='radio'){
|
||||
if(o.checked)da[na] = val;
|
||||
}else{
|
||||
da[na] = val;
|
||||
}
|
||||
if(na.indexOf('[]')>-1){
|
||||
if(ona.indexOf(na)<0)ona+=','+na+'';
|
||||
}
|
||||
}
|
||||
if(ona != ''){
|
||||
var onas = ona.split(',');
|
||||
for(i=1; i<onas.length; i++){
|
||||
da[onas[i].replace('[]','')] = js.getchecked(onas[i]);
|
||||
}
|
||||
}
|
||||
return da;
|
||||
};
|
||||
this.getType = function(na){
|
||||
var o = this.form[na];
|
||||
if(!o)return '';
|
||||
return a.type;
|
||||
};
|
||||
this.setValues=function(da, otf){
|
||||
var na,type,v,o,i,
|
||||
fis = can.submitfields.split(',');
|
||||
if(otf){
|
||||
var otfs = otf.split(',');
|
||||
for(i=0; i<otfs.length; i++)fis.push(otfs[i]);
|
||||
}
|
||||
for(i=0;i<fis.length;i++){
|
||||
na = fis[i];
|
||||
o = this.form[na];
|
||||
if(!o)continue;
|
||||
type= o.type;
|
||||
v = da[na];
|
||||
if(v==null)v='';
|
||||
da[na] = v;
|
||||
if(type == 'checkbox'){
|
||||
o.checked=(v=='1')?true:false;
|
||||
}else{
|
||||
o.value = v;
|
||||
}
|
||||
}
|
||||
this.setValue('id', da.id);
|
||||
this.editdata = da;
|
||||
this.isValid();
|
||||
};
|
||||
this.reset=function(){
|
||||
this.form.reset();
|
||||
};
|
||||
this.getField=function(na){
|
||||
return this.form[na];
|
||||
};
|
||||
this.setTitle = function(tit){
|
||||
$('#'+can.windowid+'_title').html(tit);
|
||||
};
|
||||
|
||||
this.load = function(url){
|
||||
this.setmsg('加载中...');
|
||||
$.get(url, function(da){
|
||||
var a = js.decode(da);
|
||||
me._loadback(a);
|
||||
});
|
||||
};
|
||||
|
||||
this._loadback = function(a){
|
||||
can.load(a, this, this.form);
|
||||
if(a.data)this.setValues(a.data);
|
||||
this.setmsg('');
|
||||
can.loadafter(a,this.form);
|
||||
};
|
||||
|
||||
this.setReadOnly = function(na){
|
||||
if(na){
|
||||
this.getField(na).readOnly = true;
|
||||
}else{
|
||||
for(var i=0;i<this.form.length;i++){
|
||||
this.form[i].readOnly = true;
|
||||
}
|
||||
}
|
||||
};
|
||||
this.setDisabled = function(na){
|
||||
if(na){
|
||||
this.getField(na).disabled = true;
|
||||
}else{
|
||||
for(var i=0;i<this.form.length;i++){
|
||||
this.form[i].disabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
$.bootsform = function(options){
|
||||
var defaultVal = {
|
||||
items:[],labelWidth:90,width:500,height:400,
|
||||
labelAlign:'right',saveCls:'primary',
|
||||
tablename:'', //对应表名
|
||||
modenum:'', //对应模块编号
|
||||
url:js.getajaxurl('publicsave','index'),
|
||||
submitfields:'',autoclose:true,cancelbtn:true,
|
||||
params:{},bodywidth:'90%',addCls:'primary',editCls:'info',bodyheight:0,isedit:0,
|
||||
render:'',saveText:'确定',window:true,windowid:'',
|
||||
editrecord:'false', //是否保存修改记录
|
||||
defaultfields:{type:'text',blankText:'',labelText:'',required:false,readOnly:false,labelBox:'',attr:'',value:''},
|
||||
success:function(){},loadafter:function(){},
|
||||
load:function(){},
|
||||
aftersaveaction:'', //保存后处理方法
|
||||
beforesaveaction:'', //保存前处理方法
|
||||
requiredfields:'',
|
||||
error:function(){},saveid:'',msgviewid:'',rand:'',
|
||||
pdedit:true,
|
||||
submitcheck:function(){return ''}
|
||||
};
|
||||
var can = $.extend({}, defaultVal, options);
|
||||
if(can.isedit==0){
|
||||
can.saveCls = can.addCls;
|
||||
can.title = '<i class="icon-plus"></i> 新增 '+can.title+'';
|
||||
}
|
||||
if(can.isedit==1){
|
||||
can.saveCls = can.editCls;
|
||||
can.title = '<i class="icon-edit"></i> 编辑 '+can.title+'';
|
||||
}
|
||||
var clsa = new bootsform(false, can);
|
||||
clsa.init();
|
||||
return clsa;
|
||||
};
|
||||
})(jQuery);
|
||||
41
mode/bootstrapplugin/jquery-bootsoedit.js
vendored
Normal file
41
mode/bootstrapplugin/jquery-bootsoedit.js
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
/**
|
||||
双击编辑格
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
|
||||
function bootsoedit(element, options){
|
||||
var obj = element;
|
||||
var can = options;
|
||||
var rand = js.getrand();
|
||||
var me = this;
|
||||
|
||||
this.init = function(){
|
||||
obj[can.trigger](function(event){
|
||||
me.setcontent(this, event);
|
||||
});
|
||||
};
|
||||
|
||||
this.setcontent = function(o1, e){
|
||||
alert(1);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
$.fn.bootsoedit = function(options){
|
||||
var defaultVal = {
|
||||
trigger:'click',
|
||||
fields:'',
|
||||
data:[],//当前数据
|
||||
title:''
|
||||
};
|
||||
|
||||
|
||||
return this.each(function(){
|
||||
var can = $.extend({}, defaultVal, options);
|
||||
var clsa = new bootsoedit($(this), can);
|
||||
clsa.init();
|
||||
return clsa;
|
||||
});
|
||||
};
|
||||
})(jQuery);
|
||||
904
mode/bootstrapplugin/jquery-bootstable.js
vendored
Normal file
904
mode/bootstrapplugin/jquery-bootstable.js
vendored
Normal file
@@ -0,0 +1,904 @@
|
||||
/**
|
||||
* bootstable 表格插件
|
||||
* caratename:雨中磐石(rainrock)
|
||||
* caratetime:2014-04-06 21:40:00
|
||||
* email:admin@rockoa.com
|
||||
* homepage:www.rockoa.com
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
|
||||
function bootstable(element, options){
|
||||
var obj = element;
|
||||
var can = options;
|
||||
var rand = js.getrand();
|
||||
var me = this;
|
||||
this.data = can.data;
|
||||
this.count = 0;
|
||||
this.page = 1;
|
||||
this.changedata = {};
|
||||
this.changeid = 0;
|
||||
this.bool = false;
|
||||
this.where = can.where;
|
||||
this.highorderstr = '';
|
||||
this.otherparams = {};
|
||||
this.loadci = 0;
|
||||
this.options= can;
|
||||
this.init = function(){
|
||||
this.tablename=can.tablename;
|
||||
can.tablename=jm.encrypt(can.tablename);
|
||||
this._init();
|
||||
this._create();
|
||||
if(can.autoLoad){
|
||||
this._loaddata(1);
|
||||
}
|
||||
if(can.fanye)this._fanye();
|
||||
};
|
||||
this.getData= function(fid){
|
||||
var a = this.data;
|
||||
if(fid)a= this.json[fid];
|
||||
if(!isNaN(fid))a= this.data[fid];
|
||||
return a;
|
||||
};
|
||||
this.getCount= function(){
|
||||
return this.count;
|
||||
};
|
||||
this.getJson= function(){
|
||||
return this.json;
|
||||
};
|
||||
this._init = function(){
|
||||
var sas = can.modedir;
|
||||
if(!sas)sas='index:';
|
||||
sas = sas.split(':');
|
||||
if(can.url=='')can.url = js.getajaxurl('publicstore', sas[0], sas[1]);
|
||||
if(can.cellurl=='')can.cellurl = js.getajaxurl('publicsavevalue', sas[0], sas[1]);
|
||||
this.setColumns(can.columns);
|
||||
s='<div style="position:relative;'+can.bodyStyle+'" id="tablebody_'+rand+'"></div><div id="tablefanye_'+rand+'"></div>';
|
||||
obj.html(s);
|
||||
$('#tablebody_'+rand+'').scroll(function(){
|
||||
me._scrollTopla($(this));
|
||||
});
|
||||
if(can.tree)window['stabletree'+rand+'']=function(j,o1){me.stabletree(j,o1)}
|
||||
};
|
||||
this.setColumns=function(cols){
|
||||
can.columns=cols;var a,i;
|
||||
for(i=0; i<can.columns.length; i++){
|
||||
a = can.columns[i];
|
||||
if(typeof(a.align)=='undefined')can.columns[i].align='center';
|
||||
if(a.dataIndex=='caozuo')can.columns[i] = this._caozuochengs(a,i);
|
||||
}
|
||||
};
|
||||
this.getcolumns = function(){
|
||||
return can.columns;
|
||||
};
|
||||
this.setCans = function(cas){
|
||||
for(var i in cas)can[i]=cas[i];
|
||||
};
|
||||
this._create = function(){
|
||||
var a = can.columns;
|
||||
var s = '',i,len=a.length,val,s1,s2='',cols,s3='',s4='',s5='',le,st,ov,j,j1,na,attr,sty='',hs='',dis,dlen=this.data.length;
|
||||
s+='<table id="tablemain_'+rand+'" class="table table-striped table-bordered table-hover" style="margin:0px">';
|
||||
if(!can.hideHeaders){
|
||||
s+='<thead><tr><th width="40"></th>';
|
||||
if(can.checked)s+='<th width="40"><div align="center"><input id="seltablecheck_'+rand+'" type="checkbox"></div></th>';
|
||||
for(i=0;i<len;i++){
|
||||
hs = '';
|
||||
attr = '';
|
||||
cols = a[i].colspan;
|
||||
if(can.sort == a[i].dataIndex)hs='style="color:#3399FF"';
|
||||
if(a[i].width)attr+=' width="'+a[i].width+'"';
|
||||
if(a[i].tooltip)attr+=' title="'+a[i].tooltip+'"';
|
||||
if(cols && cols>1)attr+=' colspan="'+cols+'"';
|
||||
s+='<th nowrap '+attr+'><div '+hs+' align="'+a[i].align+'" lfields="'+a[i].dataIndex+'">';
|
||||
if(can.celleditor&&a[i].editor)s+='<i class="icon-pencil"></i> ';
|
||||
s+=a[i].text;
|
||||
if(a[i].sortable){
|
||||
s+=' ';
|
||||
if(can.sort == a[i].dataIndex){
|
||||
s+='<i tempsort="'+i+'" lx="'+((can.dir=='desc')?'asc':'desc')+'" class="icon-sort-'+((can.dir=='desc')?'down':'up')+' cursor"></i>';
|
||||
}else{
|
||||
s+='<i tempsort="'+i+'" lx="desc" class="icon-sort cursor"></i>';
|
||||
}
|
||||
}
|
||||
s+='</div></th>';
|
||||
if(cols>1)i=i+cols-1;
|
||||
}
|
||||
s+='</tr></thead>';
|
||||
}
|
||||
s+='<tbody id="tbody_'+rand+'">';
|
||||
|
||||
s+='</tbody></table>';
|
||||
$('#tablebody_'+rand+'').html(s);
|
||||
for(j=0;j<dlen;j++){
|
||||
s=this.createrows(j);
|
||||
$('#tbody_'+rand+'').append(s);
|
||||
}
|
||||
s='';
|
||||
|
||||
this.trobj = obj.find('tr[dataid]');
|
||||
this.trobj.click(function(event){
|
||||
me._itemclick(this, event);
|
||||
});
|
||||
this.trobj.dblclick(function(event){
|
||||
me._itemdblclick(this, event);
|
||||
});
|
||||
if(typeof(can.celldblclick)=='function'){
|
||||
obj.find('td[cell]').dblclick(function(event){
|
||||
me._celldblclick(this, event);
|
||||
});
|
||||
}
|
||||
if(can.celleditor){
|
||||
var o = obj.find('td[fields]');
|
||||
o[can.celledittype](function(){
|
||||
me._celleditla(this);
|
||||
});
|
||||
}
|
||||
obj.find("a[temp='caozuomenu_"+rand+"']").click(function(){
|
||||
me._caozuochengss(this);
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
$('#seltablecheck_'+rand+'').click(function(){
|
||||
js.selall(this, 'tablecheck_'+rand+'');
|
||||
});
|
||||
obj.find('i[tempsort]').click(function(){
|
||||
me._clickorder(this);
|
||||
});
|
||||
};
|
||||
this.insert=function(d, funs,inid){
|
||||
d = js.apply({id:'auto'}, d);
|
||||
this.data.push(d);
|
||||
var j = this.data.length-1;
|
||||
var s=this.createrows(j);
|
||||
this.count++;
|
||||
if(!inid){
|
||||
$('#tbody_'+rand+'').append(s);
|
||||
}else{
|
||||
obj.find('tr[dataid="'+inid+'"]').after(s);
|
||||
}
|
||||
if(typeof(funs)=='function'){
|
||||
funs(this,j);
|
||||
}
|
||||
};
|
||||
this.createrows=function(j){
|
||||
var a = can.columns;
|
||||
var s = '',i,len=a.length,val,s1,s2='',s3='',s4='',s5='',le,st,ov,j,j1,na,attr,sty='',hs='',dis,trsty='',xu;
|
||||
ov = this.data[j];
|
||||
s3 = can.rendertr(ov, this, j);
|
||||
s4 = can.rowsbody(ov, this, j);
|
||||
if(s4)s5='rowspan="2"';
|
||||
if(!s3 && ((can.statuschange && ov.status==0) || (ov.ishui==1) || (ov.status==5))){
|
||||
trsty='color:#aaaaaa;';
|
||||
}
|
||||
if(ov.trbgcolor)trsty+='background:'+ov.trbgcolor+';';
|
||||
if(ov.trstyle)trsty+=''+ov.trstyle+';';
|
||||
if(trsty)trsty='style="'+trsty+'"';
|
||||
s='<tr clickbo="false" oi="'+j+'" dataid="'+ov.id+'" '+s3+' '+trsty+'>';
|
||||
xu = ov.trxu;if(!xu)xu=j+1+can.pageSize*(this.page-1);
|
||||
s+='<td '+s5+' align="right" width="40">'+xu+'</td>';
|
||||
if(can.checked){
|
||||
dis = '';
|
||||
if(ov.checkdisabled)dis='disabled';
|
||||
s+='<td align="center" width="40"><input oi="'+j+'" name="tablecheck_'+rand+'" '+dis+' value="'+ov.id+'" type="checkbox"></td>';
|
||||
}
|
||||
for(i=0;i<len;i++){
|
||||
na = a[i].dataIndex;
|
||||
val = ov[na];
|
||||
attr= '';
|
||||
sty = '';
|
||||
if(isempt(val)){
|
||||
val = '';
|
||||
this.data[j][na]=val;
|
||||
}
|
||||
if(a[i].type == 'checkbox'){
|
||||
s1 = '<img height="20" width="20" src="images/checkbox'+val+'.png">';
|
||||
}else{
|
||||
s1 = val;
|
||||
}
|
||||
if(typeof(a[i].renderer)=='function'){
|
||||
s3 = a[i].renderer(val, ov, j);
|
||||
if(!isempt(s3))s1=s3;
|
||||
}
|
||||
s2 = '';
|
||||
if(i == 0 && can.tree){
|
||||
st = ov.stotal;
|
||||
le = ov.level;
|
||||
for(j1=1;j1<le;j1++)s2+='<img src="images/white.gif" class="icons"> ';
|
||||
s2 += '<i onclick="stabletree'+rand+'('+j+',this)" class="icon-'+((st>0)?'folder-close-alt':'file-alt')+'"></i> ';
|
||||
}
|
||||
if(can.celleditor &&a[i].editor)attr+=' fields="'+na+'"';
|
||||
if(a[i].width)attr+=' width="'+a[i].width+'"';
|
||||
if(typeof(a[i].renderstyle)=='function'){
|
||||
s3 = a[i].renderstyle(val, ov, j);
|
||||
if(!isempt(s3))sty+=''+s3+';';
|
||||
}
|
||||
if(typeof(a[i].renderattr)=='function'){
|
||||
s3 = a[i].renderattr(val, ov, j);
|
||||
if(!isempt(s3))attr+=' '+s3+'';
|
||||
}
|
||||
s+='<td align="'+a[i].align+'" '+attr+' style="'+sty+'" row="'+j+'" cell="'+i+'">'+s2+''+s1+'</td>';
|
||||
}
|
||||
s+='</tr>';
|
||||
if(s4)s+='<tr><td colspan="'+(len+1)+'">'+s4+'</td></tr>';
|
||||
return s;
|
||||
};
|
||||
this._tredat={};
|
||||
this.stabletree=function(j,o1){
|
||||
if(!can.loadtree)return;
|
||||
var ov = this.data[j];
|
||||
if(!ov.stotal || ov.stotal<1 || this._tredat[j])return;
|
||||
var das = this._loaddata(1, true);
|
||||
das.pvalue = ov.id;
|
||||
das.level = ov.level+1;
|
||||
this.bool = true;
|
||||
this._tredat[j]=true;
|
||||
o1.className='icon-spinner';
|
||||
$.ajax({
|
||||
url:can.url,type:can.method,data:das,dataType:'json',
|
||||
success:function(ret){
|
||||
o1.className='icon-folder-open-alt';
|
||||
me.showtreeda(ret.rows,das.pvalue);
|
||||
me.bool = false;
|
||||
},
|
||||
error: function(e){
|
||||
o1.className='icon-folder-close-alt';
|
||||
js.msg('msg',e.responseText);
|
||||
me.bool = false;
|
||||
}
|
||||
});
|
||||
};
|
||||
this.showtreeda=function(da,pj){
|
||||
if(!da)return;var len = da.length,o1,i;if(len==0)return;
|
||||
for(i=len-1;i>=0;i--){
|
||||
this.insert(da[i],false,pj);
|
||||
if(can.celleditor){
|
||||
o1 = obj.find('tr[dataid="'+da[i].id+'"]').find('td[fields]');
|
||||
o1[can.celledittype](function(){
|
||||
me._celleditla(this);
|
||||
});
|
||||
}
|
||||
}
|
||||
this.trobj = obj.find('tr[dataid]');
|
||||
this.trobj.unbind();
|
||||
this.trobj.click(function(event){
|
||||
me._itemclick(this, event);
|
||||
});
|
||||
this.trobj.dblclick(function(event){
|
||||
me._itemdblclick(this, event);
|
||||
});
|
||||
obj.find("a[temp='caozuomenu_"+rand+"']").unbind().click(function(){
|
||||
me._caozuochengss(this);
|
||||
return false;
|
||||
});
|
||||
};
|
||||
this._celldblclick = function(o1,e){
|
||||
var o = $(o1);
|
||||
var cell = parseFloat(o.attr('cell')), row = parseFloat(o.attr('row'));
|
||||
var farr = can.columns[cell],
|
||||
d = this.data[row];
|
||||
can.celldblclick(farr, d, o1, cell, row, e);
|
||||
};
|
||||
this._scrollTopla= function(o){
|
||||
if(can.hideHeaders)return;
|
||||
var top = o.scrollTop();
|
||||
if(top<40){
|
||||
var o1 = $('#headerla_'+rand+'');
|
||||
o1.hide();
|
||||
o1.html('');
|
||||
}else{
|
||||
var off = obj.offset();
|
||||
var a = can.columns,s='',i,len=a.length,w1,o2;
|
||||
if(!get('headerla_'+rand+'')){
|
||||
s = '<div style="position:fixed;left:'+(off.left)+'px;top:'+(off.top)+'px;width:100%;height:34px;overflow:hidden; background:rgba(255,255,255,0.5);border-bottom:1px #dddddd solid;z-index:2" id="headerla_'+rand+'"></div>';
|
||||
obj.append(s);
|
||||
}
|
||||
var o1 = $('#headerla_'+rand+'');
|
||||
o1.show();
|
||||
o1.css({left:''+(off.left)+'px',top:''+(off.top)+'px',width:''+($('#tablemain_'+rand+'').width())+'px'});
|
||||
if(o1.html()==''){
|
||||
s = '';
|
||||
s+='<table class="table table-striped table-bordered" style="margin:0px" width="100%">';
|
||||
s+='<tr style="background:white"><th width="40"></th>';
|
||||
if(can.checked)s+='<th width="40"></th>';
|
||||
for(i=0;i<len;i++){
|
||||
o2 = obj.find("div[lfields='"+a[i].dataIndex+"']");
|
||||
w1 = o2[0].clientWidth-1;
|
||||
w1 = 'width:'+w1+'px';
|
||||
s+='<th><div style="'+w1+'" align="'+a[i].align+'">'+o2.html()+'</div></th>';
|
||||
}
|
||||
s+='</tr>';
|
||||
s+='</table>';
|
||||
o1.html(s);
|
||||
}
|
||||
}
|
||||
};
|
||||
this._celleditla = function(o1){
|
||||
if(this.bool)return;
|
||||
var o = $(o1),
|
||||
fields = o.attr('fields'),
|
||||
row = parseFloat(o.attr('row')),
|
||||
cell = parseFloat(o.attr('cell'));
|
||||
var a = this.data[row],i,len,sel,d,
|
||||
b = can.columns[cell],
|
||||
l = o.offset(),
|
||||
w = o1.clientWidth,
|
||||
h = o1.clientHeight,
|
||||
at = '',
|
||||
v = a[fields];
|
||||
$('#edittable_'+rand+'').remove();
|
||||
if(b.editorbefore && !b.editorbefore(a))return;
|
||||
if(!b.textmsg)b.textmsg='';
|
||||
var s = '<div id="edittable_'+rand+'" style="position:absolute;z-index:2;left:'+(l.left)+'px;top:'+(l.top+h)+'px">';
|
||||
s+='<div style="border:1px #cccccc solid;background:white;padding:10px;box-shadow:0px 0px 10px rgba(0,0,0,0.3); border-radius:10px">';
|
||||
s+=' <div> <b>'+b.text+'</b>: <span id="msgteita_'+rand+'">'+b.textmsg+'</span></div>';
|
||||
s+=' <div class="blank10"></div>';
|
||||
var wss = 200;
|
||||
if(b.editorwidth)wss=b.editorwidth;
|
||||
var flx = b.type,attr=b.editorattr;
|
||||
if(!flx)flx='text';
|
||||
if(!attr)attr='';
|
||||
if(b.repEmpty)attr+=' onblur="this.value=strreplace(this.value)" ';
|
||||
if(flx=='checkbox'){
|
||||
if(v=='1')at='checked';
|
||||
s+='<div><label><input type="checkbox" id="inputedit_'+rand+'" '+at+' value="1"> '+b.text+'</label></div>';
|
||||
}else if(flx=='textarea'){
|
||||
s+='<div><textarea type="text" style="width:'+wss+'px;height:100px" '+attr+' id="inputedit_'+rand+'" class="input">'+v+'</textarea></div>';
|
||||
}else if(flx=='select' && b.store){
|
||||
d=b.store;
|
||||
s+='<div><select style="width:'+wss+'px" id="inputedit_'+rand+'" '+attr+' class="input">';
|
||||
len=b.store.length;for(i=0;i<len;i++){
|
||||
sel='';if(d[i][0]==v||d[i][1]==v)sel='selected';
|
||||
s+='<option value="'+d[i][0]+'" '+sel+'>'+d[i][1]+'</option>';
|
||||
}
|
||||
s+='</select></div>';
|
||||
}else if(flx=='date'){
|
||||
s+='<div><input type="text" style="width:'+wss+'px" id="inputedit_'+rand+'" '+attr+' class="input datesss" onclick="js.datechange(this)" readonly value="'+v+'"></div>';
|
||||
}else{
|
||||
s+='<div><input type="'+flx+'" style="width:'+wss+'px" id="inputedit_'+rand+'" '+attr+' class="input" value="'+v+'"></div>';
|
||||
}
|
||||
s+=' <div class="blank10"></div>';
|
||||
if(!can.cellautosave)s+=' <div><a id="inputeditsave_'+rand+'" href="javascript:"><i class="icon-ok"></i> 确定</a > <a href="javascript:" class="hui" onclick="$(\'#edittable_'+rand+'\').remove()"><i class="icon-remove"></i> 取消</a></div>';
|
||||
s+='</div>';
|
||||
s+='<div align="center"><div class="arrow-down"></div></div>';
|
||||
s+='</div>';
|
||||
$('body').append(s);
|
||||
var o2 = get('edittable_'+rand+'');
|
||||
var jg = (w-o2.clientWidth)*0.5;
|
||||
$(o2).css({left:''+(l.left+jg)+'px',top:''+(l.top-o2.clientHeight)+'px'});
|
||||
var o3 = get('inputedit_'+rand+'');
|
||||
o3.focus();
|
||||
$(o3).keyup(function(e){
|
||||
if(e.keyCode==13)this.blur();
|
||||
});
|
||||
var arr = {oldvalue:v,fields:fields,type:b.type,id:a.id,obj:o,row:row}
|
||||
if(can.cellautosave){
|
||||
$(o3).blur(function(){
|
||||
me._editforcuschen(this, arr, b);
|
||||
});
|
||||
}else{
|
||||
$('#inputeditsave_'+rand+'').click(function(){
|
||||
me._editforcuschen(this, arr, b);
|
||||
});
|
||||
}
|
||||
};
|
||||
this.signature= function(da, url){
|
||||
var time = parseInt(js.now('time')*0.001);
|
||||
var siaa = ''+NOWURL+''+url+''+da.tablename+''+time+'_'+adminid+'';
|
||||
var sign = md5(siaa);
|
||||
da.sys_signature= sign;
|
||||
da.sys_timeature= time;
|
||||
return da;
|
||||
};
|
||||
this._editforcuschen = function(o1, a, farr){
|
||||
var o1= get('inputedit_'+rand+'');
|
||||
var v = o1.value,ov = a.oldvalue;
|
||||
if(a.type=='checkbox')if(!o1.checked)v='0';
|
||||
var selv= v+'';
|
||||
if(a.type=='select')selv=o1.options[o1.selectedIndex].text;
|
||||
if(v==ov || selv==ov){
|
||||
$('#edittable_'+rand+'').remove();
|
||||
return;
|
||||
}
|
||||
var vid = 'msgteita_'+rand+'';
|
||||
js.setmsg('处理中...','#ff6600',vid);
|
||||
o1.disabled = true;
|
||||
this.bool = true;
|
||||
var data = {tablename:can.tablename,id:a.id,fieldname:a.fields,value:v,fieldsafteraction:can.fieldsafteraction};
|
||||
$.ajax({
|
||||
data:this.signature(data, can.cellurl),type:'post',url:can.cellurl,
|
||||
success:function(bstr){
|
||||
me.bool = false;
|
||||
$('#edittable_'+rand+'').remove();
|
||||
if(bstr!='success'){
|
||||
js.msg('msg', bstr);
|
||||
return;
|
||||
}
|
||||
js.setmsg('处理完成','green',vid);
|
||||
var ohtml = a.obj.html();
|
||||
ohtml = ohtml.replace(ov, v);
|
||||
if(a.type=='checkbox')ohtml='<img height="20" width="20" src="images/checkbox'+v+'.png">';
|
||||
if(a.type=='select')ohtml=selv;
|
||||
a.obj.html(ohtml);
|
||||
me.data[a.row][a.fields] = v;
|
||||
if(farr.editorafter)farr.editorafter();//保存后处理
|
||||
},
|
||||
error:function(e){
|
||||
js.msg('msg',e.responseText);
|
||||
me.bool = false;
|
||||
}
|
||||
});
|
||||
};
|
||||
this._itemclick= function(o1, e){
|
||||
var o = $(o1);
|
||||
if(can.selectColor){
|
||||
this.trobj.css('background','');
|
||||
o.css('background', can.selectColor);
|
||||
}else{
|
||||
this.trobj.removeClass(can.selectcls);
|
||||
o.addClass(can.selectcls);
|
||||
}
|
||||
var oi = parseFloat(o.attr('oi'));
|
||||
var a = this.data[oi];
|
||||
this.changedata = a;
|
||||
this.changeid = a.id;
|
||||
can.itemclick(a, oi, e);
|
||||
};
|
||||
this._itemdblclick= function(o1, e){
|
||||
var o = $(o1),oi,lxs,o1,cell,farr,o2;
|
||||
oi = parseFloat(o.attr('oi'));
|
||||
o2 = e.target;
|
||||
lxs = o2.nodeName.toLowerCase();
|
||||
if(lxs!='td'){
|
||||
o2 = e.target.parentNode;
|
||||
lxs = o2.nodeName.toLowerCase();
|
||||
}
|
||||
if(lxs=='td'){
|
||||
o1 = $(o2);
|
||||
cell= parseFloat(o1.attr('cell'));
|
||||
farr= can.columns[cell];
|
||||
if(farr.editor)return;//单元格是编辑就退出
|
||||
}
|
||||
can.itemdblclick(this.changedata, oi, e);
|
||||
};
|
||||
this._loaddata = function(p, donbo){
|
||||
if(this.bool)return;
|
||||
this.changeid= 0;
|
||||
this.loadci++;
|
||||
this.changedata = {};
|
||||
var url = can.url;
|
||||
var das = {tablename_abc:can.tablename,defaultorder:can.defaultorder,keywhere:can.keywhere,where:this.where,sort:can.sort,dir:can.dir,loadci:this.loadci,storebeforeaction:can.storebeforeaction,storeafteraction:can.storeafteraction,modenum:can.modenum},
|
||||
s='',of=obj.offset();
|
||||
das.keywhere=jm.encrypt(das.keywhere.replace(/\'/g, '[F]'));
|
||||
das.where = jm.encrypt(das.where.replace(/\'/g, '[F]'));
|
||||
das.start = can.pageSize*(p-1);
|
||||
das.page = p;
|
||||
das.limit = can.pageSize;
|
||||
if(!can.fanye)das.limit = can.limit;
|
||||
das = js.apply(das, can.params);
|
||||
das = js.apply(das, this.otherparams);
|
||||
if(donbo)return das;
|
||||
this.page = p;
|
||||
var o1 = $('#tablebody_'+rand+'');
|
||||
var h= o1.height()-2,w= o1.width()-2;
|
||||
s='<div id="modeshow_'+rand+'" style="filter:Alpha(opacity=20);opacity:0.2;height:'+h+'px;width:'+w+'px;overflow:hidden;z-index:3;position:absolute;left:1px;line-height:'+h+'px;top:1px;background:#000000;color:white" align="center"><img src="images/mloading.gif" align="absmiddle"> 加载中...</div>';
|
||||
o1.append(s);
|
||||
can.beforeload();
|
||||
this.bool = true;
|
||||
$.ajax({
|
||||
url:url,type:can.method,data:das,
|
||||
success:function(da){
|
||||
if(!get('tablebody_'+rand+''))return;
|
||||
var a = js.decode(da);
|
||||
if(!a.rows){
|
||||
if(a.msg)da=a.msg;
|
||||
js.msg('msg',da);
|
||||
}else{
|
||||
me._loaddataback(a);
|
||||
}
|
||||
$('#modeshow_'+rand+'').remove();
|
||||
me.bool = false;
|
||||
},
|
||||
error: function(e){
|
||||
$('#modeshow_'+rand+'').remove();
|
||||
js.msg('msg',e.responseText);
|
||||
me.bool = false;
|
||||
}
|
||||
});
|
||||
};
|
||||
this.exceldown = function(bt, lxs,ocsn){
|
||||
if(this.bool)return;
|
||||
var excelfields='',excelheader='',i,a=can.columns;
|
||||
var np = (lxs==2) ? this.page : 1;
|
||||
var das = this._loaddata(np, true);
|
||||
das.limit = 10000;
|
||||
das.execldown = 'true';
|
||||
if(!bt)bt=nowtabs.name;
|
||||
das.exceltitle = bt;
|
||||
for(i=0;i<a.length;i++){
|
||||
if(!a[i].notexcel){
|
||||
excelfields+=','+a[i].dataIndex+'';
|
||||
excelheader+=','+a[i].text+'';
|
||||
}
|
||||
}
|
||||
das.excelfields = excelfields.substr(1);
|
||||
das.excelheader = excelheader.substr(1);
|
||||
if(lxs==1)return das;
|
||||
if(lxs==2){
|
||||
das.limit = can.pageSize;
|
||||
}
|
||||
if(ocsn)for(i in ocsn)das[i]=ocsn[i];
|
||||
|
||||
das.exceltitle = jm.encrypt(das.exceltitle);
|
||||
das.excelfields = jm.encrypt(das.excelfields);
|
||||
das.excelheader = jm.encrypt(das.excelheader);
|
||||
this.bool = true;
|
||||
js.msg('wait', '导出处理中...');
|
||||
$.ajax({
|
||||
url:can.url,type:'POST',data:das,dataType:'json',
|
||||
success:function(a1){
|
||||
var lex = (nwjsgui)?'_self':'_blank';
|
||||
if(!a1.downCount)a1.downCount = a1.totalCount;
|
||||
js.msg('success', '处理成功,共有记录'+a1.totalCount+'条/导出'+a1.downCount+'条,点我直接<a class="a" href="'+a1.url+'" target="'+lex+'">[下载]</a>', 60);
|
||||
me.bool=false;
|
||||
},
|
||||
error:function(e){
|
||||
js.msg('msg','err:'+e.responseText);
|
||||
me.bool = false;
|
||||
}
|
||||
});
|
||||
};
|
||||
this.exceldownnow = function(bt){
|
||||
this.exceldown(bt,2);
|
||||
};
|
||||
this.setparams = function(cans, relo){
|
||||
if(!cans)cans={};
|
||||
this.otherparams = js.apply(this.otherparams,cans);
|
||||
this.page = 1;
|
||||
if(relo)this.reload();
|
||||
};
|
||||
this._loaddataback=function(a){
|
||||
this._tredat={};
|
||||
this.json = a;
|
||||
this.data = a.rows;
|
||||
this.count = a.totalCount;
|
||||
can.loadbefore(a, this);
|
||||
this._create();
|
||||
this._initfany();
|
||||
can.load(a, this, this.loadci);
|
||||
};
|
||||
this.loadData = function(d){
|
||||
this._loaddataback(d);
|
||||
};
|
||||
this._clickorder = function(o1){
|
||||
if(this.loadci==0)return;
|
||||
var o,oi,a,dir,sort;
|
||||
o = $(o1);
|
||||
oi = parseFloat(o.attr('tempsort'));
|
||||
a = can.columns[oi];
|
||||
sort = a.dataIndex;
|
||||
dir = o.attr('lx');
|
||||
this.order(sort, dir);
|
||||
};
|
||||
this.remove = function(ids){
|
||||
var sid = ids.split(','),id,i;
|
||||
for(i=0;i<sid.length;i++){
|
||||
id = sid[i];
|
||||
obj.find("tr[dataid='"+id+"']").remove();
|
||||
if(id == this.changeid){
|
||||
this.changeid= 0;
|
||||
this.changedata = {};
|
||||
}
|
||||
}
|
||||
};
|
||||
this.hiderows=function(ids){
|
||||
var sid = ids.split(','),id,i;
|
||||
for(i=0;i<sid.length;i++){
|
||||
id = sid[i];
|
||||
obj.find("tr[dataid='"+id+"']").hide();
|
||||
if(id == this.changeid){
|
||||
this.changeid= 0;
|
||||
this.changedata = {};
|
||||
}
|
||||
}
|
||||
};
|
||||
this.showrows=function(id){
|
||||
var sid = ids.split(','),id,i;
|
||||
for(i=0;i<sid.length;i++){
|
||||
id = sid[i];
|
||||
obj.find("tr[dataid='"+id+"']").show();
|
||||
}
|
||||
};
|
||||
this.showallrows=function(){
|
||||
obj.find("tr[dataid']").show();
|
||||
}
|
||||
this.order = function(a, b){
|
||||
if(!a)return;
|
||||
if(!b)b='asc';
|
||||
can.sort = a;
|
||||
can.dir = b;
|
||||
this.reload();
|
||||
};
|
||||
this.highorder = function(str){
|
||||
if(!str)str='';
|
||||
this.highorderstr = str;
|
||||
this.reload();
|
||||
};
|
||||
this.search = function(w, jg, slx){
|
||||
if(!w)w='';
|
||||
if(jg)w = this.where+' '+w;
|
||||
var s = can.outsearch(this);
|
||||
if(s)w+=' '+s+'';
|
||||
this.where = w;
|
||||
this._loaddata(1);
|
||||
return w;
|
||||
};
|
||||
this.reload = function(){
|
||||
this._loaddata(this.page);
|
||||
};
|
||||
this.del = function(csa){
|
||||
if(this.bool)return;
|
||||
var a = js.apply({msg:'确定要删除选中的{s}条记录吗?',success:function(){},checked:false,check:function(){}},csa);
|
||||
var s = ''+this.changeid+'',xz;
|
||||
if(a.checked)s=this.getchecked();
|
||||
if(s=='0'||s==''){
|
||||
js.msg('msg','没有选中记录');
|
||||
return;
|
||||
}
|
||||
xz = s.split(',').length;
|
||||
a.msg = a.msg.replace('{s}', ''+xz+'');
|
||||
js.confirm(a.msg,function(lx){
|
||||
a.check(lx);
|
||||
if(lx=='yes'){
|
||||
me._delok(s, a);
|
||||
}
|
||||
});
|
||||
};
|
||||
this.getchecked = function(){
|
||||
return js.getchecked('tablecheck_'+rand+'');
|
||||
};
|
||||
this.getcheckobj = function(){
|
||||
return $("input[name='tablecheck_"+rand+"']");
|
||||
};
|
||||
this.getcheckdata= function(){
|
||||
var o = this.getcheckobj(),len=o.length,i,o1,d=[];
|
||||
for(i=0;i<len;i++){
|
||||
o1=o[i];
|
||||
if(o1.checked){
|
||||
oi=parseFloat($(o1).attr('oi'));
|
||||
d.push(this.data[oi]);
|
||||
}
|
||||
}
|
||||
return d;
|
||||
};
|
||||
this._delok = function(sid, ds){
|
||||
js.msg('wait','删除'+sid+'中...');
|
||||
this.bool=true;
|
||||
var url = ds.url;if(!url)url=js.getajaxurl('publicdel','index');
|
||||
var ss = js.apply({modenum:can.modenum,table:can.tablename,id:sid},ds.params);
|
||||
$.ajax({
|
||||
url:url,type:'POST',data:ss,dataType:'json',
|
||||
success:function(a1){
|
||||
me.bool=false;
|
||||
if(a1.code==200){
|
||||
js.msg('success','删除成功');
|
||||
ds.success();
|
||||
me.reload();
|
||||
}else{
|
||||
js.msg('msg',a1.msg);
|
||||
}
|
||||
},
|
||||
error:function(e){
|
||||
js.msg('msg','err:'+e.responseText);
|
||||
me.bool = false;
|
||||
}
|
||||
});
|
||||
};
|
||||
this.settishi=function(nr){
|
||||
$('#bottomtishi_'+rand+'').html(nr);
|
||||
};
|
||||
this._fanye = function(){
|
||||
var s = '';
|
||||
s='<div style="margin-top:10px" class="btn-toolbar" role="toolbar">'+
|
||||
'<div class="btn-group">'+
|
||||
'<button id="shouye_'+rand+'" type="button" data-toggle="tooltip" data-placement="top" title="首页" class="btn btn-default">«</button>'+
|
||||
'<button id="shang_'+rand+'" data-toggle="tooltip" data-placement="top" title="上一页" type="button" disabled class="btn btn-default"><</button>'+
|
||||
'<button id="nowye_'+rand+'" type="button" disabled class="btn btn-default"> 第<span id="pages_'+rand+'">1</span>页/共<span id="maxpage_'+rand+'">0</span>页 <span class="caret"></span></button>'+
|
||||
'<button id="next_'+rand+'" type="button" data-toggle="tooltip" data-placement="top" title="下一页" disabled class="btn btn-default">></button>'+
|
||||
'<button id="lastye_'+rand+'" type="button" data-toggle="tooltip" data-placement="top" title="尾页" disabled class="btn btn-default">»</button>'+
|
||||
'</div> '+
|
||||
'<div class="btn-group">'+
|
||||
' <button id="refresh_'+rand+'" type="button" data-toggle="tooltip" data-placement="top" title="刷新" class="btn btn-default"><i class="icon-refresh"></i></button>'+
|
||||
'</div> '+
|
||||
'<div class="btn-group" id="bottomtishi_'+rand+'"></div>'+
|
||||
'<div class="btn-group" style="float:right; padding-top:3px">'+
|
||||
'<span>共记录<span id="zjilu_'+rand+'">0</span>条</span> '+
|
||||
'每页<input maxlength="3" onblur="js.number(this)" onfocus="js.focusval=this.value" id="pagesize_'+rand+'" type="number" value="'+can.pageSize+'" style="width:40px;text-align:center;height:24px;border:1px #dddddd solid;margin:0px 2px;font-size:12px">条 '+
|
||||
'</div>'+
|
||||
'</div>';
|
||||
|
||||
$('#tablefanye_'+rand+'').html(s);
|
||||
$('#shouye_'+rand+'').click(function(){me.firstPage();});
|
||||
$('#shang_'+rand+'').click(function(){me.backPage();});
|
||||
$('#next_'+rand+'').click(function(){me.nextPage();});
|
||||
$('#lastye_'+rand+'').click(function(){me.lastPage();});
|
||||
$('#refresh_'+rand+'').click(function(){me.reload();});
|
||||
$('#nowye_'+rand+'').rockmenu({
|
||||
top:33,width:150,
|
||||
data:[{name:'第1页',p:1}],
|
||||
beforeshow:function(o){
|
||||
o.setData(me._getpaged());
|
||||
o.setValue('第'+me.page+'页');
|
||||
},
|
||||
itemsclick:function(a){
|
||||
me.gotoPage(a.p);
|
||||
}
|
||||
});
|
||||
var o1 = $('#pagesize_'+rand+'');
|
||||
o1.blur(function(){me.setpageSize(this.value);});
|
||||
o1.keyup(function(e){if(e.keyCode==13)this.blur()});
|
||||
};
|
||||
this._getpaged = function(){
|
||||
var a = [],i=1,j=1,b,bg;
|
||||
i = this.page-5;
|
||||
j = this.page+5;
|
||||
if(i<1)i=1;
|
||||
if(j>this.maxPage)j=this.maxPage;
|
||||
for(b=i;b<=j;b++){
|
||||
a.push({name:'第'+b+'页',p:b});
|
||||
}
|
||||
return a;
|
||||
};
|
||||
this._initfany = function(){
|
||||
if(!can.fanye)return;
|
||||
$('#zjilu_'+rand+'').html(''+this.count+'');
|
||||
$('#pages_'+rand+'').html(''+this.page+'');
|
||||
this.maxPage = Math.ceil(this.count/can.pageSize);
|
||||
$('#maxpage_'+rand+'').html(''+this.maxPage+'');
|
||||
|
||||
var bo1=false,bo2=false;
|
||||
if(this.maxPage <=1 || this.page<=1){
|
||||
bo1 = true;
|
||||
}
|
||||
get('shouye_'+rand+'').disabled=bo1;
|
||||
get('shang_'+rand+'').disabled=bo1;
|
||||
|
||||
if(this.maxPage <=1){
|
||||
get('nowye_'+rand+'').disabled=true;
|
||||
}else{
|
||||
get('nowye_'+rand+'').disabled=false;
|
||||
}
|
||||
|
||||
if(this.maxPage <=1 || this.page>=this.maxPage){
|
||||
bo2 = true;
|
||||
}
|
||||
get('next_'+rand+'').disabled=bo2;
|
||||
get('lastye_'+rand+'').disabled=bo2;
|
||||
};
|
||||
this._next = function(oi){
|
||||
var p = this.page+oi;
|
||||
if(p<=0)p=1;
|
||||
if(p>=this.maxPage)p=this.maxPage;
|
||||
this._loaddata(p);
|
||||
};
|
||||
this.firstPage = function(){
|
||||
this._loaddata(1);
|
||||
};
|
||||
this.backPage = function(){
|
||||
this._next(-1);
|
||||
};
|
||||
this.nextPage = function(){
|
||||
this._next(1);
|
||||
};
|
||||
this.gotoPage = function(p){
|
||||
this._loaddata(p);
|
||||
};
|
||||
this.lastPage = function(){
|
||||
this._loaddata(this.maxPage);
|
||||
};
|
||||
this.setpageSize = function(p){
|
||||
p = parseFloat(p);
|
||||
if(p<=0)p=can.pageSize;
|
||||
$('#pagesize_'+rand+'').val(''+p+'');
|
||||
if(can.pageSize == p)return;
|
||||
can.pageSize = p;
|
||||
this.page = 1;
|
||||
this.reload();
|
||||
};
|
||||
|
||||
this._caozuochengs=function(a,oj){
|
||||
a.renderer=function(v,d,oi){
|
||||
var s='<a oi="'+oi+'" oj="'+oj+'" style="TEXT-DECORATION:none" temp="caozuomenu_'+rand+'">操作<i class="icon-angle-down"></i></a>';
|
||||
if(!d.id)s=' ';
|
||||
return s;
|
||||
};
|
||||
a.notexcel=true;
|
||||
return a;
|
||||
};
|
||||
this._caozuochengss=function(o1){
|
||||
var oi,d,num,mid,modename,o2;
|
||||
o2= $(o1);
|
||||
oi= parseFloat(o2.attr('oi'));
|
||||
oj= parseFloat(o2.attr('oj'));
|
||||
d = this.getData(oi);
|
||||
num=can.modenum;if(num=='')num=this.tablename;
|
||||
mid = d.id;if(d.modenum)num=d.modenum;
|
||||
modename=can.modename;if(d.modename)modename=d.modename;
|
||||
new optmenuclass(o1,num,mid,this,modename,oi,can.columns[oj]);
|
||||
};
|
||||
|
||||
|
||||
this.geturlparams=function(bt,ocans){
|
||||
var cshu = this.exceldown(bt, 1),i;
|
||||
cshu.tablename_abc = jm.uncrypt(cshu.tablename_abc);
|
||||
cshu = js.apply(cshu,ocans);
|
||||
return [can.url, cshu];
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
表格中常用方法
|
||||
1、reload(); //刷新数据源
|
||||
2、getchecked();//获取复选框对应记录ID聚
|
||||
3、getcheckdata();//获取复选框选中的数据数组[]
|
||||
4、insert({name:''});//表格中插入一行
|
||||
5、setparams({key:''},true);//设置参数并搜索
|
||||
6、geturlparams();获取当前Url地址参数,订阅时用到的
|
||||
*/
|
||||
if(typeof(bootsSelectColor)!='string')bootsSelectColor= '';
|
||||
$.fn.bootstable = function(options){
|
||||
var defaultVal = {
|
||||
columns:[], //表头
|
||||
selectColor:bootsSelectColor, //选中时行颜色
|
||||
pageSize:15, //默认分页数
|
||||
limit:0, //没有分页时展示条数
|
||||
bodyStyle:'',
|
||||
height:0, //高度
|
||||
url:'', //请求地址
|
||||
celleditor:false, //是否可编辑单元格
|
||||
cellautosave:true, //编辑单元格是否自动保存
|
||||
celledittype:'dblclick', //编辑单元格用双击
|
||||
cellurl:'', //编辑单元格保存地址
|
||||
fieldsafteraction:'', //编辑单元格时保存后触发
|
||||
data:[], //初始数据
|
||||
autoLoad:true, //是否初始化后就加载
|
||||
tree:false, //是否树形显示
|
||||
itemdblclick:function(){}, //双击行调用
|
||||
searchwidth:500, //没用
|
||||
defaultorder:'', //默认排序
|
||||
where:'', //条件
|
||||
hideHeaders:false, //是否隐藏头部表头
|
||||
modename:'', //对应模块名称
|
||||
modenum:'', //对应模块编号
|
||||
statuschange:true, //当行的status=0时自动变成灰色
|
||||
checked:false, //是否多选
|
||||
fanye:false, //是否可翻页
|
||||
sort:'', //排序字段
|
||||
dir:'', //排序类型desc和asc
|
||||
storeafteraction:'', //数据源请求后先处理函数
|
||||
storebeforeaction:'',//数据源请求时先处理函数,可返回条件字段等
|
||||
loadtree:false,
|
||||
modedir:'', //当前文件路径,一般都是写:'{mode}:{dir}'
|
||||
keywhere:'', //条件
|
||||
params:{}, //其他参数
|
||||
tablename:'', //请求数据表格名,如有指定modenum,会加载对应模块上设置的表
|
||||
selectcls:'success', //选中样式
|
||||
itemclick:function(da, index, e){}, //单击行触发
|
||||
beforeload:function(){}, //数据加载前触发
|
||||
load:function(){}, //数据加载完成后触发
|
||||
loadbefore:function(){}, //数据加载完成后但还没有渲染出来时触发
|
||||
outsearch:function(){return ''}, //外搜索条件
|
||||
searchview:'', //没用
|
||||
method:'POST', //post请求
|
||||
rendertr:function(){return ''}, //少用
|
||||
rowsbody:function(){return ''}, //少用
|
||||
celldblclick:false //没用
|
||||
};
|
||||
if(typeof(bootstableobj)=='undefined')bootstableobj={};
|
||||
var can = $.extend({}, defaultVal, options);
|
||||
var clsa = new bootstable($(this), can);
|
||||
clsa.init();
|
||||
if(can.modenum!='')bootstableobj[can.modenum]=clsa;
|
||||
return clsa;
|
||||
};
|
||||
})(jQuery);
|
||||
341
mode/bootstrapplugin/jquery-bootstigger.js
vendored
Normal file
341
mode/bootstrapplugin/jquery-bootstigger.js
vendored
Normal file
@@ -0,0 +1,341 @@
|
||||
/**
|
||||
bootsform
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
|
||||
function bootstigger(element, options){
|
||||
var obj = element;
|
||||
var can = options;
|
||||
var rand = can.rand;
|
||||
var me = this;
|
||||
|
||||
|
||||
//初始化
|
||||
this.init = function(){
|
||||
this.mainidss = 'main_'+rand+'';
|
||||
if(can.namedisplay=='')can.namedisplay=''+can.name+'_text';
|
||||
var s = '<div class="input-group">';
|
||||
s += ' <input readonly class="form-control form-select" name="'+can.namedisplay+'" placeholder="'+can.placeholder+'" id="display_'+rand+'">';
|
||||
s += ' <input type="hidden" id="value_'+rand+'" name="'+can.name+'" >';
|
||||
s += ' <span class="input-group-btn">';
|
||||
if(can.clearbool){
|
||||
s += ' <button class="btn btn-default" id="downclear_'+rand+'" type="button"><i class="icon-remove"></i></button>';
|
||||
}
|
||||
s += ' <button class="btn btn-default" id="down_'+rand+'" type="button"><i class="icon-caret-down"></i></button>';
|
||||
s += ' </span>';
|
||||
s += '</div>';
|
||||
|
||||
var s1 = '<div id="div_'+rand+'" style="position:relative;">'+s+'</div>';
|
||||
obj.html(s1);
|
||||
|
||||
$('#down_'+rand+'').click(function(){
|
||||
me._down(this);
|
||||
});
|
||||
if(can.clearbool){
|
||||
$('#downclear_'+rand+'').click(function(){
|
||||
me._downclear(this);
|
||||
});
|
||||
}
|
||||
this.setDefault(can.value, can.data);
|
||||
this._loadbool = false;
|
||||
this._fistload(0);//自动加载
|
||||
};
|
||||
|
||||
this._down = function(o1){
|
||||
var o = $(o1);//
|
||||
if(!get(this.mainidss)){
|
||||
var s = '<div >';
|
||||
s += '<table width="100%"><tr>';
|
||||
s += ' <td><input id="keysou_'+rand+'" style="height:32px;line-height:20px;background:white;border:1px #cccccc solid;margin:5px;padding:3px;width:100%" ></td>';
|
||||
s += ' <td><button id="keysoubtn_'+rand+'" style="height:32px;background:white;border:1px #cccccc solid;padding:0px 10px" type="button"><i class="icon-search"></i></button></td>';
|
||||
s += ' </tr></table>';
|
||||
s += '</div>';
|
||||
var w = can.width;
|
||||
if(w==0)w = obj.width()-2;
|
||||
var s1 = '<div id="'+this.mainidss+'" style="position:absolute;z-index:120;background:white;left:1px;top:33px;padding:0px;width:'+w+'px;border:1px #dddddd solid;box-shadow:0 0 5px rgba(0, 0, 0, 0.3);display:none">';
|
||||
s1+=s;
|
||||
s1+='<div id="list_'+rand+'" class="select-list" style="overflow-y:auto"></div>';
|
||||
s1+='</div>';
|
||||
$('#div_'+rand+'').append(s1);
|
||||
this._showdata(can.data);
|
||||
js.addbody(rand, 'hide', this.mainidss);
|
||||
if(!this._loadbool)this._fistload(1);
|
||||
$('#keysou_'+rand+'').keyup(function(e){
|
||||
me._soukeysss(this, e);
|
||||
return false;
|
||||
});
|
||||
$('#keysoubtn_'+rand+'').click(function(){
|
||||
me._soukeybtn(this);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
$('#'+this.mainidss+'').toggle();
|
||||
if(get(this.mainidss).style.display!='none'){
|
||||
get('keysou_'+rand+'').focus();
|
||||
this._setselcol();
|
||||
this._showeizhi();
|
||||
}
|
||||
};
|
||||
|
||||
this._showdata = function(a){
|
||||
var s = '',i,val1,s1,len = a.length;
|
||||
this.nowdata = a;
|
||||
for(i=0; i<len && i<can.maxlist; i++){
|
||||
val1 = a[i][can.valuefields];
|
||||
s+= '<div oi="'+i+'" val="'+val1+'" class="div01">';
|
||||
if(can.checked){
|
||||
s+='<input type="checkbox" val="'+val1+'" name="checkbox_'+rand+'" value="'+i+'"> ';
|
||||
}
|
||||
s1= can.renderer(a[i], this);
|
||||
if(!s1){
|
||||
s+= a[i][can.displayfields];
|
||||
}else{
|
||||
s+= s1;
|
||||
}
|
||||
s+= '</div>';
|
||||
}
|
||||
var o = $('#list_'+rand+'');
|
||||
o.html(s);
|
||||
o.find("div.div01").click(function(){
|
||||
me._itemsclick(this);
|
||||
});
|
||||
if(can.checked){
|
||||
o.find("input[type='checkbox']").click(function(){
|
||||
me._itemscheckclick(this);
|
||||
});
|
||||
}
|
||||
var h = can.height,h1 = i*can.listheight;
|
||||
if(h1>h)h1 = h;
|
||||
o.css('height',''+h1+'px');
|
||||
this._setselcol();
|
||||
};
|
||||
this._showeizhi= function(){
|
||||
var o,jg,t;
|
||||
o = $('#'+this.mainidss+'');
|
||||
jg = $('#div_'+rand+'').offset().top+o.height()-winHb()+10;
|
||||
t = 33;
|
||||
if(jg>0)t = 0-jg;
|
||||
o.css('top',''+t+'px');
|
||||
};
|
||||
this._setselcol= function(){
|
||||
var vals = this.getValue(),i,o1,val1;
|
||||
var o = $('#list_'+rand+'').find("div[val]");
|
||||
o.removeClass();
|
||||
o.addClass('div01');
|
||||
var o2 = $('#list_'+rand+'').find("input[type='checkbox']");
|
||||
o2.attr('checked', false);
|
||||
if(vals!=''){
|
||||
var a = vals.split(',');
|
||||
for(i=0; i<a.length; i++){
|
||||
o1 = $('#list_'+rand+'').find("div[val='"+a[i]+"']");
|
||||
o1.removeClass();
|
||||
o1.addClass('div02');
|
||||
}
|
||||
vals = ','+vals+',';
|
||||
for(i=0; i<o2.length; i++){
|
||||
o1 = o2[i];
|
||||
val1 = $(o1).attr('val');
|
||||
if(vals.indexOf(','+val1+',')>-1)o1.checked=true;
|
||||
}
|
||||
}
|
||||
};
|
||||
this._cenghide = function(){
|
||||
$('#'+this.mainidss+'').hide();
|
||||
};
|
||||
this._itemsclick = function(o1){
|
||||
if(can.checked)return;
|
||||
var o = $(o1);
|
||||
var oi = parseInt(o.attr('oi'));
|
||||
var d = this.nowdata[oi],
|
||||
nae = d[can.displayfields],
|
||||
val = d[can.valuefields];
|
||||
$('#display_'+rand+'').val(nae);
|
||||
$('#value_'+rand+'').val(val);
|
||||
$('#display_'+rand+'').focus();
|
||||
can.itemsclick(d, this, oi);
|
||||
this._cenghide();
|
||||
};
|
||||
this._itemscheckclick = function(o1){
|
||||
var s = js.getchecked('checkbox_'+rand+'');
|
||||
var nae='',val='',i,s1,d,oi;
|
||||
if(s!=''){
|
||||
s1 = s.split(',');
|
||||
for(i=0;i<s1.length;i++){
|
||||
oi = s1[i];
|
||||
d = this.nowdata[oi];
|
||||
nae+=','+d[can.displayfields];
|
||||
val+=','+d[can.valuefields];
|
||||
}
|
||||
}
|
||||
if(nae!=''){
|
||||
nae = nae.substr(1);
|
||||
val = val.substr(1);
|
||||
}
|
||||
$('#display_'+rand+'').val(nae);
|
||||
$('#value_'+rand+'').val(val);
|
||||
this._setselcol();
|
||||
};
|
||||
//设置默认值
|
||||
this.setDefault = function(vs1,a){
|
||||
var nae = can.display,
|
||||
val = vs1,
|
||||
i,d;
|
||||
var sval = ','+val+',',vslss,oi=0;
|
||||
for(i=0; i<a.length; i++){
|
||||
d = a[i];vslss = ','+d[can.valuefields]+',';
|
||||
if(sval.indexOf(vslss)>-1){
|
||||
if(!can.checked){
|
||||
nae = d[can.displayfields];
|
||||
break;
|
||||
}else{
|
||||
if(oi==0)nae='';
|
||||
nae+=','+d[can.displayfields];
|
||||
oi++;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(nae.substr(0,1)==',')nae=nae.substr(1);
|
||||
$('#display_'+rand+'').val(nae);
|
||||
$('#value_'+rand+'').val(val);
|
||||
};
|
||||
this.getValue = function(){
|
||||
return $('#value_'+rand+'').val();
|
||||
};
|
||||
this.getRawValue = function(){
|
||||
return $('#display_'+rand+'').val();
|
||||
};
|
||||
this.setValue = function(val){
|
||||
this.setDefault(val, can.data);
|
||||
};
|
||||
this.setRawValue = function(v, v1){
|
||||
$('#display_'+rand+'').val(v);
|
||||
$('#value_'+rand+'').val(v1);
|
||||
};
|
||||
this._load = function(url){
|
||||
if(isempt(url))return;
|
||||
if(get('list_'+rand+'')){
|
||||
$('#list_'+rand+'').html('<div align="center" style="padding:20px"><img src="images/mloading.gif"></div>');
|
||||
}
|
||||
$.post(url,{key:$('#keysou_'+rand+'').val()},function(da){
|
||||
var a = js.decode(da);
|
||||
me._loadbool = true;
|
||||
me._loadback(a);
|
||||
});
|
||||
};
|
||||
|
||||
//搜索
|
||||
this._soukeysss = function(o1, e){
|
||||
var code = e.keyCode;
|
||||
if(code==13){
|
||||
this._soukeybtn();
|
||||
}else{
|
||||
this._soukey();
|
||||
}
|
||||
//38 39 40 41
|
||||
//js.msg('msg',code)
|
||||
}
|
||||
this._soukey = function(){
|
||||
clearTimeout(this._soukeytime);
|
||||
this._soukeytime = setTimeout(function(){
|
||||
me._soukey1();
|
||||
},300);
|
||||
};
|
||||
this._soukey1 = function(){
|
||||
var d=[],i,bo,k,d1,
|
||||
val = strreplace($('#keysou_'+rand+'').val()),
|
||||
a = can.data;
|
||||
if(a.length<=0 || this._oldvalue==val)return;
|
||||
if(!isempt(val)){
|
||||
val = val.toLowerCase();
|
||||
for(i=0; i<a.length; i++){
|
||||
if(d.length>10)break;
|
||||
d1 = a[i];bo = false;
|
||||
for(k in d1){
|
||||
if(!isempt(d1[k])){
|
||||
if(d1[k].toLowerCase().indexOf(val)==0){
|
||||
bo = true;break;
|
||||
}};
|
||||
}
|
||||
if(bo)d.push(d1);
|
||||
}
|
||||
}else{
|
||||
d = a;
|
||||
}
|
||||
this._showdata(d);
|
||||
this._oldvalue = val;
|
||||
};
|
||||
this._soukeybtn = function(){
|
||||
if(can.url==''){
|
||||
this._soukey();
|
||||
}else{
|
||||
this._fistload(1);
|
||||
}
|
||||
};
|
||||
|
||||
this._loadback = function(a){
|
||||
this.setData(a);
|
||||
};
|
||||
this._fistload = function(lx){
|
||||
if(!can.autoLoad && lx==0 )return;
|
||||
if(can.url=='')return;
|
||||
this._load(can.url);
|
||||
};
|
||||
this._downclear = function(){
|
||||
this.setValue('');
|
||||
$('#display_'+rand+'').focus();
|
||||
};
|
||||
|
||||
|
||||
this.reload = function(url){
|
||||
if(!url)url = can.url;
|
||||
this._load(can.url);
|
||||
};
|
||||
this.setData = function(a, naf, nafid){
|
||||
can.data = a;
|
||||
if(get('list_'+rand+'')){
|
||||
this._showdata(a);
|
||||
this.setValue(this.getValue());
|
||||
}
|
||||
if(naf)can.displayfields=naf;
|
||||
if(nafid)can.valuefields=nafid;
|
||||
};
|
||||
|
||||
this.setDisabled = function(bo){
|
||||
get('down_'+rand+'').disabled = bo;
|
||||
get('display_'+rand+'').disabled = bo;
|
||||
if(can.clearbool)get('downclear_'+rand+'').disabled = bo;
|
||||
};
|
||||
this.hide = function(){
|
||||
obj.hide();
|
||||
};
|
||||
this.show = function(){
|
||||
obj.show();
|
||||
};
|
||||
this.setVisible=function(bo){
|
||||
if(bo){
|
||||
this.show();
|
||||
}else{
|
||||
this.hide();
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
$.fn.bootstigger = function(options){
|
||||
var defaultVal = {
|
||||
items:[],rand:js.getrand(),name:'',namedisplay:'',data:[],
|
||||
displayfields:'name',valuefields:'name',
|
||||
renderer:function(){return ''},listheight:38,
|
||||
itemsclick:function(){},height:300,width:0,placeholder:'',
|
||||
maxlist:1000,//最多列表数
|
||||
checked:false,
|
||||
clearbool:false,
|
||||
value:'',display:'',
|
||||
autoLoad:false,url:'',load:function(){}
|
||||
};
|
||||
var can = $.extend({}, defaultVal, options);
|
||||
clsa = new bootstigger($(this), can);
|
||||
clsa.init();
|
||||
return clsa;
|
||||
};
|
||||
272
mode/bootstrapplugin/jquery-bootstree.js
vendored
Normal file
272
mode/bootstrapplugin/jquery-bootstree.js
vendored
Normal file
@@ -0,0 +1,272 @@
|
||||
/**
|
||||
* bootstable 表格树形插件
|
||||
* caratename:雨中磐石(rainrock)
|
||||
* caratetime:2014-04-06 21:40:00
|
||||
* email:admin@rockoa.com
|
||||
* homepage:www.rockoa.com
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
|
||||
function bootstree(element, options){
|
||||
var obj = element;
|
||||
var can = options;
|
||||
var rand = can.rand;
|
||||
var me = this;
|
||||
this.bool = false;
|
||||
this.changedata = false;
|
||||
|
||||
//初始化
|
||||
this.init = function(){
|
||||
if(rand=='')rand=js.getrand();
|
||||
this._init();
|
||||
this._create();
|
||||
if(can.autoLoad && !isempt(can.url))this._load();
|
||||
};
|
||||
|
||||
this._init = function(){
|
||||
var a,s,i;
|
||||
for(i=0; i<can.columns.length; i++){
|
||||
a = can.columns[i];
|
||||
if(typeof(a.align)=='undefined')can.columns[i].align='center';
|
||||
if(a.xtype=='treecolumn')can.columns[i].align='left';
|
||||
}
|
||||
s='<div style="position:relative;border:1px #dddddd solid;" class="bootstree" id="treebody_'+rand+'"></div>';
|
||||
obj.html(s);
|
||||
};
|
||||
this._create = function(){
|
||||
var a = can.columns;
|
||||
var s = '',i,len=a.length,hs;
|
||||
this._zoi = -1;
|
||||
this._zoiarr = [];
|
||||
this.changedata = false;
|
||||
if(!can.hideHeaders){
|
||||
s+='<div>';
|
||||
s+='<ul style="border-bottom:1px #dedede solid;border-top-width:0px;margin:0">';
|
||||
if(can.checked)s+='<li style="width:40px;text-align:center"><input id="seltablecheck_'+rand+'" type="checkbox"></li>';
|
||||
for(i=0;i<len;i++){
|
||||
hs = '';
|
||||
s+='<li '+hs+' style="width:'+a[i].width+';text-align:'+a[i].align+'"> ';
|
||||
if(can.celleditor&&a[i].editor)s+='<i class="icon-pencil"></i> ';
|
||||
s+='<b>'+a[i].text+'</b>';
|
||||
s+='</li>';
|
||||
}
|
||||
s+='</ul>';
|
||||
s+='</div>';
|
||||
}
|
||||
|
||||
s+=this._createjd(can.data, 0, 'treenode');
|
||||
$('#treebody_'+rand+'').html(s);
|
||||
|
||||
obj.find("i[temp='nodeclick']").click(function(){
|
||||
me._explade(this);
|
||||
});
|
||||
|
||||
this.trobj = obj.find('ul[dataid]');
|
||||
this.trobj.click(function(event){
|
||||
me._itemclick(this, event, 0);
|
||||
});
|
||||
this.trobj.dblclick(function(event){
|
||||
me._itemdblclick(this, event);
|
||||
});
|
||||
$('#seltablecheck_'+rand+'').click(function(){
|
||||
js.selall(this, 'treecheck_'+rand+'');
|
||||
});
|
||||
}
|
||||
this.viewreload = function(){
|
||||
this._create();
|
||||
};
|
||||
this._itemclick= function(o1, e, lx){
|
||||
this.trobj.css('background','');
|
||||
var o = $(o1);
|
||||
o.css('background', can.selectColor);
|
||||
var oi = parseFloat(o.attr('oi'));
|
||||
var a = this._zoiarr[oi];
|
||||
this.changedata = a;
|
||||
this.changeid = a.id;
|
||||
if(lx==0)can.itemclick(a, oi, e);
|
||||
if(lx==1)can.itemdblclick(a, oi, e);
|
||||
};
|
||||
this._itemdblclick=function(o1,e){
|
||||
this._itemclick(o1,e,1)
|
||||
};
|
||||
this._explade = function(o){
|
||||
var o1 = $(o);
|
||||
var sid = o1.attr('nodeclick');
|
||||
var exp = o1.attr('expanded');
|
||||
if(exp=='true'){
|
||||
obj.find("div[nodexu='"+sid+"']").hide();
|
||||
o1.attr('expanded','false');
|
||||
}else{
|
||||
obj.find("div[nodexu='"+sid+"']").show();
|
||||
o1.attr('expanded','true');
|
||||
}
|
||||
}
|
||||
|
||||
this._createjd = function(d, oi, xlx){
|
||||
var a = can.columns;
|
||||
var s = '',i,len=d.length,j,jlen = a.length,s1,ionc,s2='',s3,id, diss='',ov;
|
||||
for(i=0;i<len;i++){
|
||||
id = xlx+'_'+i;
|
||||
s2 = '';
|
||||
if(d[i].children){
|
||||
if(d[i].children.length>0){
|
||||
diss = '';
|
||||
if(!d[i].expanded)diss='none';
|
||||
s2= this._createjd(d[i].children, oi+1, id);
|
||||
s2 = '<div style="display:'+diss+';" nodexu="'+id+'">'+s2+'</div>';
|
||||
}
|
||||
}
|
||||
this._zoi++;
|
||||
ov = d[i];
|
||||
this._zoiarr[this._zoi] = ov;
|
||||
s+='<ul oi="'+this._zoi+'" style="margin:0" dataid="'+ov.id+'">';
|
||||
if(can.checked){
|
||||
s+='<li style="width:40px;text-align:center"><input name="treecheck_'+rand+'" value="'+this._zoi+'" type="checkbox"></li>';
|
||||
}
|
||||
for(j=0;j<jlen;j++){
|
||||
s1 = ov[a[j].dataIndex];
|
||||
if(!s1)s1='';
|
||||
if(typeof(a[j].renderer)=='function'){
|
||||
s3 = a[j].renderer(s1, ov);
|
||||
if(!isempt(s3))s1=s3;
|
||||
}
|
||||
s+='<li style="width:'+a[j].width+';text-align:'+a[j].align+'">';
|
||||
if(a[j].xtype == 'treecolumn'){
|
||||
ionc = 'folder-close-alt';
|
||||
if(s2=='')ionc='file-alt';
|
||||
if(ov.icons)ionc = ov.icons;
|
||||
s+= '<div style="padding-left:'+(24*oi+10)+'px">';
|
||||
s+= this._getshlist(ov, this._zoi);
|
||||
s+= ' <i nodeclick="'+id+'" style="cursor:pointer" class="icon-'+ionc+'"';
|
||||
if(s2 != '')s+=' temp="nodeclick"';
|
||||
if(ov.expanded)s+=' expanded="true"';
|
||||
s+= '></i> ';
|
||||
s+= s1;
|
||||
s+= '</div>';
|
||||
}else{
|
||||
s+= s1;
|
||||
}
|
||||
s+='</li>';
|
||||
}
|
||||
s+='</ul>';
|
||||
s+=s2;
|
||||
}
|
||||
return s;
|
||||
};
|
||||
this._getshlist = function(a, oi){
|
||||
var s= '',chk='',dis='';
|
||||
if(typeof(a.checked)=='boolean'){
|
||||
if(a.checked)chk='checked';
|
||||
if(a.disabled)dis='disabled';
|
||||
s = '<input name="treecheck_'+rand+'" '+chk+' '+dis+' value="'+oi+'" type="checkbox" >';
|
||||
}
|
||||
return s;
|
||||
};
|
||||
//获取选中
|
||||
this.getchecked = function(){
|
||||
var s = js.getchecked('treecheck_'+rand+''),
|
||||
o = $("input[name='treecheck_"+rand+"']");
|
||||
var a = [],i;
|
||||
if(s!=''){
|
||||
var a1 = s.split(',');
|
||||
for(i=0; i<a1.length; i++){
|
||||
oi = parseInt(a1[i]);
|
||||
a.push(this._zoiarr[oi]);
|
||||
}
|
||||
}else if(o.size()==0){
|
||||
if(this.changedata)a.push(this.changedata);
|
||||
}
|
||||
return a;
|
||||
};
|
||||
this.setparams = function(cans, relo){
|
||||
if(!cans)cans={};
|
||||
can.params = js.apply(can.params,cans);
|
||||
if(relo)this._load();
|
||||
};
|
||||
this._load = function(){
|
||||
if(this.bool)return;
|
||||
var h= obj.height()-2,
|
||||
w= obj.width()-2,
|
||||
s = '';
|
||||
s='<div id="modeshow_'+rand+'" style="filter:Alpha(opacity=20);opacity:0.2;height:'+h+'px;width:'+w+'px;overflow:hidden;z-index:3;position:absolute;left:0px;line-height:'+h+'px;top:0px;background:#000000;color:white" align="center"><img src="images/mloading.gif" align="absmiddle"></div>';
|
||||
$('#treebody_'+rand+'').append(s);
|
||||
this.bool = true;
|
||||
var parm = can.params;
|
||||
$.ajax({
|
||||
type:can.method,url:can.url,
|
||||
data:parm,
|
||||
success:function(da){
|
||||
if(!get('treebody_'+rand+''))return;
|
||||
var a = js.decode(da);
|
||||
me._loaddataback(a);
|
||||
$('#modeshow_'+rand+'').remove();
|
||||
me.bool = false;
|
||||
},
|
||||
error: function(e){
|
||||
$('#modeshow_'+rand+'').remove();
|
||||
js.msg('msg',e.responseText);
|
||||
me.bool = false;
|
||||
}
|
||||
});
|
||||
};
|
||||
this._loaddataback = function(a){
|
||||
var d = a.rows ? a.rows : a;
|
||||
can.data = d;
|
||||
this._create();
|
||||
can.load(a, this);
|
||||
};
|
||||
this.reload = function(){
|
||||
this._load();
|
||||
};
|
||||
this.loadData = function(d){
|
||||
this._loaddataback(d);
|
||||
};
|
||||
|
||||
this.del = function(csa){
|
||||
if(this.bool)return;
|
||||
var a = js.apply({msg:'确定要删除选中的记录吗?',success:function(){},checked:false,check:function(){},id:this.changeid,url:'',params:{}},csa);
|
||||
if(!a.id ||a.url==''||a.id=='0')return;
|
||||
js.confirm(a.msg,function(lx){
|
||||
if(lx=='yes'){
|
||||
me._delok(a);
|
||||
}
|
||||
});
|
||||
};
|
||||
this._delok = function(ds){
|
||||
js.msg('wait','删除中...');
|
||||
this.bool=true;
|
||||
var url = ds.url,ss = js.apply({id:ds.id},ds.params);
|
||||
$.ajax({
|
||||
url:url,type:'POST',data:ss,dataType:'json',
|
||||
success:function(a1){
|
||||
me.bool=false;
|
||||
if(a1.code==200){
|
||||
js.msg('success','删除成功');
|
||||
ds.success();
|
||||
me.reload();
|
||||
}else{
|
||||
js.msg('msg',a1.msg);
|
||||
}
|
||||
},
|
||||
error:function(e){
|
||||
js.msg('msg','err:'+e.responseText);
|
||||
me.bool = false;
|
||||
}
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
$.fn.bootstree = function(options){
|
||||
var defaultVal = {
|
||||
data:[],rand:'',columns:[],hideHeaders:false,selectColor:'#DFF0D8',method:'GET',
|
||||
itemdblclick:function(){},checked:false,autoLoad:true,url:'',params:{},
|
||||
itemclick:function(da, index, e){},load:function(){}
|
||||
};
|
||||
var can = $.extend({}, defaultVal, options);
|
||||
var clsa = new bootstree($(this), can);
|
||||
clsa.init();
|
||||
return clsa;
|
||||
};
|
||||
})(jQuery);
|
||||
Reference in New Issue
Block a user