친구톡 전송결과 프로그래스바 생성
This commit is contained in:
parent
5b98807cad
commit
b3c25e021e
@ -700,7 +700,7 @@ function sendTemplateInfo(){
|
||||
success: function (data) {
|
||||
console.log('data : ', data);
|
||||
|
||||
/* var status = data.status;
|
||||
var status = data.status;
|
||||
if("OK" == status){
|
||||
var resultSts = data.object.resultSts;
|
||||
var reserYn = data.object.reserYn;
|
||||
@ -715,7 +715,7 @@ function sendTemplateInfo(){
|
||||
}else{
|
||||
alert(data.message);
|
||||
return false;
|
||||
} */
|
||||
}
|
||||
|
||||
|
||||
// if(data == 'success'){
|
||||
@ -762,7 +762,7 @@ function sendTemplateInfo(){
|
||||
// $('.loading_layer').removeClass('active');
|
||||
|
||||
// 프로그래스 바 종료
|
||||
progressComplete();;
|
||||
progressComplete();
|
||||
}
|
||||
,error: function (e) {
|
||||
console.log("ERROR : ", e);
|
||||
|
||||
@ -963,6 +963,8 @@ function fn_sendMsgData(){
|
||||
console.log("최종 formData:", JSON.stringify(formData));
|
||||
|
||||
|
||||
// 프로그래스파 시간을 위한 계산
|
||||
var estimtedTime = calculateEstimatedTime(tableL.getRows().length);
|
||||
|
||||
|
||||
$.ajax({
|
||||
@ -971,10 +973,25 @@ function fn_sendMsgData(){
|
||||
, data: JSON.stringify(formData)
|
||||
, contentType: 'application/json'
|
||||
, dataType: 'json'
|
||||
, success: function (returnData) {
|
||||
, success: function (data) {
|
||||
console.log('data : ', data);
|
||||
|
||||
console.log('returnData : ', returnData);
|
||||
var status = data.status;
|
||||
if("OK" == status){
|
||||
var resultSts = data.object.resultSts;
|
||||
var reserYn = data.object.reserYn;
|
||||
var resText = (reserYn === 'Y') ? '예약' : '발송';
|
||||
|
||||
$('.pop_msg_success').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
|
||||
$('.pop_msg_success .msg_text').html(resText+" 성공 : <strong>"+ resultSts + "</strong>건의<br>친구톡이 " + resText + " 되었습니다.");
|
||||
|
||||
}else if("UNAUTHORIZED" == status){
|
||||
alert(data.message);
|
||||
location.reload();
|
||||
}else{
|
||||
alert(data.message);
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
if(status == 'success'){
|
||||
@ -1012,11 +1029,13 @@ function fn_sendMsgData(){
|
||||
}
|
||||
,beforeSend : function(xmlHttpRequest) {
|
||||
//로딩창 show
|
||||
$('.loading_layer').addClass('active');
|
||||
// $('.loading_layer').addClass('active');
|
||||
progressStart(estimtedTime);
|
||||
}
|
||||
,complete : function(xhr, textStatus) {
|
||||
//로딩창 hide
|
||||
$('.loading_layer').removeClass('active');
|
||||
// $('.loading_layer').removeClass('active');
|
||||
progressComplete();
|
||||
}
|
||||
,error: function (e) {
|
||||
console.log("ERROR : ", e);
|
||||
@ -1026,6 +1045,74 @@ function fn_sendMsgData(){
|
||||
|
||||
}
|
||||
|
||||
//프로그레스바
|
||||
var start, change;
|
||||
var progressInterval = null; // 전역 변수로 타이머 ID 관리
|
||||
function progressStart(time) {
|
||||
// 기존 타이머 정지 및 초기화
|
||||
if (progressInterval !== null) {
|
||||
clearInterval(progressInterval); // 이전 타이머 정지
|
||||
progressInterval = null; // 타이머 ID 초기화
|
||||
}
|
||||
resetProgressBar(); // 프로그레스바 초기화
|
||||
|
||||
// 프로그레스바 보이기
|
||||
$(".progress_bar_wrap").css("display", "flex");
|
||||
|
||||
// 프로그레스바 요소 가져오기
|
||||
var timeText = document.querySelector(".time_text");
|
||||
var bar = document.querySelector(".change_bar");
|
||||
|
||||
// 초기 상태 설정
|
||||
var width = 1;
|
||||
var totalTime = time * 1000; // 총 실행 시간 (밀리초)
|
||||
var cmpWid = totalTime / 100; // width 증가 간격 (밀리초)
|
||||
|
||||
// 새 타이머 시작
|
||||
progressInterval = setInterval(changeWidth, cmpWid);
|
||||
|
||||
function changeWidth() {
|
||||
if (width >= 100) {
|
||||
// 프로그레스바 100% 도달
|
||||
clearInterval(progressInterval); // 타이머 종료
|
||||
progressInterval = null; // 타이머 ID 초기화
|
||||
|
||||
timeText.innerHTML = "100%";
|
||||
|
||||
setTimeout(function () {
|
||||
// 100% 표시 후 "잠시만 기다려주세요" 변경
|
||||
timeText.innerHTML = "잠시만 기다려주세요...";
|
||||
$(".time_text").addClass("animation");
|
||||
}, 1000);
|
||||
} else {
|
||||
// 프로그레스바 진행
|
||||
width++;
|
||||
bar.style.width = width + "%";
|
||||
timeText.innerHTML = width + "%";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//선택된 데이터의 길이에 따라 예상 시간 계산 함수
|
||||
function calculateEstimatedTime(selectedCount) {
|
||||
//기준값
|
||||
// const processTimePerBatch = 130; // 130초
|
||||
|
||||
|
||||
// 30만건 기준 10분으로 기준을 잡아서
|
||||
// 시간계산함
|
||||
const processTimePerBatch = 600;
|
||||
const batchSize = 300000;
|
||||
|
||||
// 1건당 처리 시간
|
||||
const timePerRecord = processTimePerBatch / batchSize;
|
||||
|
||||
// 예상 시간 계산
|
||||
const estimatedTimeInSeconds = selectedCount * timePerRecord;
|
||||
|
||||
return estimatedTimeInSeconds.toFixed(2);
|
||||
}
|
||||
|
||||
//빈 값이나 null 값을 제거하는 함수
|
||||
function removeEmptyValues(obj) {
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
@ -1247,13 +1334,7 @@ function goToKakaoTestPopUp(){
|
||||
|
||||
function msgResultLink(){
|
||||
var reserYn = $("input[name=reserYn]:checked").val(); // 예약 발송 여부 확인
|
||||
if(reserYn == 'Y'){
|
||||
|
||||
location.href="/web/mjon/reservmsg/selectReservKaKaoView.do";
|
||||
|
||||
}else{
|
||||
location.href="/web/kakao/sent/selectKakaoSentView.do";
|
||||
}
|
||||
location.href="/web/kakao/sent/selectKakaoSentView.do";
|
||||
}
|
||||
|
||||
function updateButtons(){
|
||||
@ -1270,6 +1351,19 @@ function updateButtons(){
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="progress_bar_wrap">
|
||||
<div class="progress_box">
|
||||
<p class="time_text">0%</p>
|
||||
<div class="bar">
|
||||
<span class="change_bar"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn_wrap">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="inner">
|
||||
<div class="send_top">
|
||||
<!-- tab button -->
|
||||
|
||||
Loading…
Reference in New Issue
Block a user