var regionData = [];var url = ctx+'/base/region/queryByAll';var rtnRegion=admin.syncReq(url,{parentId:0});regionData = rtnRegion.data;active.renderRegionData(regionData,regionId);var regionSel = xmSelect.render({el: '#regionSel',autoRow: tr
var regionData = [];
var url = ctx+'/base/region/queryByAll';
var rtnRegion=admin.syncReq(url,{parentId:0});
regionData = rtnRegion.data;
active.renderRegionData(regionData,regionId);
var regionSel = xmSelect.render({
el: '#regionSel',
autoRow: true,
filterable: true,
model: {
label: {
block: {
//自定義渲染label, 默認(rèn)渲染name, 回調(diào)參數(shù)(item, sels)
template: function (item, sels) {
var rtnLabel = '';
var parent = item.parent;
if(parent){
if(parent.parent){
rtnLabel=parent.parent.name+'/'
}
rtnLabel+=parent.name+'/';
}
rtnLabel+=item.name;
return rtnLabel;
},
},
},
//展示類型, 下拉框形式: absolute, 直接顯示模式: relative
type: 'absolute',
},
tree: {
//是否顯示樹狀結(jié)構(gòu)
show: true,
//是否展示三角圖標(biāo)
showFolderIcon: true,
//是否顯示虛線
showLine: false,
//間距
indent: 20,
//默認(rèn)展開節(jié)點的數(shù)組, 為 true 時, 展開所有節(jié)點
expandedKeys: true,
//是否嚴(yán)格遵守父子模式
strict: false,
lazy: true,
load:function (item,cb) {
if(item.type==3){
cb([])
}else{
if(!item.children || item.children.length==0){
var _rtn=admin.syncReq(url,{parentId:item.id});
if(_rtn.data && _rtn.data.length>0){
var children = _rtn.data;
$.each(children,function (index,_item) {
if(_item.type==3){
_item.children = null;
}
var _parent = {name:item.name,id:item.id,type:item.type}
if(item.parent){
_parent = $.extend(_parent,{parent:item.parent});
}
_item = $.extend(_item,{ parent:_parent });
})
cb(children);
}
}else{
cb([])
}
}
}
},
height: '200px',
// radio:true,
// clickClose:true,
toolbar: {
show: true,
list: [ 'CLEAR' ]
},
data(){
return regionData;
},
on:function (data) {
setTimeout(function (){
var valueStr = regionSel.getValue("valueStr")
var nameStr = regionSel.getValue("nameStr")
$("[name=regionId]").val(valueStr);
$("[name=regionName]").val(nameStr);
},100)
}
});
if(regionId){
regionSel.setValue(regionId.split(","))
}
遞歸查找父級節(jié)點 的實現(xiàn):
var active = {
//遞歸查找父級節(jié)點
//取節(jié)點,得id、pid
//比對頂級list,遍歷,定義為n
//若pid=n.id,則n.children=[{parentId:pid}],結(jié)束
//若pid!=n.id,繼續(xù) goto X
//X: 查父節(jié)點1,得id1、pid1
//查父節(jié)點1.children=[{parentId:id1}]
//比對頂級list,遍歷,定義為n,
//若pid1=n.id,則n.children=[{parentId:若pid1}],
// 同時遍歷:n.children,定義為c,當(dāng)c.id=查父節(jié)點1.id, 則c=查父節(jié)點1
// 結(jié)束
//若pid1!=n.id,繼續(xù) goto X
findParentNodesRecursion:function (treeData,pid){
var rtn = admin.syncReq(url,{id:pid});
var p1 = rtn.data[0];
var id1 = p1.id;
var pid1 = p1.parentId;
rtn = admin.syncReq(url,{parentId:id1});
p1.children = rtn.data;
for(var i=0;i<treeData.length;i++){
var n = treeData[i];
if(pid1==n.id){
rtn = admin.syncReq(url,{parentId:pid1});
n.children = rtn.data;
for(var j=0;j<n.children.length;j++){
var c = n.children[j];
if(c.id==p1.id){
c = p1;
n.children[j] = p1;
}
}
return;
}
}
active.findParentNodesRecursion(treeData,pid1)
},
findParentNodes:function (treeData,node){
var id = node.id;
var rtn = admin.syncReq(url,{id:id});
node = rtn.data[0];
var pid = node.parentId;
for(var i=0;i<treeData.length;i++){
var n = treeData[i];
if(pid==n.id){
rtn = admin.syncReq(url,{parentId:pid});
n.children = rtn.data;
return;
}
}
active.findParentNodesRecursion(treeData,pid);
},
renderRegionData:function (treeData,selIds){
if(!selIds){
return;
}
var idArr = selIds.split(",");
for(var i=0;i<idArr.length;i++){
var rid = idArr[i];
active.findParentNodes(treeData,{id:rid});
}
},
}
聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進行處理。