Layselect 展示示例

背景:项目过程中,select的下拉框的数据基本是可配置的,之前使用easyui时对select的数据通过一个url即可获取到数据,非常方便,切换到layui没有相应的功能。特写了这个组件,需要的自行下载引用。 使用方式:将layselect.js文件放到项目中指定的位置(也可直接放到layui的lay文件夹中直接使用),放到其他地方的遵循layui使用规范,如下:
layui.config({base: '../js/layui_exts/'}).extend({
  regionSelect: 'regionSelect/regionSelect'
}).use([''],function(){})

 使用代码参考

  //如果放到layui.lay中,不用config引入,当成原生组件layui.use直接使用
  layui.config({
  	base:'js/modules/'
  }).extend({
  	layselect:'layselect'
  }).use(['jquery','form','layer','layselect'], function(){
  	var $=layui.jquery,select=layui.layselect,form=layui.form,layer=layui.layer;
  		//分租类型指定选中项
  		select.render({
  			elem:"#unit",
  			url:'json/groupshow.json',//归属类型
  			select:"0-1",//指定默认选择项的索引(从0开始),分租时用类似 0-1表示默认选中,"-"前面0是第一个分租,后面1是第一个分租中子集合的第二个元素
  			success:function(data){
  				console.log(data);
  			},
  			onselect:function(key,value){
  				layer.msg("选择了:"+key+value); //这里content是一个普通的String
  			}
  		});
  		//一般展示
  		select.render({
  			  elem:"#subjectType",
  			  url:'json/common.json',//归属类型
  			  select:10000,//指定默认选择项的索引
  			  format:function(data){
  				  return data;
  			  },
  			  success:function(data){},
  			  onselect:function(data){
  				layer.msg("选择了:"+data);  
  			  }
  		  });
  		  //不请求URL自定义数据
  		select.render({
  			  elem:"#orderData",
  			  //url:'',//归属类型
  			  option:[
  				  {code:'1',codeName:'1-第一个'},
  				  {code:'2',codeName:'2-第二个'},
  				  {code:'3',codeName:'3-第三个'},
  				  {code:'4',codeName:'4-第四个',select:true},
  				  {code:'5',codeName:'5-第五个'},
  				  {code:'6',codeName:'6-第六个'}],
  			  select:"0",//确认默认项:option内部select=true的优先级高于外部select指定索引,最终的默认选项是4-第四个
  			  onselect:function(data){
  				  layer.msg("选中了:"+data);
  			  }
  		});
  		  //映射案例
  		  select.render({
  			  elem:"#forbiType",
  			  url:'json/forbidden.json',//店铺列表
  			  format:function(row){
  				  return{
  					  code:row.id,
  					  status:row.status,
  					  codeName:row.name
  				  };
  			  }
  		  });
  		  select.render({
  			  elem:"#producttype1",
  			  url:'json/producttype.json',//产品类型
  			  onselect:function(value){//优先级高于form.on(select(obj))
  				  $('#producttype2').empty();//二级先清空,否则加载不到时还是原来的,根据需求清空
  				  select.render({
  					  elem:"#producttype2",//加载二级类型
  					  url:'json/producttype-'+value+".json",
  					  onselect:function(value2){
  						  console.log("value="+value+"value2="+value2)
  						  $('#productType').empty();//同时清空实际产品类型
  						  select.render({
  							  elem:"#productType",//加载明细类型(三级菜单)
  							  url:'json/producttype-'+value+'-'+value2+'.json'
  						  });
  					  }
  				  });
  			  }
  		  });
  	});