上效果图:
参考教程1
参考教程2
<div id="work_div" class="open-form layui-form" bind_id="0" style="display: none;"> <div id="test2" ></div></div>
var work_detail = function(e){ var data_id = $(e.srcElement).attr("id"); var bind_id = $('#work_div').attr('bind_id'); if(bind_id != data_id){ var week_day = $(e.srcElement).attr("week_day")?$(e.srcElement).attr("week_day").split(','):[]; //下发数据是"0,1,3" 0是周天 var rest_date = $(e.srcElement).attr("rest_date")?$(e.srcElement).attr("rest_date").split(','):[]; //下发数据是"2020-11-9,2020-11-10,2020-11-11," 数据格式要和laydate 定义统一,下发解决format(Y-n-j),月日不补零 var work_name = '早班'; var work_time = '00:02 01:00-05:00'; var mark_class = ''; week_day.forEach(function (val, index) { mark_class += '.layui-laydate-content td:nth-child('+val+'),' }); mark_class = mark_class.substring(0, mark_class.length-1) $('#work_div').attr('bind_id', data_id) $('#work_div').html('<div id="test2" ></div>' + '<div><div>班次详情</div><div>'+work_name+' '+work_time+'</div></div>'); layui.use('laydate', function(){ var laydate = layui.laydate; laydate.render({ elem: '#test2' ,position: 'static' ,showBottom: false ,change: function(value, date){ //监听日期被切换 if(week_day.length>0){ var choosedate = $(mark_class).addClass('work_date');//选中所有显示日期的td choosedate.each(function (index,elem) { if(rest_date.indexOf($(this).attr('lay-ymd'))!=-1){ $(this).removeClass('work_date'); } }) $('.work_date').append("<div class="layui-elip work-mark">"+work_name+"</div>");//在选中的td中退出显示价价格的div } } ,ready: function(date){ if(week_day.length>0){ var choosedate = $(mark_class).addClass('work_date');//选中所有显示日期的td choosedate.each(function (index,elem) { if(rest_date.indexOf($(this).attr('lay-ymd'))!=-1){ $(this).removeClass('work_date'); } }) $('.work_date').append("<div class="layui-elip work-mark">"+work_name+"</div>");//在选中的td中退出显示价价格的div } } }); }); } layer.open({ type: 1 ,title: "排班详情" ,area: '650px' ,shade: [0.8, '#393D49'] ,shadeClose:true ,maxmin: true ,content: "#work_div" ,btn: [确定,勾销] ,zIndex:999 ,yes: function(index){ } ,btn2: function(){ layer.closeAll(); } ,success: function(layero,index){ } ,end: function(){ }}); };