1
0
Fork 0
HANYANG_MES/show_dir/www/ksvc/base/schedule/schedule.js

104 lines
4.5 KiB
JavaScript

let ajax_url = './schedule.ajax.php';
let calendar = new sCal("#scalendar");
calendar.cellDate = function(tgt, dayinfo){
let year = dayinfo.year,
mon = dayinfo.mon,
date = dayinfo.date;
return date;
};
calendar.cellHtml = function(tgt, dayinfo){
// let html = '<label class="form_checkbox_before rev">휴일 <input type="radio" class="dayH" name="daytype'+dayinfo.date+'" value="H" '+((!dayinfo.data && dayinfo.week === 0) || dayinfo.data?.DAY_TYPE == 'H'?'checked':'')+'></label>';
// html += '<label class="form_checkbox_before">평일 <input type="radio" class="dayD" name="daytype'+dayinfo.date+'" value="D" '+(!(!dayinfo.data && dayinfo.week === 0) && dayinfo?.data?.DAY_TYPE !== 'H'?'checked':'')+'></label>';
let html = '';
html += '<div class="day_shape">';
html += '<label class="form_checkbox_before rev">휴일 <input type="radio" class="dayH" name="daytype'+dayinfo.date+'" value="H" '+(dayinfo.data?.DAY_TYPE === 'H'?'checked':'')+'></label>';
html += '<div>';
html += '<label class="form_checkbox_before d-inline-block">평일 <input type="radio" class="dayD" name="daytype'+dayinfo.date+'" value="D" '+(dayinfo?.data?.DAY_TYPE !== 'H'?'checked':'')+'></label>';
html += '<select class="d-inline-block form-control-sm form-select ml-3 w-50 '+(dayinfo.data?.DAY_TYPE === 'H'?'d-hide':'')+'" name="dayshape'+dayinfo.date+'">';
html += Object.keys(varsSHIFT_ID).reduce( (opthtml, key) => {
let sel = (key === dayinfo.data?.DAY_SHAPE)?"selected":"";
opthtml+=`<option value="${key}" ${sel}>${varsSHIFT_ID[key]}</option>`;
return opthtml;
},'' );
html += '</select>';
html += '</div>';
html += '</div>';
//html += '<input type="text" class="dayText form-control w120 ml-4" name="daytype'+dayinfo.date+'_text" value="'+dayinfo?.data?.DAY_NM+'">';
return html;
};
let loadSchedule = function(BIZ_AREA_CD, YEAR, MON){
BIZ_AREA_CD = BIZ_AREA_CD || document.getElementById("S_BIZ_AREA_CD").value;
YEAR = YEAR || ((document.querySelector("#scalendar #selyear") && document.querySelector("#scalendar #selyear").value) || new Date().getFullYear());
MON = MON || ((document.getElementById("#scalendar #selmon") && document.getElementById("#scalendar #selmon").value) || (new Date().getMonth()+1));
let postdata = {mode: 'getSchedule', BIZ_AREA_CD, YEAR, MON};
ajax_json({
url: ajax_url,
data: postdata,
success: function (data) {
if (data.code) {
calendar.makeCal(YEAR,MON,data.data);
document.querySelectorAll(".day_shape").forEach(tgt => {
tgt.querySelectorAll('input[type=radio]').forEach( rad => rad.addEventListener('change',(e)=>{
if( e.target.checked ){
if( e.target.value === 'H' ){
tgt.querySelector('select').classList.add('d-hide');
}else{
tgt.querySelector('select').classList.remove('d-hide');
}
}
}));
});
}else{
kuls_alert(data.mesg);
}
},
error: function (request, status, error) {
kuls_alert(error.message);
},
complete: function () {
}
});
};
['click','keypress'].forEach(evt => document.querySelector("#btnInitCal").addEventListener(evt, ()=>{ //초기화
document.querySelectorAll("#scalendar .dayD").forEach( tgt => tgt.checked = true );
document.querySelectorAll("#scalendar select").forEach( tgt => {
tgt.querySelectorAll("option").forEach(t => t.selected = false );
tgt.classList.remove('d-hide');
} );
}));
['click','keypress'].forEach(evt => document.querySelector("#btnPutCal").addEventListener(evt, ()=>{ //저장
let postdata = {mode: 'putSchedule'};
postdata.BIZ_AREA_CD = document.querySelector("#S_BIZ_AREA_CD").value;
postdata.SCEDULE_DATA = [];
postdata.YEAR = document.querySelector("#scalendar #selyear").value;
postdata.MON = document.querySelector("#scalendar #selmon").value;
document.querySelectorAll("#scalendar .caltext").forEach( (t,i) => {
postdata.SCEDULE_DATA[(i+1)] = { daytype: document.forms['scalform']['daytype'+(i+1)].value, dayshape: document.forms['scalform']['dayshape'+(i+1)].value, week: t.parentElement.getAttribute('data-week')};
} );
ajax_json({
url: ajax_url,
data: postdata,
success: function (data) {
if (data.code) {
kuls_success("적용 되었습니다.");
}else{
kuls_alert(data.mesg);
}
},
error: function (request, status, error) {
kuls_alert(error.message);
},
complete: function () {
}
});
}));
loadSchedule();