url: sname+"/OrgInfomanageController/getOrgTreeDataByIds",
method: 'post',
value:'${expenseClaim.fillorgid}',
editable:false,
loadFilter: function (rows) {
var data=rows.rtn.data;
orgidData = commonConvert(data,'orgid','orgname','superiorid');
return orgidData;
}
})
// 返回树形结构(常规的)
/**
* rows : 接口返回的结果 id :rows中对象的主键id textname:rows中单个对象中用于显示的字段名
* superid:rows中单个对象中用于定位父级的字段名
*/
function commonConvert(rows, id, textname, superid) {
function exists(rows, ParentDepartId) {
for (var i = 0; i < rows.length; i++) {
if (rows[i][id] === ParentDepartId)
return true;
}
return false;
}
var nodes = [];
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
if (!exists(rows, row[superid])) {
nodes.push({
id : row[id],
text : row[textname],
iconCls : 'userGroup'
});
}
}
var toDo = [];
for (var i = 0; i < nodes.length; i++) {
toDo.push(nodes[i]);
}
while (toDo.length) {
var node = toDo.shift();
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
if (row[superid] == node.id) {
var child = {
id : row[id],
text : row[textname],
iconCls : 'userGroup'
};
if (node.children) {
node.children.push(child);
} else {
node.children = [ child ];
}
node.state = 'closed';
if (node.id == nodes[0].id) {
node.state = 'open';
}
toDo.push(child);
}
}
}
return nodes;
}