Files
sake/src/main/webapp/WEB-INF/views/mngr/goods/goodsmngr/BndeUpdtU.jsp
2025-12-16 16:18:36 +09:00

1112 lines
59 KiB
Plaintext

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%--
Class Name : BndeUpdtU.jsp
Description : 상품 일괄 업데이트
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-09-08 유재현 최초생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>일반 관리자</title>
<%-- 공통 include --%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
</head>
<script>
$(document).ready(function () {
const resveGoodsTable = document.getElementById('resveGoods');
disableTableInputs(resveGoodsTable);
});
/* ********************************************************
* 예약 판매 설정 enable-disable
******************************************************** */
function handleRadioClick(radio) {
const firstRadio = document.querySelector('input[name="goodsSttusCd"]:first-of-type');
const checkbox = document.getElementById('goodsExpsrTy02');
const resveGoodsTable = document.getElementById('resveGoods');
if (radio === firstRadio) {
checkbox.disabled = false;
if(checkbox.checked){
enableTableInputs(resveGoodsTable);
} else {
disableTableInputs(resveGoodsTable);
}
} else {
checkbox.disabled = true;
checkbox.checked = false; // 체크 상태 해제
disableTableInputs(resveGoodsTable);
}
}
function updateHiddenField(checkbox) {
const hiddenField = document.getElementById('goodsExpsrTy02');
const resveGoodsTable = document.getElementById('resveGoods');
//예약 판매 체크가 되어있을 때만 상태값 02
if (checkbox.checked) {
hiddenField.value = "02";
enableTableInputs(resveGoodsTable);
} else {
hiddenField.value = "01";
disableTableInputs(resveGoodsTable);
}
}
/* ********************************************************
* 노출여부 enable-disable
******************************************************** */
function handleRadioClick2(radio) {
const lastRadio = document.querySelector('#expsrCdList3')
const table = document.getElementById('expsrSet');
if (radio === lastRadio) {
enableTableInputs(table);
} else {
disableTableInputs(table);
}
}
/* ********************************************************
* 재고에 따른 판매 enable-disable
******************************************************** */
function handleRadioClickDisable(radio) {
const firstRadio = document.querySelector('input[name="invntryPolicyCd"]:first-of-type');
const inputText = document.getElementById('avlinvLmttQy');
if(radio === firstRadio) {
inputText.disabled = false;
} else {
inputText.disabled = true;
}
}
/* ********************************************************
* enable-disable
******************************************************** */
function enableTableInputs(table) {
const inputs = table.querySelectorAll('input');
inputs.forEach(input => input.disabled = false);
}
function disableTableInputs(table) {
const inputs = table.querySelectorAll('input');
inputs.forEach(input => input.disabled = true);
}
/* ********************************************************
* 일괄업데이트 AJAX
******************************************************** */
const fn_update_bnde_updt = function () {
const url = '<c:url value="/mngr/goods/goodsmngr/updateBndeUpdt"/>';
const formData = new FormData();
if ($('#hiddenForm') != null) {
$('#hiddenForm').remove();
}
/* ********************************************************
* 데이터 검증 START
******************************************************** */
//추가정보 업데이트 정보 선택 확인
const goodsAdditionUptAt = $('#goodsAdditionUptAt').prop('checked')
if(goodsAdditionUptAt){
if(fn_is_empty($('[name="infoSj"]').eq(0).val()) || fn_is_empty($('[name="infoCn"]').eq(0).val())){
$('[name="infoSj"]').eq(0).focus()
alert('추가정보를 입력해주세요')
return false;
}
}
$('[name="goodsAdditionDeleteAt"]:checked').val()
//노출예약설정 입력 확인
const expsrDvUptAt = $('#expsrDvUptAt').prop('checked')
if(expsrDvUptAt){
let hasEmptyExpsr = false;
if($('#expsrCdList3').prop('checked')){
$('#expsrSet input').each(function (){
if(fn_is_empty($(this).val())){
hasEmptyExpsr = true;
return false;
}
})
if(hasEmptyExpsr){
alert('노출예약 정보를 입력해 주세요')
return
}
}
}
// 반품교환정보 선택여부
const cmnuseInfoUptAt = $('#cmnuseInfoUptAt').prop('checked')
if(cmnuseInfoUptAt){
const cmnuseInfoInnb = $('div.cmnuseInfoInnb')
const cmnuseInfoInnbSelect = $('#cmnuseInfoInnb option:selected')
if(fn_is_empty(cmnuseInfoInnbSelect.val())){
cmnuseInfoInnb.focus()
alert('반품교환정보를 선택해 주세요')
return false;
}
}
// 배송일 선택여부
const dlvyGroupUptAt = $('#dlvyGroupUptAt').prop('checked')
if(dlvyGroupUptAt){
const dlvyGroupInnb = $('div.dlvyGroupInnb')
const dlvyGroupInnbSelect = $('#dlvyGroupInnb option:selected')
if(fn_is_empty(dlvyGroupInnbSelect.val())){
dlvyGroupInnb.focus()
alert('배송일을 선택해 주세요')
return false;
}
}
//배송안내문구 입력여부
const dlvyGuidanceWordsCnUptAt = $('#dlvyGuidanceWordsCnUptAt').prop('checked')
if(dlvyGuidanceWordsCnUptAt){
if(fn_is_empty($('#dlvyGuidanceWordsCn').val())){
$('#dlvyGuidanceWordsCn').focus()
alert('배송 안내 문구를 입력해주세요');
return false;
}
}
//입점마케팅 연동여부 선택 여부
const epIntrlckUptAt = $('#epIntrlckUptAt').prop('checked');
if(epIntrlckUptAt){
let hasEmptyEpIntrlck = true;
$('input[name="epIntrlckAt"]').each(function (idx){
if($(this).prop('checked')){
hasEmptyEpIntrlck = false;
}
})
if(hasEmptyEpIntrlck){
$('#naverEpIntrlckAt').focus()
alert('입점마케팅 연동여부를 선택해 주세요')
return false;
}
}
//일괄 업데이트 선택 상품 배열 저장
let goodsInnbs = [];
$('[name=relatedGoodsId]').each(function (idx) {
goodsInnbs.push($('[name=relatedGoodsId]').eq(idx).val());
});
//상품 선택 여부 valid
let goodChoiceAllAt = $('#goodsChoiceAll').prop('checked')?'Y':'N';
if(goodChoiceAllAt === 'N' && fn_is_empty(goodsInnbs)){
$('#goodsChoiceAll').focus()
alert('일괄 업데이트 할 상품을 선택해 주세요');
return false;
}
//상품 판매상태 수정여부
const goodsSttusUptAt = $('#goodsSttusUptAt').prop('checked')
//상품만 선택하고 수정 구분을 선택하지 않았을 경우
if((goodChoiceAllAt === 'N' && fn_is_empty(goodsInnbs)
|| (!goodsAdditionUptAt && !goodsSttusUptAt && !expsrDvUptAt && !cmnuseInfoUptAt && !dlvyGroupUptAt && !dlvyGuidanceWordsCnUptAt && !epIntrlckUptAt))){
alert('수정 하실 정보를 선택해 주세요');
return false;
}
/* ********************************************************
* 데이터 검증 END
******************************************************** */
const hiddenForm = document.createElement('form');
hiddenForm.name = 'hiddenForm';
hiddenForm.id = 'hiddenForm';
hiddenForm.method = 'post';
hiddenForm.action = '';
//상품 쇼핑몰코드
const sopmalCd = $('#sopmalCd').val()
//추가항목 배열 저장
if($('#goodsAdditionUptAt').prop('checked')){
$('[name=infoSj]').each(function (idx) {
fn_create_input('hidden', "goodsAdditionVOList[" + idx + "].infoSj", $('[name=infoSj]').eq(idx).val(), hiddenForm);
fn_create_input('hidden', "goodsAdditionVOList[" + idx + "].infoCn", $('[name=infoCn]').eq(idx).val(), hiddenForm);
});
}
fn_create_input('hidden', "goodsAdditionUptAt", $('#goodsAdditionUptAt').prop('checked')?'Y':'N', hiddenForm);
//일괄 업데이트 선택 상품 저장
fn_create_input('hidden', "goodsInnbs",goodsInnbs, hiddenForm);
//상품 선택 여부
fn_create_input('hidden', "goodsChoiceAll", goodChoiceAllAt, hiddenForm);
//판매상태 선택 여부
fn_create_input('hidden', "goodsSttusUptAt", $('#goodsSttusUptAt').prop('checked')?'Y':'N', hiddenForm);
//노출여부 선택 여부
fn_create_input('hidden', "expsrDvUptAt", $('#expsrDvUptAt').prop('checked')?'Y':'N', hiddenForm);
if($('#expsrDvUptAt').prop('checked') && $('#expsrCdList3').prop('checked')){
//노출기간
const expsrBgnDtPicker = $('#datepicker_1').val();
const expsrEndDtPicker = $('#datepicker_2').val();
if(!fn_is_empty(expsrBgnDtPicker) && !fn_is_empty(expsrEndDtPicker)){
const expsrBgnDt_time =$('#expsrBgnDt_time').val()
const expsrEndDt_time = $('#expsrEndDt_time').val()
const expsrBgnDt = expsrBgnDtPicker+' '+expsrBgnDt_time +':00'
const expsrEndDt = expsrEndDtPicker+' '+expsrEndDt_time +':00'
formData.append('expsrBgnDt', expsrBgnDt)
formData.append('expsrEndDt', expsrEndDt)
}
const expsrSetupFwords = $('#expsrSetupFwords').val();
formData.append('expsrSetupFwords', expsrSetupFwords)
}
//반품교환정보 선택 여부
fn_create_input('hidden', "cmnuseInfoUptAt", $('#cmnuseInfoUptAt').prop('checked')?'Y':'N', hiddenForm);
//배송일 선택 여부
fn_create_input('hidden', "dlvyGroupUptAt", $('#dlvyGroupUptAt').prop('checked')?'Y':'N', hiddenForm);
//배송안내문구 여부
fn_create_input('hidden', "dlvyGuidanceWordsCnUptAt", $('#dlvyGuidanceWordsCnUptAt').prop('checked')?'Y':'N', hiddenForm);
//입점마케팅 선택 여부
fn_create_input('hidden', "epIntrlckUptAt", $('#epIntrlckUptAt').prop('checked')?'Y':'N', hiddenForm);
//입점마케팅 - 네이버연동여부
formData.append('naverEpIntrlckAt', $('#naverEpIntrlckAt').prop('checked')?$('#naverEpIntrlckAt').val():'N')
//입점마케팅 - 구글연동여부
formData.append('googleEpIntrlckAt', $('#googleEpIntrlckAt').prop('checked')?$('#googleEpIntrlckAt').val():'N')
//입점마케팅 - 메타연동여부
formData.append('metaEpIntrlckAt', $('#metaEpIntrlckAt').prop('checked')?$('#metaEpIntrlckAt').val():'N')
//입점마케팅 - 모비온연동여부
formData.append('mobionEpIntrlckAt', $('#mobionEpIntrlckAt').prop('checked')?$('#mobionEpIntrlckAt').val():'N')
document.body.appendChild(hiddenForm);
$('#listForm').serializeArray().forEach(function (item) {
formData.append(item.name, item.value);
});
// hidden form data append
$('#hiddenForm').serializeArray().forEach(function (item) {
formData.append(item.name, item.value);
});
if (confirm('상품을 <spring:message code="confirm.common.update"/>')) {
$.ajax({
type: 'post',
enctype: 'multipart/form-data',
url: url,
data: formData,
contentType: false,
processData: false,
success: function (data) {
let str = JSON.parse(data.resBody.result);
if (str.message === 'success') {
alert('<spring:message code="success.common.update"/>');
window.location.reload()
} else {
alert('<spring:message code="fail.common.update"/>');
}
}
});
}
};
function convertToDate(dateStr) {
// 입력된 문자열을 Date 객체로 변환
const date = new Date(dateStr);
// 유효하지 않은 날짜인 경우 null 반환
if (isNaN(date.getTime())) {
return null;
}
return date;
}
//마지막 컴마 지우기
const remove_Last_Comma = function removeLastComma(str) {
const lastCommaIndex = str.lastIndexOf(',');
if (lastCommaIndex !== -1) {
return str.substring(0, lastCommaIndex);
} else {
return str;
}
}
const fn_create_input = function (type, name, value, tgtForm) {
const input = document.createElement('input');
input.setAttribute("type", type);
input.setAttribute("name", name);
input.setAttribute("value", value);
tgtForm.appendChild(input);
}
/* ********************************************************
* 목록 조회
******************************************************** */
const fn_select_list = function () {
window.location.href = '/mngr/goods/goodsmngr/selectGoodsListForm?pageIndex=1'
};
/* ********************************************************
* 추가 항목 행 추가
******************************************************** */
const fn_add_box = function (_target) {
let trClone = '';
let target = '#' + _target;
$(target + 'NoData').hide();
trClone = `<tr>
<td><input class="input-text full" type="text" id="infoSj" name="infoSj"></td>
<td><input class="input-text full" type="text" id="infoCn" name="infoCn"></td>
<td><button class="circle-btn delete" onclick="fn_remove_row(this); return false;">
<span class="visually-hidden">삭제</span></button></td>
</tr>`;
$(target).append(trClone);
//행 추가 후, tableDnd 업데이트
$(target + '-row-add').tableDnDUpdate();
$(target + 'NoData').hide();
}
/* ********************************************************
* 상품 검색 팝업 > 상품 목록 조회
******************************************************** */
const fn_goods_search_popup_list = function (pageIndex, selected) {
let dataStr;
if (!pageIndex) {
$('#pageIndex').val(1);
} else {
$('#pageIndex').val(pageIndex);
}
$('#popupListForm').find('input[name=pageIndex]').eq(0).val(pageIndex);
const popupListForm = $("#popupListForm").serialize();
$.ajax({
type: "post",
url: "<c:url value="/mngr/goods/goodsmngr/selectGoodsSrchPopupList"/>",
data: popupListForm,
success: function (resultHtml) {
$('#goodsList').empty();
$('#goodsList').html(resultHtml);
}
});
}
/* ********************************************************
* 상품 검색 팝업 배열 값 불러오기
******************************************************** */
var selected = [];
function fn_select_goods_search() {
selected = [];
$('#appendList tr').each(function () {
const goodsId = $(this).attr('id').replace('choiseListId', '');
const goodsImg = $(this).find('input[name="goodsImgCours"]').val();
const goodsNm = $(this).find('input[name="goodsNm"]').val();
const goodsPrice = $(this).find('input[name="slepric"]').val();
const goodsSttusNm = $(this).find('input[name="goodsSttusNm"]').val();
const expsrNm = $(this).find('input[name="expsrNm"]').val();
selected.push({
goodsId: goodsId,
goodsImg: goodsImg,
goodsNm: goodsNm,
goodsPrice: goodsPrice,
goodsSttusNm: goodsSttusNm,
expsrNm: expsrNm
});
});
// 각 화면에 맞춰서 HTML 변경 START
var tableBody = $("#parentGoodsContainer");
tableBody.empty();
selected.forEach((good, index) => {
var productHtml = `
<div class="product-group__item">
<input type="hidden" id="relatedGoodsId" name="relatedGoodsId" value="` + good.goodsId + `">
<input type="hidden" id="goodsSttusNm" name="goodsSttusNm" value="` + good.goodsSttusNm + `">
<span class="product-group__item-number">` + (index + 1) + `</span>
<div class="product-group__image">
<img src="` + good.goodsImg + `" width="140" alt="` + good.goodsNm + `">
</div>
<div class="product-group__description">
<p>` + good.goodsNm + `</p>
<p class="product-group__description-price">` + fn_format_comma(good.goodsPrice) + `원</p>
</div>
</div>
`;
tableBody.append(productHtml);
});
// 각 화면에 맞춰서 HTML 변경 END
fn_close_modal('product-search');
}
const fn_comma_del_str_to_number = function (str) {
// null이나 undefined인 경우 0을 반환
if (str === null || str === undefined || str.trim() === '') {
return 0;
}
// 쉼표를 제거하고 숫자로 변환
const numberWithoutCommas = str.replace(/,/g, '');
const number = parseFloat(numberWithoutCommas);
// 변환된 값이 NaN인 경우 0을 반환
if (isNaN(number)) {
return 0;
}
return number;
}
// 하이픈 뒤에 숫자한자리만 남기기
function removeTrailingNumber(id) {
if(fn_is_empty(id)){
return '0';
}else{
return id.replace(/-(\d)\d*$/, '-$1');
}
}
</script>
<body>
<%@ include file="/WEB-INF/views/comm/mngr/Header.jsp"%>
<main class="main">
<%@ include file="/WEB-INF/views/comm/mngr/Left.jsp"%>
<div class="content">
<div class="content__inner">
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
<div class="page-title">
<h2 class="page-title__title">일반 상품 일괄 업데이트</h2>
<div class="page-title__btn-container">
<button onclick="fn_select_list()" class="btn outline"><spring:message
code="button.list"/></button>
<button class="btn primary" onclick="fn_update_bnde_updt();"><spring:message code="button.update"/></button>
</div>
</div>
<div class="content-tab content-tab__fixed">
<a href="#section02" class="content-tab__scroll-btn">기본정보</a>
<a href="#section03" class="content-tab__scroll-btn">판매정보</a>
<%-- <a href="#section04" class="content-tab__scroll-btn">옵션</a>--%>
<%-- <a href="#section06" class="content-tab__scroll-btn">상품 사진</a>--%>
<%-- <a href="#section07" class="content-tab__scroll-btn">상세 설명</a>--%>
<%-- <a href="#section08" class="content-tab__scroll-btn">모바일용 상세 설명</a>--%>
<a href="#section09" class="content-tab__scroll-btn">반품교환정보</a>
<a href="#section10" class="content-tab__scroll-btn">배송</a>
<a href="#section11" class="content-tab__scroll-btn">입점 마케팅</a>
<%-- <a href="#section13" class="content-tab__scroll-btn">추천 상품</a>--%>
</div>
<form id="listForm" method="post" action="" enctype="multipart/form-data">
<input type="hidden" id="goodsKndCd" name="goodsKndCd" value="01">
<spring:eval expression="@environment.getProperty('spring.servlet.multipart.max-file-size')" var="maxFileSize"/>
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.extensions.images')" var="acceptFileExtensions"/>
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
<%-- <section id="section01" class="content-section content-scroll-detect content-fold">--%>
<%-- <div class="content-fold__header">--%>
<%-- <h3 class="content-section__title">카테고리</h3>--%>
<%-- <button class="content-fold__btn"><span class="visually-hidden">접기</span></button>--%>
<%-- </div>--%>
<%-- <div class="content-fold__content">--%>
<%-- <div class="table-wrapper">--%>
<%-- <table class="table">--%>
<%-- <caption>카테고리</caption>--%>
<%-- <colgroup>--%>
<%-- <col style="width: 12%;">--%>
<%-- <col>--%>
<%-- </colgroup>--%>
<%-- <tbody>--%>
<%-- <tr>--%>
<%-- <th>카테고리 선택</th>--%>
<%-- <td>--%>
<%-- <div class="td-inner">--%>
<%-- <div class="table-wrapper">--%>
<%-- <table class="table vertical">--%>
<%-- <caption>카테고리</caption>--%>
<%-- <colgroup>--%>
<%-- <col style="width: 25%;">--%>
<%-- <col style="width: 25%;">--%>
<%-- <col style="width: 25%;">--%>
<%-- <col style="width: 25%;">--%>
<%-- </colgroup>--%>
<%-- <thead>--%>
<%-- <tr>--%>
<%-- <th>1차 카테고리</th>--%>
<%-- <th>2차 카테고리</th>--%>
<%-- <th>3차 카테고리</th>--%>
<%-- <th>4차 카테고리</th>--%>
<%-- </tr>--%>
<%-- </thead>--%>
<%-- <tbody>--%>
<%-- <tr>--%>
<%-- <td>--%>
<%-- <select class="category-select" multiple id="ctgryDepth1" title="1차 카테고리">--%>
<%-- <c:forEach items="${resultMap.goodsCategoryList}" var="goodsCategory" varStatus="status">--%>
<%-- <option value="${goodsCategory.ctgryId}">${goodsCategory.ctgryNm}</option>--%>
<%-- </c:forEach>--%>
<%-- </select>--%>
<%-- </td>--%>
<%-- <td>--%>
<%-- <select class="category-select" multiple id="ctgryDepth2" title="2차 카테고리"> </select>--%>
<%-- </td>--%>
<%-- <td>--%>
<%-- <select class="category-select" multiple id="ctgryDepth3" title="3차 카테고리"></select>--%>
<%-- </td>--%>
<%-- <td>--%>
<%-- <select class="category-select" multiple id="ctgryDepth4" title="4차 카테고리"></select>--%>
<%-- </td>--%>
<%-- </tr>--%>
<%-- </tbody>--%>
<%-- </table>--%>
<%-- <div class="form-control-container mt-10">--%>
<%-- <div class="left"></div>--%>
<%-- <div class="center">--%>
<%-- <button class="btn primary" id="selectCategoriesBtn">선택</button>--%>
<%-- </div>--%>
<%-- <div class="right">--%>
<%-- </div>--%>
<%-- </div>--%>
<%-- </div>--%>
<%-- </div>--%>
<%-- </td>--%>
<%-- </tr>--%>
<%-- <tr>--%>
<%-- <th>선택한 카테고리</th>--%>
<%-- <td>--%>
<%-- <div class="td-inner">--%>
<%-- <div class="table-wrapper">--%>
<%-- <table class="table vertical" id="selectedCategoriesTable">--%>
<%-- <caption>선택한 카테고리</caption>--%>
<%-- <colgroup>--%>
<%-- <col style="width: 100px;">--%>
<%-- <col style="width: auto;">--%>
<%-- <col style="width: 200px;">--%>
<%-- </colgroup>--%>
<%-- <thead>--%>
<%-- <tr>--%>
<%-- <th>대표</th>--%>
<%-- <th>카테고리</th>--%>
<%-- <th>삭제</th>--%>
<%-- </tr>--%>
<%-- </thead>--%>
<%-- <tbody>--%>
<%-- <!-- 선택한 카테고리들이 여기에 추가됩니다 -->--%>
<%-- </tbody>--%>
<%-- </table>--%>
<%-- </div>--%>
<%-- </div>--%>
<%-- </td>--%>
<%-- </tr>--%>
<%-- </tbody>--%>
<%-- </table>--%>
<%-- </div>--%>
<%-- </div>--%>
<%-- </section>--%>
<section id="section02" class="content-section content-scroll-detect content-fold">
<div class="content-fold__header">
<h3 class="content-section__title">기본정보</h3>
<button class="content-fold__btn"><span class="visually-hidden">접기</span></button>
</div>
<div class="content-fold__content">
<div class="table-wrapper">
<table class="table">
<caption>기본정보</caption>
<colgroup>
<col style="width: 12%;">
<col style="width: 38%">
<col style="width: 12%;">
<col style="width: 38%">
</colgroup>
<tbody>
<tr>
<th>
<div class="b-checkbox-container inner">
추가정보
<label class="b-checkbox checkbox">
<input type="checkbox" id="goodsAdditionUptAt">
<span class="check"></span>
<span class="control-label"></span>
</label>
</div>
</th>
<td colspan="3">
<div class="td-inner">
<div class="custom-radio-container mt-10">
<div class="custom-radio" style="display: flex;align-items: center;justify-content: center;height: 24px;">
<input type="radio" id="goodsAddition_delete_N" name="goodsAdditionDeleteAt" value="N" onclick="handleRadioClick(this)" checked="checked">
<label for="goodsAddition_delete_N"><span>현재 추가정보 유지하면서 업데이트</span> </label>
</div>
<div class="custom-radio" style="display: flex;align-items: center;justify-content: center;height: 24px;">
<input type="radio" id="goodsAddition_delete_Y" name="goodsAdditionDeleteAt" value="Y" onclick="handleRadioClick(this)">
<label for="goodsAddition_delete_Y"><span>현재 추가정보 삭제 후 업데이트</span></label>
</div>
</div>
<div class="table-wrapper">
<table class="table vertical" id="goodsAddition-row-add">
<caption>추가정보</caption>
<colgroup>
<col style="width: 320px;">
<col style="width: auto;">
<col style="width: 200px;">
</colgroup>
<thead>
<tr>
<th>추가 정보명</th>
<th>내용</th>
<th>
<button class="circle-btn add" onclick="fn_add_box('goodsAddition'); return false;"><span class="visually-hidden">추가</span></button>
</th>
</tr>
</thead>
<tbody id="goodsAddition">
<tr id="goodsAdditionNoData">
<td colspan="100%">추가 항목이 없습니다.</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
<section id="section03" class="content-section content-scroll-detect content-fold">
<div class="content-fold__header">
<h3 class="content-section__title">판매정보</h3>
<button class="content-fold__btn"><span class="visually-hidden">접기</span></button>
</div>
<div class="content-fold__content">
<div class="table-wrapper">
<table class="table">
<caption>판매정보</caption>
<colgroup>
<col style="width: 12%;">
<col>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>
<div class="b-checkbox-container inner">
판매 상태
<label class="b-checkbox checkbox">
<input type="checkbox" id="goodsSttusUptAt">
<span class="check"></span>
<span class="control-label"></span>
</label>
</div>
</th>
<td colspan="2">
<div class="td-inner">
<div class="custom-radio-container">
<c:forEach items="${resultMap.goodsDftinfoSttusList}" var="goodsDftinfoSttus" varStatus="status">
<div class="custom-radio">
<input type="radio" id="${goodsDftinfoSttus.cd}" name="goodsSttusCd" value="${goodsDftinfoSttus.cd}"
<c:if test="${status.first}">checked="checked"</c:if>
onclick="handleRadioClick(this)">
<label for="${goodsDftinfoSttus.cd}">${goodsDftinfoSttus.cdNm}</label>
</div>
<%-- <c:if test="${status.first}">--%>
<%-- <span class="parentheses">(</span>--%>
<%-- <div class="b-checkbox-container inner">--%>
<%-- <label class="b-checkbox checkbox">--%>
<%-- <input type="checkbox" id="goodsExpsrTy02" name="goodsExpsrTy02" onclick="updateHiddenField(this)">--%>
<%-- <span class="check"></span>--%>
<%-- <span class="control-label">예약 판매 사용</span>--%>
<%-- </label>--%>
<%-- </div>--%>
<%-- <span class="parentheses">)</span>--%>
<%-- </c:if>--%>
</c:forEach>
</div>
</div>
</td>
</tr>
<%-- <tr id="resveGoods">--%>
<%-- <th>예약 판매 설정</th>--%>
<%-- <td colspan="3">--%>
<%-- <div class="td-inner">--%>
<%-- <div class="table-wrapper">--%>
<%-- <table class="table">--%>
<%-- <caption>예약 판매 설정</caption>--%>
<%-- <colgroup>--%>
<%-- <col style="width: 16%;">--%>
<%-- <col>--%>
<%-- </colgroup>--%>
<%-- <tbody>--%>
<%-- <tr>--%>
<%-- <th>예약 상품 배송일자</th>--%>
<%-- <td>--%>
<%-- <div class="td-inner">--%>
<%-- <input type="text" id="datepicker_3"--%>
<%-- class="datepicker" title="시작 날짜 선택"--%>
<%-- autocomplete="off" name="resveGoodsDlvyDe">--%>
<%-- </div>--%>
<%-- </td>--%>
<%-- </tr>--%>
<%-- <tr>--%>
<%-- <th>예약 상품 안내문구</th>--%>
<%-- <td>--%>
<%-- <div class="td-inner">--%>
<%-- <input class="input-text xl" type="text"--%>
<%-- id="resveGoodsGuidanceWordsCn" name="resveGoodsGuidanceWordsCn"--%>
<%-- title="예약 상품 안내문구">--%>
<%-- </div>--%>
<%-- </td>--%>
<%-- </tr>--%>
<%-- </tbody>--%>
<%-- </table>--%>
<%-- </div>--%>
<%-- </div>--%>
<%-- </td>--%>
<%-- </tr>--%>
<tr>
<th>
<div class="b-checkbox-container inner">
노출 여부
<label class="b-checkbox checkbox">
<input type="checkbox" id="expsrDvUptAt">
<span class="check"></span>
<span class="control-label"></span>
</label>
</div>
</th>
<td colspan="3">
<div class="td-inner vertical">
<div class="custom-radio-container mt-10">
<c:forEach items="${resultMap.expsrCdList}" var="expsrCdList" varStatus="status">
<div class="custom-radio">
<input type="radio" id="expsrCdList${status.count}" name="expsrDvCd" value="${expsrCdList.cd}"
<c:if test="${status.first}">checked="checked"</c:if>
onclick="handleRadioClick2(this)"
>
<label for="expsrCdList${status.count}">${expsrCdList.cdNm}</label>
</div>
</c:forEach>
</div>
<div class="table-wrapper mt-10">
<table class="table">
<caption>노출 여부</caption>
<colgroup>
<col style="width: 16%;">
<col>
</colgroup>
<tbody id="expsrSet">
<tr>
<th>노출 기간</th>
<td>
<div class="td-inner">
<input type="text" id="datepicker_1" class="datepicker" title="시작 날짜 선택" autocomplete="off" disabled>
<div class="timepicker-container">
<input type="text" class="bs-timepicker" title="시간 설정" value="00:00" id="expsrBgnDt_time" disabled>
</div>
<span class="tilde">~</span>
<input type="text" id="datepicker_2" class="datepicker" title="종료 날짜 선택" autocomplete="off" disabled>
<div class="timepicker-container">
<input type="text" class="bs-timepicker" title="시간 설정" value="00:00" id="expsrEndDt_time" disabled>
</div>
</div>
</td>
</tr>
<tr>
<th>노출 문구</th>
<td>
<input class="input-text xl" type="text" title="노출 문구" id="expsrSetupFwords" disabled>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
<section id="section09" class="content-section content-scroll-detect content-fold">
<div class="content-fold__header">
<h3 class="content-section__title">반품교환정보</h3>
<button class="content-fold__btn"><span class="visually-hidden">접기</span></button>
</div>
<div class="content-fold__content">
<div class="table-wrapper">
<table class="table">
<caption>반품교환정보</caption>
<colgroup>
<col style="width: 12%;">
<col style="width: 44%;">
<col style="width: 44%;">
</colgroup>
<tbody>
<tr>
<th>
<div class="b-checkbox-container inner">
반품교환정보
<label class="b-checkbox checkbox">
<input type="checkbox" id="cmnuseInfoUptAt">
<span class="check"></span>
<span class="control-label"></span>
</label>
</div>
</th>
<td colspan="2">
<div class="td-inner">
<div class="select-box">
<select title="반품교환정보" id="cmnuseInfoInnb" class="cmnuseInfoInnb" name="cmnuseInfoInnb">
<option value="">선택</option>
<c:forEach var="infoList" items="${ resultMap.infoList }" varStatus="">
<option value="${ infoList.cmnuseInfoInnb }" >${ infoList.cmnuseInfoSj }</option>
<%-- <input type="text" value="${infoList.infoCn}" name="cmnuseInfoCn">--%>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
<%-- <tr>--%>
<%-- <th>반품교환정보 설명</th>--%>
<%-- <td colspan="2">--%>
<%--&lt;%&ndash; <div class="td-inner" readonly="">&ndash;%&gt;--%>
<%--&lt;%&ndash; <textarea class="textarea" title="에디터 입력" cols="30" id="cmnuseInfoCn"&ndash;%&gt;--%>
<%--&lt;%&ndash; rows="10"></textarea>&ndash;%&gt;--%>
<%--&lt;%&ndash; </div>&ndash;%&gt;--%>
<%-- <div class="ck-content">--%>
<%-- </div>--%>
<%-- </td>--%>
<%-- </tr>--%>
</tbody>
</table>
</div>
</div>
</section>
<section id="section10" class="content-section content-scroll-detect content-fold">
<div class="content-fold__header">
<h3 class="content-section__title">배송</h3>
<button class="content-fold__btn"><span class="visually-hidden">접기</span></button>
</div>
<div class="content-fold__content">
<div class="table-wrapper">
<table class="table">
<caption>배송</caption>
<colgroup>
<col style="width: 12%;">
<col>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>
<div class="b-checkbox-container inner">
배송일
<label class="b-checkbox checkbox">
<input type="checkbox" id="dlvyGroupUptAt">
<span class="check"></span>
<span class="control-label"></span>
</label>
</div>
</th>
<td>
<div class="td-inner">
<div class="select-box">
<select title="배송그룹" class="dlvyGroupInnb" id="dlvyGroupInnb" name="dlvyGroupInnb">
<option value="" >선택</option>
<c:forEach var="dlvyGrpList" items="${ resultMap.dlvyGrpList }" varStatus="">
<option value="${ dlvyGrpList.dlvyGroupInnb }" >${ dlvyGrpList.dlvyGroupNm }</option>
</c:forEach>
</select>
</div>
</div>
</td>
<th>
<div class="b-checkbox-container inner">
배송 안내 문구
<label class="b-checkbox checkbox">
<input type="checkbox" id="dlvyGuidanceWordsCnUptAt">
<span class="check"></span>
<span class="control-label"></span>
</label>
</div>
</th>
<td>
<div class="td-inner">
<input class="input-text full" type="text" id="dlvyGuidanceWordsCn" name="dlvyGuidanceWordsCn" title="배송안내문구">
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
<section id="section11" class="content-section content-scroll-detect content-fold">
<div class="content-fold__header">
<h3 class="content-section__title">입점 마케팅</h3>
<button class="content-fold__btn"><span class="visually-hidden">접기</span></button>
</div>
<div class="content-fold__content">
<div class="table-wrapper">
<table class="table">
<caption>입점 마케팅</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>
<div class="b-checkbox-container inner">
입점마케팅 연동여부
<label class="b-checkbox checkbox">
<input type="checkbox" id="epIntrlckUptAt">
<span class="check"></span>
<span class="control-label"></span>
</label>
</div>
</th>
<td>
<div class="b-checkbox-container">
<c:forEach var="epInfo" items="${ resultMap.epList }" varStatus="status">
<label class="b-checkbox checkbox" for="${epInfo.cd}EpIntrlckAt">
<input type="checkbox" value="Y" name="EpIntrlckAt" id="${epInfo.cd}EpIntrlckAt">
<span class="check"></span>
<span class="control-label">
<span class="text">${epInfo.cdNm}</span>
</span>
</label>
</c:forEach>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<p class="fyi gray-7">입점 마케팅 세부 설정은 입점 마케팅에서 가능합니다.</p>
</div>
</section>
<section id="section13" class="content-section content-scroll-detect content-fold">
<div class="content-fold__header">
<h3 class="content-section__title">일괄 업데이트할 상품</h3>
<button class="content-fold__btn"><span class="visually-hidden">접기</span></button>
</div>
<div class="content-fold__content">
<div class="table-wrapper">
<table class="table">
<caption>일괄 업데이트할 상품</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>
<div>
<span class="ml-10">상품</span>
<button type="button" onclick="fn_open_modal('#modalDiv','#product-search','/mngr/goods/goodsmngr/selectGoodsSrchPopupForm',{'goodsKndCd':'01'}); return false;"
class="btn xsm primary mt-5">검색</button>
</div>
<br/>
<div class="b-checkbox-container inner">
전체 상품 선택
<label class="b-checkbox checkbox">
<input type="checkbox" id="goodsChoiceAll">
<span class="check"></span>
<span class="control-label"></span>
</label>
</div>
</th>
<td>
<div class="td-inner">
<div id="parentGoodsContainer" class="product-group">
<!-- 여기에 선택한 상품 정보가 추가됩니다 -->
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</form>
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
</div>
</div>
<div id="modalDiv">
</div>
</main>
</body>
</html>