243-layui 區域樹xmSelect懶加載,且葉子節點有選擇時,自動追溯父節點,并展開選中

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, 默認渲染name, 回調參數(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: {
				//是否顯示樹狀結構
				show: true,
				//是否展示三角圖標
				showFolderIcon: true,
				//是否顯示虛線
				showLine: false,
				//間距
				indent: 20,
				//默認展開節點的數組, 為 true 時, 展開所有節點
				expandedKeys: true,
				//是否嚴格遵守父子模式
				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(","))
		}

遞歸查找父級節點 的實現:

var active = {
			//遞歸查找父級節點
			//取節點,得id、pid
			//比對頂級list,遍歷,定義為n
			//若pid=n.id,則n.children=[{parentId:pid}],結束
			//若pid!=n.id,繼續 goto X
			//X: 查父節點1,得id1、pid1
			//查父節點1.children=[{parentId:id1}]
			//比對頂級list,遍歷,定義為n,
			//若pid1=n.id,則n.children=[{parentId:若pid1}],
			// 		同時遍歷:n.children,定義為c,當c.id=查父節點1.id, 則c=查父節點1
			// 			結束
			//若pid1!=n.id,繼續 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});
				}
			},
		}
聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
發表評論
更多 網友評論0 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 我要看a级毛片| 人妻久久久一区二区三区| 婷婷伊人五月天| 欧美日韩在线一区二区三区| 成人污视频在线观看| 八区精品色欲人妻综合网| 国内精品久久久久精品| 极品美女养成系统| 精品国产免费一区二区三区| 久久亚洲国产精品五月天婷| 免费人成视网站在线观看不卡| 国产精品电影一区| 成人一级黄色片| 桃子视频在线观看高清免费视频| 耻辱の女潜入搜查官正在播放 | yy一级毛片免费视频| 亚洲中文字幕日产乱码高清app| 国产精品人成在线播放新网站| 欧美日韩国产伦理| 精品无码人妻一区二区三区| 一级黄色片免费观看| 体育生开房互操| 国产肉体xxxx裸体137大胆| 日本一二区视频| 欧美VA久久久噜噜噜久久| 男女污污在线观看| 色偷偷成人网免费视频男人的天堂 | 久久机热这里只有精品无需| 国产一区二区精品| 天堂…在线最新版资源| 日出水了特别黄的视频| 欧美国产激情二区三区| 国产一区在线mmai| 两腿之间的私密图片| 亚洲狠狠色丁香婷婷综合| 又硬又大又湿又紧a视频| 国产天堂在线一区二区三区| 成人国产在线不卡视频| 残忍女王虐茎chinese| 精品国产一二三区在线影院| 色综合欧美在线视频区|