forked from HANYANG/HANYANG_MES
104 lines
4.5 KiB
JavaScript
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(); |