Version zu Ende April 2023
This commit is contained in:
136
static/jeasyui/plugins/jquery.datalist.js
Normal file
136
static/jeasyui/plugins/jquery.datalist.js
Normal file
@@ -0,0 +1,136 @@
|
||||
/**
|
||||
* EasyUI for jQuery 1.9.14
|
||||
*
|
||||
* Copyright (c) 2009-2021 www.jeasyui.com. All rights reserved.
|
||||
*
|
||||
* Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php
|
||||
* To use it on other terms please contact us: info@jeasyui.com
|
||||
*
|
||||
*/
|
||||
(function($){
|
||||
function _1(_2){
|
||||
var _3=$.data(_2,"datalist").options;
|
||||
$(_2).datagrid($.extend({},_3,{cls:"datalist"+(_3.lines?" datalist-lines":""),frozenColumns:(_3.frozenColumns&&_3.frozenColumns.length)?_3.frozenColumns:(_3.checkbox?[[{field:"_ck",checkbox:true}]]:undefined),columns:(_3.columns&&_3.columns.length)?_3.columns:[[{field:_3.textField,width:"100%",formatter:function(_4,_5,_6){
|
||||
return _3.textFormatter?_3.textFormatter(_4,_5,_6):_4;
|
||||
}}]]}));
|
||||
};
|
||||
var _7=$.extend({},$.fn.datagrid.defaults.view,{render:function(_8,_9,_a){
|
||||
var _b=$.data(_8,"datagrid");
|
||||
var _c=_b.options;
|
||||
if(_c.groupField){
|
||||
var g=this.groupRows(_8,_b.data.rows);
|
||||
this.groups=g.groups;
|
||||
_b.data.rows=g.rows;
|
||||
var _d=[];
|
||||
for(var i=0;i<g.groups.length;i++){
|
||||
_d.push(this.renderGroup.call(this,_8,i,g.groups[i],_a));
|
||||
}
|
||||
$(_9).html(_d.join(""));
|
||||
}else{
|
||||
$(_9).html(this.renderTable(_8,0,_b.data.rows,_a));
|
||||
}
|
||||
},renderGroup:function(_e,_f,_10,_11){
|
||||
var _12=$.data(_e,"datagrid");
|
||||
var _13=_12.options;
|
||||
var _14=$(_e).datagrid("getColumnFields",_11);
|
||||
var _15=[];
|
||||
_15.push("<div class=\"datagrid-group\" group-index="+_f+">");
|
||||
if(!_11){
|
||||
_15.push("<span class=\"datagrid-group-title\">");
|
||||
_15.push(_13.groupFormatter.call(_e,_10.value,_10.rows));
|
||||
_15.push("</span>");
|
||||
}
|
||||
_15.push("</div>");
|
||||
_15.push(this.renderTable(_e,_10.startIndex,_10.rows,_11));
|
||||
return _15.join("");
|
||||
},groupRows:function(_16,_17){
|
||||
var _18=$.data(_16,"datagrid");
|
||||
var _19=_18.options;
|
||||
var _1a=[];
|
||||
for(var i=0;i<_17.length;i++){
|
||||
var row=_17[i];
|
||||
var _1b=_1c(row[_19.groupField]);
|
||||
if(!_1b){
|
||||
_1b={value:row[_19.groupField],rows:[row]};
|
||||
_1a.push(_1b);
|
||||
}else{
|
||||
_1b.rows.push(row);
|
||||
}
|
||||
}
|
||||
var _1d=0;
|
||||
var _17=[];
|
||||
for(var i=0;i<_1a.length;i++){
|
||||
var _1b=_1a[i];
|
||||
_1b.startIndex=_1d;
|
||||
_1d+=_1b.rows.length;
|
||||
_17=_17.concat(_1b.rows);
|
||||
}
|
||||
return {groups:_1a,rows:_17};
|
||||
function _1c(_1e){
|
||||
for(var i=0;i<_1a.length;i++){
|
||||
var _1f=_1a[i];
|
||||
if(_1f.value==_1e){
|
||||
return _1f;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
};
|
||||
}});
|
||||
$.fn.datalist=function(_20,_21){
|
||||
if(typeof _20=="string"){
|
||||
var _22=$.fn.datalist.methods[_20];
|
||||
if(_22){
|
||||
return _22(this,_21);
|
||||
}else{
|
||||
return this.datagrid(_20,_21);
|
||||
}
|
||||
}
|
||||
_20=_20||{};
|
||||
return this.each(function(){
|
||||
var _23=$.data(this,"datalist");
|
||||
if(_23){
|
||||
$.extend(_23.options,_20);
|
||||
}else{
|
||||
var _24=$.extend({},$.fn.datalist.defaults,$.fn.datalist.parseOptions(this),_20);
|
||||
_24.columns=$.extend(true,[],_24.columns);
|
||||
_23=$.data(this,"datalist",{options:_24});
|
||||
}
|
||||
_1(this);
|
||||
if(!_23.options.data){
|
||||
var _25=$.fn.datalist.parseData(this);
|
||||
if(_25.total){
|
||||
$(this).datalist("loadData",_25);
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
$.fn.datalist.methods={options:function(jq){
|
||||
return $.data(jq[0],"datalist").options;
|
||||
}};
|
||||
$.fn.datalist.parseOptions=function(_26){
|
||||
return $.extend({},$.fn.datagrid.parseOptions(_26),$.parser.parseOptions(_26,["valueField","textField","groupField",{checkbox:"boolean",lines:"boolean"}]));
|
||||
};
|
||||
$.fn.datalist.parseData=function(_27){
|
||||
var _28=$.data(_27,"datalist").options;
|
||||
var _29={total:0,rows:[]};
|
||||
$(_27).children().each(function(){
|
||||
var _2a=$.parser.parseOptions(this,["value","group"]);
|
||||
var row={};
|
||||
var _2b=$(this).html();
|
||||
row[_28.valueField]=_2a.value!=undefined?_2a.value:_2b;
|
||||
row[_28.textField]=_2b;
|
||||
if(_28.groupField){
|
||||
row[_28.groupField]=_2a.group;
|
||||
}
|
||||
_29.total++;
|
||||
_29.rows.push(row);
|
||||
});
|
||||
return _29;
|
||||
};
|
||||
$.fn.datalist.defaults=$.extend({},$.fn.datagrid.defaults,{fitColumns:true,singleSelect:true,showHeader:false,checkbox:false,lines:false,valueField:"value",textField:"text",groupField:"",view:_7,textFormatter:function(_2c,row){
|
||||
return _2c;
|
||||
},groupFormatter:function(_2d,_2e){
|
||||
return _2d;
|
||||
}});
|
||||
})(jQuery);
|
||||
|
||||
Reference in New Issue
Block a user