Files
madeu_crm/src/main/resources/static/js/web/contentsBbs/ContentsBbsUpd.js

410 lines
14 KiB
JavaScript
Raw Normal View History

2025-10-18 11:06:19 +09:00
/****************************************************************************
* 이벤트 조회
****************************************************************************/
function fn_selectWebTreatmentPetit(){
if(true != fn_emptyCheck(postNo)) {
modalEvent.warning("수정", "이벤트 정보가 없습니다.");
return;
}
let formData = new FormData();
formData.append("menuClass", menuClass);
formData.append("categoryDivCd", categoryDivCd);
formData.append("categoryNo", categoryNo);
formData.append("postNo", postNo);
$.ajax({
url: encodeURI('/contentsBbs/getContentsBbs.do'),
data: formData,
dataType: "json",
processData: false,
contentType: false,
type: 'POST',
async: true,
success: function(rst){
if('0'==rst.msgCode){
let data = rst.detail;
$("select[name=category]").val(data.categoryNo).prop("selected", true);
$("#categoryNo").val(data.categoryNo);
$("#title").val(data.title);
$("#content").val(data.content);
$("#hashtag").val(data.hashtag);
$("#thumbnailBottomTxt").val(data.thumbnailBottomTxt);
$("#thumbnailImg").attr("src", CDN_URL + data.thumbnailImgPath);
$("#contentsImg").attr("src", CDN_URL + data.contentImgPath);
$("#oldCrmItemId").val(data.oldCrmItemId);
2025-10-24 21:27:08 +09:00
$("#ordNo").val(data.ordNo);
2025-10-18 11:06:19 +09:00
var htmlstring = '';
rst.treatmentList.forEach((item, i) => {
htmlstring += `<div id="treatment${i}">
<input type="checkbox" id="${item.muTreatmentProcedureId}" name="treatment">
<input type="hidden" name="treatmentprocedurelist" value="${item.muTreatmentProcedureId}">
<input type="hidden" name="treatmentlist" value="${item.muTreatmentId}">
<label for="${item.muTreatmentProcedureId}">${item.treatmentProcedureName} - ${num2won(item.price)} - ${num2won(item.discountPrice)}</label>
</div>`;
});
$('#treatmentlist').append(htmlstring);
}
else{
modalEvent.danger("수정 오류", eventData.msgDesc);
}
},
error : function(xhr, status, error) {
modalEvent.danger("수정 오류", "수정 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
},
beforeSend:function(){
},
complete:function(){
}
});
}
function num2won(x){
if (typeof x === 'undefined' || x === null) return '';
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
/****************************************************************************
* 이벤트 수정
****************************************************************************/
function fn_updateWebTreatmentPetit(){
if("Y"!=insertUseYn){
modalEvent.warning("", "등록 권한이 없습니다.");
return false;
}
let title = $("#title").val();
let content = $("#content").val();
let hashtag = $("#hashtag").val();
let thumbnailBottomTxt = $("#thumbnailBottomTxt").val();
let categoryNo = $("#categoryNo").val();
var treatmentlen = $("input[name=treatmentlist]").length;
var treatmentlist = new Array(treatmentlen);
for(var i=0; i<treatmentlen; i++){
treatmentlist[i] = $("input[name=treatmentlist]").eq(i).val();
}
var treatmentprocedurelen = $("input[name=treatmentprocedurelist]").length;
var treatmentprocedurelist = new Array(treatmentlen);
for(var i=0; i<treatmentprocedurelen; i++){
treatmentprocedurelist[i] = $("input[name=treatmentprocedurelist]").eq(i).val();
}
//let eventStartDate = $("#eventStartDate").val();
//let eventEndDate = $("#eventEndDate").val();
let file = $("#file")[0].files[0];
let content_file = $("#content_file")[0].files[0];
if(true != fn_emptyCheck(categoryNo)) {
modalEvent.warning("등록", "카테고리를 입력하세요.");
return;
}
if(true != fn_emptyCheck(title)) {
modalEvent.warning("등록", "제목을 입력하세요.");
return;
}
if(true != fn_emptyCheck(content)) {
modalEvent.warning("등록", "내용을 입력하세요.");
return;
}
if(true != fn_emptyCheck(hashtag)) {
modalEvent.warning("등록", "해시태그를 입력하세요.");
return;
}
if(true != fn_emptyCheck(thumbnailBottomTxt)) {
modalEvent.warning("등록", "썸네일 하단 내용을 입력하세요.");
return;
}
/*
if(true != fn_emptyCheck(eventStartDate)) {
modalEvent.warning("등록", "이벤트 시작일자를 입력하세요.");
return;
}
if(true != fn_emptyCheck(eventEndDate)) {
modalEvent.warning("등록", "이벤트 종료일자를 입력하세요.");
return;
}
*/
if(true != fn_emptyCheck(file)) {
if($(".img_box > img").length > 0){
}else{
modalEvent.warning("등록", "썸네일 정보가 없습니다.");
return;
}
}else{
for(let i=0; i<file.length; i++){
let fileSize = file[i].size;
if(fileSize > fn_maxFileSize()){
modalEvent.warning("", "파일정보 용량이 50MB를 넘습니다. 업로드가 불가능합니다.");
return;
}
}
}
if(true != fn_emptyCheck(content_file)) {
if($(".file_box").text() != ''){
}else{
modalEvent.warning("등록", "컨텐츠 정보가 없습니다.");
return;
}
}else{
for(let i=0; i<content_file.length; i++){
let fileSize = content_file[i].size;
if(fileSize > fn_maxFileSize()){
modalEvent.warning("", "파일정보 용량이 50MB를 넘습니다. 업로드가 불가능합니다.");
return;
}
}
}
modalEvent.info("수정", categorytitle + " 정보를 수정하시겠습니까?", function(){
let formData = new FormData();
formData.append("menuClass", menuClass);
formData.append("categoryDivCd", categoryDivCd);
formData.append("categoryNo", categoryNo);
formData.append("postNo", postNo);
formData.append("title", title);
formData.append("content", content);
formData.append("hashtag", hashtag);
formData.append("thumbnailBottomTxt", thumbnailBottomTxt);
formData.append("treatmentlist", treatmentlist);
formData.append("treatmentprocedurelist", treatmentprocedurelist);
//formData.append("eventStartDate", eventStartDate);
//formData.append("eventEndDate", eventEndDate);
formData.append("file", file);
formData.append("content_file", content_file);
formData.append("oldCrmItemId", $("#oldCrmItemId").val());
2025-10-24 21:27:08 +09:00
formData.append("ordNo", $("#ordNo").val());
2025-10-18 11:06:19 +09:00
$.ajax({
url: encodeURI('/contentsBbs/modContentsBbs.do'),
data: formData,
dataType: "json",
processData: false,
contentType: false,
type: 'POST',
async: true,
success: function(data){
if('0'==data.msgCode){
modalEvent.success("등록 성공", data.msgDesc, function(){
fn_selectListWebTreatmentPetitIntro();
});
}
else{
modalEvent.danger("등록 오류", data.msgDesc);
}
},
error : function(xhr, status, error) {
modalEvent.danger("등록 오류", "등록 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
},
beforeSend:function(){
},
complete:function(){
}
});
});
}
/****************************************************************************
* html 에디터 이미지 업로드시
****************************************************************************/
function uploadSummernoteImageFileNoticeInsert(files, editor){
Object.values(files).forEach(file => {
let formData = new FormData();
formData.append('menuClass', menuClass);
formData.append('file', file);
$.ajax({
url: encodeURI('/webtreatmentpetit/uploadFile.do'),
data: formData,
dataType: "json",
processData: false,
contentType: false,
type: 'POST',
async: true,
success: function (data) {
if ('0' == data.msgCode) {
$(editor).summernote('insertImage', data.rows.filePath, function ($image) {
});
}
},
error: function (xhr, status, error) {
modalEvent.danger('오류', '이미지 업로드 중 오류가 발생했습니다.');
},
beforeSend: function () {
// 로딩열기
$(".loading-image-layer").show();
},
complete: function () {
// 로딩닫기
$(".loading-image-layer").hide();
}
});
})
}
/****************************************************************************
* 썸네일 이미지 미리보기
****************************************************************************/
function fn_filePreview(width, height, obj){
let file = "";
if(obj == '.img_box'){
file = $("#file")[0].files[0];
} else {
file = $("#content_file")[0].files[0];
}
if(file){
$(obj).html('');
const reader = new FileReader();
reader.onload = function (e) {
// 이미지 요소를 생성하고 미리보기 추가
const img = document.createElement('img');
img.src = e.target.result;
img.style.width = width; // 원하는 크기로 조정
img.style.height = height;
$(obj).append(img);
};
// 파일을 읽기 시작
reader.readAsDataURL(file);
}
}
/****************************************************************************
* 배너 이미지 삭제
****************************************************************************/
function fn_removePreview(){
$("#file").val('');
$('.img_box').html('');
}
/****************************************************************************
* 배너 이미지 미리보기
****************************************************************************/
function fn_fileContentPreview(){
const file = $("#content_file")[0].files[0];
if(file){
$('.file_box').html(file.name);
}
}
/****************************************************************************
* 배너 이미지 삭제
****************************************************************************/
function fn_removeContentPreview(){
$("#content_file").val('');
$('.file_box').html('');
}
/****************************************************************************
* 리스트 화면으로 이동.
****************************************************************************/
function fn_selectListWebTreatmentPetitIntro(){
if("Y"==selectUseYn){
let pagingParam = "?menuClass="+menuClass;
pagingParam += "&categoryDivCd="+categoryDivCd;
fn_leftFormAction("/contentsBbs/moveContentsBbsList.do"+pagingParam);
}else{
modalEvent.warning("", "조회 권한이 없습니다.");
return false;
}
}
/****************************************************************************
* 페이지 init
****************************************************************************/
function fn_pageInit(){
// 날짜 datepicker
fn_searchDatePicker("#eventStartDate", "#eventEndDate");
$('#summernote').summernote({
height: 540,
callbacks: { //여기 부분이 이미지를 첨부하는 부분
onImageUpload : function(files) {
uploadSummernoteImageFileNoticeInsert(files, this);
}
},
});
fn_selectWebTreatmentPetit();
}
/****************************************************************************
* 페이지 event
****************************************************************************/
function fn_pageEvent(){
// 검색 input
$('.btnCancle').on("click", function(){
fn_selectListWebTreatmentPetitIntro();
});
$('.btnSave').on("click", function(){
fn_updateWebTreatmentPetit();
});
$('#delete_btn').on("click", function(){
fn_removePreview();
});
$('#file').on('change', function(e) {
fn_filePreview('800px', '450px', '.img_box');
})
$('#content_delete_btn').on("click", function(){
fn_removeContentPreview();
});
$('#content_file').on('change', function(e) {
fn_filePreview('100%', '100%', '.file_box');
})
}
/****************************************************************************
* 시술 목록 팝업
****************************************************************************/
function listOpen(){
let reqParam = {};
treatmentSelectModal.popup(function (obj, reqParam) {
const childDivCount = $("#treatmentlist > div").length;
if($("#" + obj.treatmentProcedureId).length > 0){
modalEvent.warning("", "이미 시술정보가 있습니다.");
return;
}
var htmlstring = `<div id="treatment`+childDivCount+`">
<input type="checkbox" id="`+obj.treatmentProcedureId+`" name="treatment">
<input type="hidden" name="treatmentprocedurelist" value="`+obj.treatmentProcedureId+`">
<input type="hidden" name="treatmentlist" value="`+obj.treatmentId+`">
<label for="`+obj.treatmentProcedureId+`">`+obj.treatmentNm + `-` + obj.price.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + `-` + obj.discountPrice.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") +`</label>
</div>`;
$('#treatmentlist').append(htmlstring);
}, reqParam);
}
function fn_removeRow(){
 $('input:checkbox[name="treatment"]').each(function() {     
if(this.checked){//checked 처리된 항목의 값           
$(this).parent().remove();   
} 
});
}
$(function(){
// 페이지 init
fn_pageInit();
// 페이지 event
fn_pageEvent();
});