{% extends "data_grid.html" %} {% load i18n iclock_tags %} {% block main_body %}
{% trans 'shiftDetail_grid_detailLabel' %}
-
{% endblock %} {% block valid_form %} var week=[ "{% trans 'weekday_option_sunday' %}", "{% trans 'weekday_option_monday' %}", "{% trans 'weekday_option_tuesday' %}", "{% trans 'weekday_option_wednesday' %}", "{% trans 'weekday_option_thursday' %}", "{% trans 'weekday_option_friday' %}", "{% trans 'weekday_option_saturday' %}" ]; var nowDate = new Date(); var cur = moment(new Date()); var fullStartOfMonth = cur.startOf('month').format('YYYY-MM-DD'); var fullEndOfMonth = cur.endOf('month').format('YYYY-MM-DD'); function getTimeStr(t){ return t<10? '0'+t: t; } function datesRange(startDate, endDate) { let dateList = []; let currentDate = new Date(startDate); endDate = new Date(endDate); while (currentDate <= endDate) { dateList.push(currentDate.toISOString().split('T')[0]); currentDate.setDate(currentDate.getDate() + 1); } return dateList; } function weekoff_color(date) { let day_name = new Date(date).toLocaleDateString('default', { weekday: 'short' }); let [month, day] = date.split('-').slice(1); var sup = `${month}.${day}`+''+day_name+''; return sup; } function weekday_color(date) { let day_name = new Date(date).toLocaleDateString('default', { weekday: 'short' }); let [month, day] = date.split('-').slice(1); var sup = `${month}.${day}`+''+day_name+''; return sup; } var createTZTable = function(response, start_date, end_date){ var dates = datesRange(start_date, end_date) var html='
'; for ( i = 0; i < dates.length; i++) { var date = dates[i].replace(/-/g, '') if (date in response){ if (response[date] == 'Weekoff'){ html+=``; } else{ html+='`; } } else{ html+=''; } } return html; }; var scheduleDetail = function(payload){ var start_date = $("#{{ model_name }}_start_date").val(); var end_date = $("#{{ model_name }}_end_date").val(); $.ajax({ url: "/att/showShiftDetail/" ,type: "GET" ,data: {shift: payload.shift_no, st: start_date, ed: end_date, emp: payload.emp_code, schedule:payload.id} ,dataType: "json" ,success: function(response){ var panel = createTZTable(response.item, start_date, end_date); $("#id_{{ model_name }}ShiftDetail").html(panel) var height = $("#{{ model_name }}_fluid .layui-table-view").height() - 85; $("#id_{{ model_name }}ShiftDetail").css('height', height+"px"); } ,error: function(XMLHttpRequest, textStatus, errorThrown){ } }); }; $("#id_{{ model_name }}_search").click(function(){ var schedule = $("#id_{{ model_name }}SelectedShift").val(); if(schedule){ var payload = JSON.parse(schedule); scheduleDetail(payload); } }) layui.use('laydate', function(){ var laydate=layui.laydate; var startDate = laydate.render({ elem: '#{{ model_name }}_start_date', type: 'date', value: fullStartOfMonth, max: fullEndOfMonth, done: function (value, date) { if (Object.keys(date).length !== 0) { endDate.config.min = { year: date.year, month: date.month - 1, date: date.date }; } else { endDate.config.min = { year: 1900, month: 1, date: 1 }; endDate.config.max = { year: 2099, month: 12, date: 31 }; } } }); var endDate = laydate.render({ elem: '#{{ model_name }}_end_date', type: 'date', value: fullEndOfMonth, min: fullStartOfMonth, done: function (value, date) { if (Object.keys(date).length !== 0) { startDate.config.max = { year: date.year, month: date.month - 1, date: date.date }; } else { startDate.config.min = { year: 1900, month: 1, date: 1 }; startDate.config.max = { year: 2099, month: 12, date: 31 }; } } }); }); {% endblock %} {% block dimension_info %} {{ block.super }} dimension.width = '1000px' dimension.height = '600px' {% endblock dimension_info %} {% block grid_opt_update %} function update_side_ztree() { $('#{{ model_name }}_show_all').trigger('click'); } $.extend(true, dimension, { actions: { Import: [900, 500], } }); $.extend(true, callback, { load: { done: $.fn.resize_side_ztree_if_any }, actions: { GeneralActionNew: { done: update_side_ztree }, GeneralActionDelete: { done: update_side_ztree }, Import: { done: update_side_ztree } } }); data_grid_opts["rowClick"] = function(obj){ $("#id_{{ model_name }}SelectedShift").val(JSON.stringify(obj.data)); $("#id_shift_detail_{{ model_name }} .layui-card-header").text(obj.data.shift_alias); scheduleDetail(obj.data); } {% endblock %}
`+weekoff_color(dates[i])+`
WeekOff
'+weekday_color(dates[i])+''; var display = response[date].split(' ') var cross_day = ''; if (display[1]){ var cross_day = `${display[1]}` } var display = `${display[0]}${cross_day}` html+=`
${display}
'+weekday_color(dates[i])+'