layui复选及回显

//存放表格当前页的数据
var currentPage = new Array();
//存放已选的数据
var checkData = new Array();


layui.use(['layer', 'table', 'form'],function() { 
		var layer = layui.layer;
		var table = layui.table;
		var form = layui.form;
		
		getData();
		
		//查找数据
		function getData(){
			var keyword = $("#jname").val();
			
			table.render({
				elem: '#tablejcy'
				,height: 500
				,url: 'ajax.do?ctrl=hl_cktcxs_findAlltc&token=' + tokenstr+'&keyword='+keyword //执行路径,获取类型下拉选数据     ' //数据接口
			    ,cols: [[ //表头
					{type:'checkbox', width:80}
			      ,{field: 'tcid', title: '套餐id', width:180, hide:true}
			      ,{field: 'tcmc', title: '套餐名称', width:180}
			      ,{field: 'bzjg', title: '标准价格', width:180} 
			      ,{field: 'tcts', title: '套餐天数', width: 180}
			      ,{fixed: 'right', width:180, align:'center', toolbar: '#tcbar'}
			    ]]
				,page: true
				,done:function(res, curr, count){
					//获取当前页的数据
					currentPage = res.data;
					for (var i = 0; i < currentPage.length; i++) {
						for (var k = 0; k < checkData.length; k++) {
							if(currentPage[i].cpid == checkData[k].cpid){
								//可以自行添加判断的条件是否选中
						        //这句才是真正选中,通过设置关键字LAY_CHECKED为true选中
								currentPage[i]["LAY_CHECKED"]='true';
								//下面三句是通过更改css来实现选中的效果
								var index= currentPage[i]['LAY_TABLE_INDEX'];
								$('tr[data-index=' + index + '] input[type="checkbox"]').prop('checked', true);
								$('tr[data-index=' + index + '] input[type="checkbox"]').next().addClass('layui-form-checked');
							}
						}
					}//for_end
                                          
                                        //设置全选checkbox的选中状态,只有改变LAY_CHECKED的值, table.checkStatus才能抓取到选中的状态
					var checkStatus = table.checkStatus('tablejcy');
					console.log(checkStatus)
					if (checkStatus.isAll) {
						$('.layui-table-header th[data-field="0"] div input[type="checkbox"]').prop('checked', true);
						$('.layui-table-header th[data-field="0"] div input[type="checkbox"]').next().addClass('layui-form-checked');
					}
					
				}
			});
		}
		
		
		//监听复选
		table.on('checkbox(tablejcy)', function(obj){
			//如果是单选
			if(obj.type == "one"){
				var iscunzai = -1;
				for (var i = 0; i < checkData.length; i++) {
					if(obj.data.cpid == checkData[i].cpid){
						iscunzai = i;
					}
				}
				//选中
				if(obj.checked){
					//如果已选择的数据中没有该数据则添加
					if(iscunzai == -1){
						checkData.push(obj.data);
					}
				}else {
					checkData.splice(iscunzai,1);//从start的位置开始向后删除delCount个元素
				}
			
			}else{
				//如果为全选
				for (var i = 0; i < currentPage.length; i++) {
					var iscunzai = true;
					var index;
					for (var k = 0; k < checkData.length; k++) {
						if(currentPage[i].cpid == checkData[k].cpid){
							//如果选中的数组数据中已经存在该数据
							iscunzai = false;
							index = k;
						}
					}
					if(obj.checked){
						if(iscunzai){
							checkData.push(currentPage[i]);
						}
					}else{
						checkData.splice(index,1);//从start的位置开始向后删除delCount个元素
					}
				}
			}
		});
});
posted @ 2020-08-28 10:12  濑户内海  阅读(1063)  评论(0)    收藏  举报