+++ src/main/java/itn/com/uss/ion/bnr/pop/service/MainPopupManageService.java
... | ... | @@ -0,0 +1,37 @@ |
| 1 | +package itn.com.uss.ion.bnr.pop.service; | |
| 2 | + | |
| 3 | +import java.util.List; | |
| 4 | +import java.util.Map; | |
| 5 | + | |
| 6 | +import itn.com.uss.ion.pwm.service.MainzoneVO; | |
| 7 | +import itn.com.uss.ion.pwm.service.PopupManageVO; | |
| 8 | +import itn.com.uss.ion.pwm.service.PopupzoneVO; | |
| 9 | +import itn.com.uss.ion.pwm.service.SocialVO; | |
| 10 | +import itn.com.uss.ion.pwm.service.SortVO; | |
| 11 | + | |
| 12 | +/** | |
| 13 | + * 개요 | |
| 14 | + * - 팝업창에 대한 Service Interface를 정의한다. | |
| 15 | + * | |
| 16 | + * 상세내용 | |
| 17 | + * - 팝업창에 대한 등록, 수정, 삭제, 조회, 반영확인 기능을 제공한다. | |
| 18 | + * - 팝업창의 조회기능은 목록조회, 상세조회, 팝업사용자 보기로 구분된다. | |
| 19 | + * @author 이창원 | |
| 20 | + * @version 1.0 | |
| 21 | + * @created 05-8-2009 오후 2:19:58 | |
| 22 | + */ | |
| 23 | +public interface MainPopupManageService { | |
| 24 | + | |
| 25 | + public List<?> selectSubMainzoneList(MainzoneVO mainzoneVO) throws Exception; | |
| 26 | + | |
| 27 | + public int selectSubMainzoneCount(MainzoneVO mainzoneVO) throws Exception; | |
| 28 | + | |
| 29 | + public MainzoneVO selectSubMainzoneVO(String mazId) throws Exception; | |
| 30 | + | |
| 31 | + public List<MainzoneVO> selectSubMainzoneListRolling(); | |
| 32 | + | |
| 33 | + public void deleteSubMainzone(String id); | |
| 34 | + | |
| 35 | + public void resetSubMainVOSort(MainzoneVO mainzoneVO); | |
| 36 | + | |
| 37 | +}(No newline at end of file) |
+++ src/main/java/itn/com/uss/ion/bnr/pop/service/impl/MainPopupManageDAO.java
... | ... | @@ -0,0 +1,309 @@ |
| 1 | +package itn.com.uss.ion.bnr.pop.service.impl; | |
| 2 | +import java.util.List; | |
| 3 | + | |
| 4 | +import org.springframework.stereotype.Repository; | |
| 5 | + | |
| 6 | +import egovframework.rte.psl.dataaccess.util.EgovMap; | |
| 7 | +import itn.com.cmm.service.impl.EgovComAbstractDAO; | |
| 8 | +import itn.com.uss.ion.pwm.service.MainzoneVO; | |
| 9 | +import itn.com.uss.ion.pwm.service.PopupManageVO; | |
| 10 | +import itn.com.uss.ion.pwm.service.PopupzoneVO; | |
| 11 | +import itn.com.uss.ion.pwm.service.SocialVO; | |
| 12 | +import itn.com.uss.ion.pwm.service.SortVO; | |
| 13 | + | |
| 14 | +/** | |
| 15 | + * 개요 | |
| 16 | + * - 팝업창에 대한 DAO를 정의한다. | |
| 17 | + * | |
| 18 | + * 상세내용 | |
| 19 | + * - 팝업창에 대한 등록, 수정, 삭제, 조회, 반영확인 기능을 제공한다. | |
| 20 | + * - 팝업창의 조회기능은 목록조회, 상세조회로, 사용자화면 보기로 구분된다. | |
| 21 | + * @author 이창원 | |
| 22 | + * @version 1.0 | |
| 23 | + * @created 05-8-2009 오후 2:21:04 | |
| 24 | + */ | |
| 25 | +@Repository("mainPopupManageDAO") | |
| 26 | +public class MainPopupManageDAO extends EgovComAbstractDAO { | |
| 27 | + | |
| 28 | + | |
| 29 | + /** | |
| 30 | + * 메인이미지 목록을 조회한다. | |
| 31 | + * @return 글 목록 | |
| 32 | + * @exception Exception | |
| 33 | + */ | |
| 34 | + public List<?> selectSubMainzoneList(MainzoneVO mainzoneVO ) throws Exception{ | |
| 35 | + return list("subMainzoneManage.selectSubMainzoneList", mainzoneVO); | |
| 36 | + } | |
| 37 | + | |
| 38 | + | |
| 39 | + public int selectSubMainzoneCount(MainzoneVO mainzoneVO) throws Exception{ | |
| 40 | + return (int)select("subMainzoneManage.selectSubMainzoneCount", mainzoneVO); | |
| 41 | + } | |
| 42 | + | |
| 43 | + | |
| 44 | + public MainzoneVO selectSubMainzoneVO(String mazId) throws Exception{ | |
| 45 | + return (MainzoneVO)select("subMainzoneManage.selectSubMainzoneVO", mazId); | |
| 46 | + } | |
| 47 | + | |
| 48 | + | |
| 49 | + public List<MainzoneVO> selectSubMainzoneListRolling() { | |
| 50 | + return (List<MainzoneVO>) list("subMainzoneManage.selectSubMainzoneListRolling"); | |
| 51 | + } | |
| 52 | + | |
| 53 | + | |
| 54 | + public void deleteSubMainzone(String mazId) { | |
| 55 | + delete("subMainzoneManage.deleteSubMainzone", mazId); | |
| 56 | + } | |
| 57 | + | |
| 58 | + | |
| 59 | + public void resetSubMainVOSort(MainzoneVO mainzoneVO) { | |
| 60 | + update("subMainzoneManage.resetSubMainVOSort", mainzoneVO); | |
| 61 | + } | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | +// | |
| 66 | +// public SubMainZoneManageDAO(){} | |
| 67 | +// | |
| 68 | +// /** | |
| 69 | +// * 기 등록된 팝업창정보를 삭제한다. | |
| 70 | +// * @param popupManage - 팝업창 model | |
| 71 | +// * @return boolean - 반영성공 여부 | |
| 72 | +// * | |
| 73 | +// * @param popupManage | |
| 74 | +// */ | |
| 75 | +// public void deletePopup(PopupManageVO popupManageVO) throws Exception { | |
| 76 | +// delete("PopupManage.deletePopupManage", popupManageVO); | |
| 77 | +// } | |
| 78 | +// | |
| 79 | +// /** | |
| 80 | +// * 팝업창정보를 신규로 등록한다. | |
| 81 | +// * @param popupManage - 팝업창 model | |
| 82 | +// * @return boolean - 반영성공 여부 | |
| 83 | +// * | |
| 84 | +// * @param popupManage | |
| 85 | +// */ | |
| 86 | +// public void insertPopup(PopupManageVO popupManageVO) throws Exception { | |
| 87 | +// insert("PopupManage.insertPopupManage", popupManageVO); | |
| 88 | +// } | |
| 89 | +// | |
| 90 | +// /** | |
| 91 | +// * 기 등록된 팝업창정보를 수정한다. | |
| 92 | +// * @param popupManage - 팝업창 model | |
| 93 | +// * @return boolean - 반영성공 여부 | |
| 94 | +// * | |
| 95 | +// * @param popupManage | |
| 96 | +// */ | |
| 97 | +// public void updatePopup(PopupManageVO popupManageVO) throws Exception { | |
| 98 | +// update("PopupManage.updatePopupManage", popupManageVO); | |
| 99 | +// } | |
| 100 | +// | |
| 101 | +// /** | |
| 102 | +// * 팝업창을 사용자 화면에서 볼수 있는 정보들을 조회한다. | |
| 103 | +// * @param popupManageVO - 팝업창 Vo | |
| 104 | +// * @return popupManageVO - 팝업창 Vo | |
| 105 | +// * | |
| 106 | +// * @param popupManageVO | |
| 107 | +// */ | |
| 108 | +// public PopupManageVO selectPopup(PopupManageVO popupManageVO) throws Exception { | |
| 109 | +// return (PopupManageVO)select("PopupManage.selectPopupManageDetail", popupManageVO); | |
| 110 | +// } | |
| 111 | +// | |
| 112 | +// /** | |
| 113 | +// * 팝업창를 관리하기 위해 등록된 팝업창목록을 조회한다. | |
| 114 | +// * @param popupManageVO - 팝업창 Vo | |
| 115 | +// * @return List - 팝업창 목록 | |
| 116 | +// * | |
| 117 | +// * @param popupManageVO | |
| 118 | +// */ | |
| 119 | +// public List<?> selectPopupList(PopupManageVO popupManageVO) throws Exception { | |
| 120 | +// return list("PopupManage.selectPopupManage", popupManageVO); | |
| 121 | +// } | |
| 122 | +// | |
| 123 | +// /** | |
| 124 | +// * 팝업창를 관리하기 위해 등록된 팝업창목록 총갯수를 조회한다. | |
| 125 | +// * @param popupManageVO - 팝업창 Vo | |
| 126 | +// * @return List - 팝업창 목록 | |
| 127 | +// * | |
| 128 | +// * @param popupManageVO | |
| 129 | +// */ | |
| 130 | +// public int selectPopupListCount(PopupManageVO popupManageVO) throws Exception { | |
| 131 | +// return (Integer)select("PopupManage.selectPopupManageCnt", popupManageVO); | |
| 132 | +// } | |
| 133 | +// | |
| 134 | +// /** | |
| 135 | +// * 팝업창를 사용하기 위해 등록된 팝업창목록을 조회한다. | |
| 136 | +// * @param popupManageVO - 팝업창 Vo | |
| 137 | +// * @return List - 팝업창 목록 | |
| 138 | +// * | |
| 139 | +// * @param popupManageVO | |
| 140 | +// */ | |
| 141 | +// public List<?> selectPopupMainList(PopupManageVO popupManageVO) throws Exception { | |
| 142 | +// return list("PopupManage.selectPopupManageMain", popupManageVO); | |
| 143 | +// } | |
| 144 | +// | |
| 145 | +// /** | |
| 146 | +// * 메인알림창 목록을 조회한다. | |
| 147 | +// * @return 글 목록 | |
| 148 | +// * @exception Exception | |
| 149 | +// */ | |
| 150 | +// public List<?> selectPopupzoneList(PopupzoneVO popupzoneVo) throws Exception{ | |
| 151 | +// return list("PopupzoneManage.selectPopupzoneList", popupzoneVo); | |
| 152 | +// } | |
| 153 | +// | |
| 154 | +// /** | |
| 155 | +// * 메인배너 순번정보를 가져온다. | |
| 156 | +// * @param mode - 0:등록 1:수정 | |
| 157 | +// * @return 순번정보 | |
| 158 | +// * @exception Exception | |
| 159 | +// */ | |
| 160 | +// @SuppressWarnings("unchecked") | |
| 161 | +// public List<EgovMap> getSortList() throws Exception{ | |
| 162 | +// return (List<EgovMap>) list("PopupzoneManage.getSortList",null); | |
| 163 | +// } | |
| 164 | +// | |
| 165 | +// public PopupzoneVO selectPopupzoneVO(String pozId) throws Exception { | |
| 166 | +// return (PopupzoneVO)select("PopupzoneManage.selectPopupzoneVO", pozId); | |
| 167 | +// } | |
| 168 | +// | |
| 169 | +// /** | |
| 170 | +// * 메인배너 변경할때 나머지 배너들 순서 변경 | |
| 171 | +// * @param 입력된 sort번호 | |
| 172 | +// * @return 등록 결과 | |
| 173 | +// * @exception Exception | |
| 174 | +// */ | |
| 175 | +// public void updateSortUp(SortVO sortVO) throws Exception{ | |
| 176 | +// update("PopupzoneManage.updateSortUp", sortVO); | |
| 177 | +// } | |
| 178 | +// | |
| 179 | +// public void updateSortDown(SortVO sortVO) throws Exception { | |
| 180 | +// update("PopupzoneManage.updateSortDown", sortVO); | |
| 181 | +// } | |
| 182 | +// | |
| 183 | +// public void updatePopupzone(PopupzoneVO popupzoneVO) throws Exception { | |
| 184 | +// update("PopupzoneManage.updatePopupzone", popupzoneVO); | |
| 185 | +// } | |
| 186 | +// | |
| 187 | +// /** | |
| 188 | +// * 메인알림창을 삭제한다. | |
| 189 | +// * @param pozId - 삭제할 메인알림창 번호 | |
| 190 | +// * @return void형 | |
| 191 | +// * @exception Exception | |
| 192 | +// */ | |
| 193 | +// public void deletePopupzone(String pozId) throws Exception { | |
| 194 | +// delete("PopupzoneManage.deletePopupzone", pozId); | |
| 195 | +// } | |
| 196 | +// | |
| 197 | +// public int getMaxSort() throws Exception{ | |
| 198 | +// return (Integer)select("PopupzoneManage.getMaxSort") ; | |
| 199 | +// } | |
| 200 | +// | |
| 201 | +// /** | |
| 202 | +// * 메인배너의 새로운seq를 가지고온다. | |
| 203 | +// * @return seq | |
| 204 | +// * @exception Exception | |
| 205 | +// */ | |
| 206 | +// public int selectNextSeq() throws Exception{ | |
| 207 | +// return (Integer)select("PopupzoneManage.selectNextSeq"); | |
| 208 | +// } | |
| 209 | +// | |
| 210 | +// public void insertPopupzone(PopupzoneVO popupzoneVO) throws Exception{ | |
| 211 | +// insert("PopupzoneManage.insertPopupzone", popupzoneVO); | |
| 212 | +// } | |
| 213 | +// | |
| 214 | +// public void resetSort(PopupzoneVO popupzoneVO) throws Exception{ | |
| 215 | +// update("PopupzoneManage.resetSort", popupzoneVO); | |
| 216 | +// } | |
| 217 | +// | |
| 218 | +// /** | |
| 219 | +// * 메인이미지 목록을 조회한다. | |
| 220 | +// * @return 글 목록 | |
| 221 | +// * @exception Exception | |
| 222 | +// */ | |
| 223 | +// public List<?> selectMainzoneList(MainzoneVO mainzoneVO ) throws Exception{ | |
| 224 | +// return list("MainzoneManage.selectMainzoneList", mainzoneVO); | |
| 225 | +// } | |
| 226 | +// | |
| 227 | +// public int getMainMaxSort() throws Exception{ | |
| 228 | +// return (Integer)select("MainzoneManage.getMainMaxSort"); | |
| 229 | +// } | |
| 230 | +// | |
| 231 | +// public void insertMainzone(MainzoneVO mainzoneVO) throws Exception{ | |
| 232 | +// insert("MainzoneManage.insertMainzone", mainzoneVO); | |
| 233 | +// } | |
| 234 | +// | |
| 235 | +// public void resetMainSort(MainzoneVO mainzoneVO) throws Exception{ | |
| 236 | +// insert("MainzoneManage.resetMainSort", mainzoneVO); | |
| 237 | +// } | |
| 238 | +// | |
| 239 | +// public void updateMainSortUp(SortVO sortVO) throws Exception{ | |
| 240 | +// update("MainzoneManage.updateMainSortUp", sortVO); | |
| 241 | +// } | |
| 242 | +// | |
| 243 | +// public MainzoneVO selectMainzoneVO(String mazId) throws Exception{ | |
| 244 | +// return (MainzoneVO)select("MainzoneManage.selectMainzoneVO", mazId); | |
| 245 | +// } | |
| 246 | +// | |
| 247 | +// @SuppressWarnings("unchecked") | |
| 248 | +// public List<EgovMap> getMainSortList() throws Exception{ | |
| 249 | +// return (List<EgovMap>) list("MainzoneManage.getMainSortList",null); | |
| 250 | +// } | |
| 251 | +// | |
| 252 | +// public void deleteMainzone(String mazId) throws Exception{ | |
| 253 | +// delete("MainzoneManage.deleteMainzone", mazId); | |
| 254 | +// } | |
| 255 | +// | |
| 256 | +// public void updateMainSortDown(SortVO sortVO) throws Exception{ | |
| 257 | +// update("MainzoneManage.updateMainSortDown", sortVO); | |
| 258 | +// } | |
| 259 | +// | |
| 260 | +// public void updateMainzone(MainzoneVO mainzoneVO) throws Exception{ | |
| 261 | +// update("MainzoneManage.updateMainzone", mainzoneVO); | |
| 262 | +// } | |
| 263 | +// | |
| 264 | +// @SuppressWarnings("unchecked") | |
| 265 | +// public List<MainzoneVO> selectMainzoneListRolling() throws Exception{ | |
| 266 | +// return (List<MainzoneVO>) list("MainzoneManage.selectMainzoneListRolling"); | |
| 267 | +// } | |
| 268 | +// | |
| 269 | +// public int selectPopupzoneListTotCnt(PopupzoneVO popupzoneVo) throws Exception { | |
| 270 | +// return (int)select("PopupzoneManage.selectPopupzoneListTotCnt", popupzoneVo); | |
| 271 | +// } | |
| 272 | +// | |
| 273 | +// public int selectMainzoneCount(MainzoneVO mainzoneVO) throws Exception{ | |
| 274 | +// return (int)select("MainzoneManage.selectMainzoneCount", mainzoneVO); | |
| 275 | +// } | |
| 276 | +// | |
| 277 | +// public void resetVOSort(PopupzoneVO popupzoneVO) throws Exception{ | |
| 278 | +// update("PopupzoneManage.resetVOSort", popupzoneVO); | |
| 279 | +// } | |
| 280 | +// | |
| 281 | +// public void resetMainVOSort(MainzoneVO mainzoneVO) throws Exception{ | |
| 282 | +// update("MainzoneManage.resetMainVOSort", mainzoneVO); | |
| 283 | +// } | |
| 284 | +// | |
| 285 | +// @SuppressWarnings("unchecked") | |
| 286 | +// public List<SocialVO> selectSocialList(SocialVO socialVO) throws Exception{ | |
| 287 | +// return (List<SocialVO>) list("SocialManage.selectSocialList",socialVO); | |
| 288 | +// } | |
| 289 | +// | |
| 290 | +// public SocialVO selectSocialVO(String socialId) throws Exception{ | |
| 291 | +// return (SocialVO)select("SocialManage.selectSocialVO", socialId); | |
| 292 | +// } | |
| 293 | +// | |
| 294 | +// public void updateSocial(SocialVO socialVO) throws Exception{ | |
| 295 | +// update("SocialManage.updateSocial", socialVO); | |
| 296 | +// } | |
| 297 | +// | |
| 298 | +// public void resetSocialSort(SocialVO socialVO) throws Exception{ | |
| 299 | +// update("SocialManage.resetSocialSort", socialVO); | |
| 300 | +// } | |
| 301 | +// | |
| 302 | +// public void insertSocial(SocialVO socialVO) throws Exception{ | |
| 303 | +// insert("SocialManage.insertSocial", socialVO); | |
| 304 | +// } | |
| 305 | +// | |
| 306 | +// public void deleteSocial(String id) throws Exception{ | |
| 307 | +// delete("SocialManage.deleteSocial", id); | |
| 308 | +// } | |
| 309 | +}(No newline at end of file) |
+++ src/main/java/itn/com/uss/ion/bnr/pop/service/impl/MainPopupManageServiceImpl.java
... | ... | @@ -0,0 +1,72 @@ |
| 1 | +package itn.com.uss.ion.bnr.pop.service.impl; | |
| 2 | + | |
| 3 | +import java.util.List; | |
| 4 | + | |
| 5 | +import javax.annotation.Resource; | |
| 6 | + | |
| 7 | +import org.springframework.stereotype.Service; | |
| 8 | + | |
| 9 | +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; | |
| 10 | +import egovframework.rte.fdl.idgnr.EgovIdGnrService; | |
| 11 | +import itn.com.uss.ion.bnr.pop.service.MainPopupManageService; | |
| 12 | +import itn.com.uss.ion.pwm.service.MainzoneVO; | |
| 13 | + | |
| 14 | +/** | |
| 15 | + * 개요 | |
| 16 | + * - 팝업창에 대한 ServiceImpl을 정의한다. | |
| 17 | + * | |
| 18 | + * 상세내용 | |
| 19 | + * - 팝업창에 대한 등록, 수정, 삭제, 조회, 반영확인 기능을 제공한다. | |
| 20 | + * - 팝업창의 조회기능은 목록조회, 상세조회로, 사용자화면 보기로 구분된다. | |
| 21 | + * @author 이창원 | |
| 22 | + * @version 1.0 | |
| 23 | + * @created 05-8-2009 오후 2:19:58 | |
| 24 | + */ | |
| 25 | + | |
| 26 | +@Service("mainPopupManageService") | |
| 27 | +public class MainPopupManageServiceImpl extends EgovAbstractServiceImpl implements MainPopupManageService { | |
| 28 | + | |
| 29 | + @Resource(name = "mainPopupManageDAO") | |
| 30 | + public MainPopupManageDAO dao; | |
| 31 | + | |
| 32 | + | |
| 33 | + @Resource(name = "egovPopupManageIdGnrService") | |
| 34 | + private EgovIdGnrService idgenService; | |
| 35 | + | |
| 36 | + @Override | |
| 37 | + public List<?> selectSubMainzoneList(MainzoneVO mainzoneVO) throws Exception { | |
| 38 | + return dao.selectSubMainzoneList(mainzoneVO); | |
| 39 | + } | |
| 40 | + | |
| 41 | + @Override | |
| 42 | + public int selectSubMainzoneCount(MainzoneVO mainzoneVO) throws Exception { | |
| 43 | + return dao.selectSubMainzoneCount(mainzoneVO); | |
| 44 | + } | |
| 45 | + | |
| 46 | + | |
| 47 | + @Override | |
| 48 | + public MainzoneVO selectSubMainzoneVO(String mazId) throws Exception { | |
| 49 | + MainzoneVO resultVO = dao.selectSubMainzoneVO(mazId); | |
| 50 | + if (resultVO == null) | |
| 51 | + throw processException("info.nodata.msg"); | |
| 52 | + return resultVO; | |
| 53 | + } | |
| 54 | + | |
| 55 | + @Override | |
| 56 | + public List<MainzoneVO> selectSubMainzoneListRolling() { | |
| 57 | + return dao.selectSubMainzoneListRolling(); | |
| 58 | + } | |
| 59 | + | |
| 60 | + @Override | |
| 61 | + public void deleteSubMainzone(String id) { | |
| 62 | + dao.deleteSubMainzone(id); | |
| 63 | + } | |
| 64 | + | |
| 65 | + @Override | |
| 66 | + public void resetSubMainVOSort(MainzoneVO mainzoneVO) { | |
| 67 | + dao.resetSubMainVOSort(mainzoneVO); | |
| 68 | + | |
| 69 | + } | |
| 70 | + | |
| 71 | + | |
| 72 | +}(No newline at end of file) |
+++ src/main/java/itn/com/uss/ion/bnr/pop/web/MainPopupManageController.java
... | ... | @@ -0,0 +1,306 @@ |
| 1 | +package itn.com.uss.ion.bnr.pop.web; | |
| 2 | + | |
| 3 | +import java.util.ArrayList; | |
| 4 | +import java.util.HashMap; | |
| 5 | +import java.util.List; | |
| 6 | +import java.util.Map; | |
| 7 | + | |
| 8 | +import javax.annotation.Resource; | |
| 9 | +import javax.servlet.http.HttpServletRequest; | |
| 10 | +import javax.servlet.http.HttpSession; | |
| 11 | + | |
| 12 | +import org.slf4j.Logger; | |
| 13 | +import org.slf4j.LoggerFactory; | |
| 14 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 15 | +import org.springframework.stereotype.Controller; | |
| 16 | +import org.springframework.ui.Model; | |
| 17 | +import org.springframework.ui.ModelMap; | |
| 18 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 19 | +import org.springframework.web.bind.annotation.RequestParam; | |
| 20 | +import org.springframework.web.servlet.mvc.support.RedirectAttributes; | |
| 21 | +import org.springmodules.validation.commons.DefaultBeanValidator; | |
| 22 | + | |
| 23 | +import egovframework.rte.fdl.idgnr.EgovIdGnrService; | |
| 24 | +import egovframework.rte.fdl.property.EgovPropertyService; | |
| 25 | +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; | |
| 26 | +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; | |
| 27 | +import itn.com.cmm.ComDefaultCodeVO; | |
| 28 | +import itn.com.cmm.EgovMessageSource; | |
| 29 | +import itn.com.cmm.LoginVO; | |
| 30 | +import itn.com.cmm.service.EgovCmmUseService; | |
| 31 | +import itn.com.cmm.service.EgovFileMngService; | |
| 32 | +import itn.com.cmm.service.EgovFileMngUtil; | |
| 33 | +import itn.com.cmm.service.FileVO; | |
| 34 | +import itn.com.cmm.util.RedirectUrlMaker; | |
| 35 | +import itn.com.uss.ion.bnr.sub.service.SubMainZoneManageService; | |
| 36 | +import itn.com.uss.ion.pwm.service.MainzoneVO; | |
| 37 | +import itn.let.sym.site.service.EgovSiteManagerService; | |
| 38 | + | |
| 39 | +/** | |
| 40 | + * 개요 | |
| 41 | + * - 팝업창에 대한 Controller를 정의한다. | |
| 42 | + * | |
| 43 | + * 상세내용 | |
| 44 | + * - 팝업창에 대한 등록, 수정, 삭제, 조회, 반영확인 기능을 제공한다. | |
| 45 | + * - 팝업창의 조회기능은 목록조회, 상세조회로, 사용자 화면 보기로 구분된다. | |
| 46 | + * @author 이창원 | |
| 47 | + * @version 1.0 | |
| 48 | + * @created 05-8-2009 오후 2:19:57 | |
| 49 | + * <pre> | |
| 50 | + * << 개정이력(Modification Information) >> | |
| 51 | + * | |
| 52 | + * 수정일 수정자 수정내용 | |
| 53 | + * ------- -------- --------------------------- | |
| 54 | + * 2025.02.24 이호영 최초 생성 | |
| 55 | + * | |
| 56 | + * </pre> | |
| 57 | + */ | |
| 58 | + | |
| 59 | +@Controller | |
| 60 | +public class MainPopupManageController { | |
| 61 | + | |
| 62 | + private static final Logger LOGGER = LoggerFactory.getLogger(MainPopupManageController.class); | |
| 63 | + | |
| 64 | + @Autowired | |
| 65 | + private DefaultBeanValidator beanValidator; | |
| 66 | + | |
| 67 | + /** EgovMessageSource */ | |
| 68 | + @Resource(name = "egovMessageSource") | |
| 69 | + EgovMessageSource egovMessageSource; | |
| 70 | + | |
| 71 | + /** EgovPropertyService */ | |
| 72 | + @Resource(name = "propertiesService") | |
| 73 | + protected EgovPropertyService propertiesService; | |
| 74 | + | |
| 75 | + /** EgovPopupManageService */ | |
| 76 | + @Resource(name = "subMainZoneManageService") | |
| 77 | + private SubMainZoneManageService subMainZoneManageService; | |
| 78 | + | |
| 79 | + /** cmmUseService */ | |
| 80 | + @Resource(name = "EgovCmmUseService") | |
| 81 | + private EgovCmmUseService cmmUseService; | |
| 82 | + | |
| 83 | + @Resource(name="EgovFileMngUtil") | |
| 84 | + private EgovFileMngUtil fileUtil; | |
| 85 | + | |
| 86 | + @Resource(name="EgovFileMngService") | |
| 87 | + private EgovFileMngService fileMngService; | |
| 88 | + | |
| 89 | + @Resource(name = "egovPopupZoneIdGnrService") | |
| 90 | + private EgovIdGnrService idgenService; | |
| 91 | + | |
| 92 | +// @Resource(name = "egovMainZoneIdGnrService") | |
| 93 | +// private EgovIdGnrService idgenServiceMain; | |
| 94 | + | |
| 95 | + @Resource(name = "egovSubMainZoneIdGnrService") | |
| 96 | + private EgovIdGnrService idgenServiceSubMain; | |
| 97 | + | |
| 98 | + @Resource(name = "egovSiteManagerService") | |
| 99 | + EgovSiteManagerService egovSiteManagerService; | |
| 100 | + | |
| 101 | + @Resource(name = "EgovFileMngService") | |
| 102 | + private EgovFileMngService fileService; | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + /*메인이미지 관리*/ | |
| 108 | + @RequestMapping(value="/uss/ion/bnr/pop/mainPopupList.do") | |
| 109 | + public String popupList(ModelMap model , MainzoneVO mainzoneVO , HttpSession session ) throws Exception { | |
| 110 | + LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); | |
| 111 | + | |
| 112 | + | |
| 113 | + if(mainzoneVO.getPageUnit()% 8 != 0) {//9 배수로 넘어오지 않으면 초기세팅 | |
| 114 | + mainzoneVO.setPageUnit(8); | |
| 115 | + }else { | |
| 116 | + mainzoneVO.setPageUnit(mainzoneVO.getPageUnit()); | |
| 117 | + } | |
| 118 | + | |
| 119 | + /** pageing */ | |
| 120 | + PaginationInfo paginationInfo = new PaginationInfo(); | |
| 121 | + paginationInfo.setCurrentPageNo(mainzoneVO.getPageIndex()); | |
| 122 | + paginationInfo.setRecordCountPerPage(mainzoneVO.getPageUnit()); | |
| 123 | + paginationInfo.setPageSize(mainzoneVO.getPageSize()); | |
| 124 | + | |
| 125 | + mainzoneVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); | |
| 126 | + mainzoneVO.setLastIndex(paginationInfo.getLastRecordIndex()); | |
| 127 | + mainzoneVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); | |
| 128 | + | |
| 129 | + if(null != loginVO && !"super".equals(loginVO.getSiteId())){ //각각의 사이트 | |
| 130 | + mainzoneVO.setSiteId(loginVO.getSiteId()); | |
| 131 | + } | |
| 132 | + List<?> mainzoneList = subMainZoneManageService.selectSubMainzoneList(mainzoneVO); | |
| 133 | + model.addAttribute("mainzoneList", mainzoneList); | |
| 134 | + | |
| 135 | + int totCnt = subMainZoneManageService.selectSubMainzoneCount(mainzoneVO); | |
| 136 | + | |
| 137 | + paginationInfo.setTotalRecordCount(totCnt); | |
| 138 | + model.addAttribute("paginationInfo", paginationInfo); | |
| 139 | + | |
| 140 | + return "uss/ion/bnr/sub/subMainZoneList"; | |
| 141 | + } | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + /*알림창등록/수정 view*/ | |
| 146 | + @RequestMapping(value="/uss/ion/bnr/pop/mainPopupModify.do") | |
| 147 | + public String popupModify(@RequestParam Map<?, ?> commandMap, | |
| 148 | + HttpServletRequest request, Model model, HttpSession session) | |
| 149 | + throws Exception { | |
| 150 | + | |
| 151 | + MainzoneVO mainzoneVO = new MainzoneVO(); | |
| 152 | + if("Modify".equals((String)commandMap.get("pageType"))){ //수정 | |
| 153 | + String mazId = (String)commandMap.get("selectedId"); | |
| 154 | + mainzoneVO = subMainZoneManageService.selectSubMainzoneVO(mazId); | |
| 155 | + String sNtceBgnde = mainzoneVO.getNtceBgnde(); | |
| 156 | + String sNtceEndde = mainzoneVO.getNtceEndde(); | |
| 157 | + | |
| 158 | + if(sNtceBgnde != null && sNtceEndde != null ) { | |
| 159 | + | |
| 160 | + mainzoneVO.setNtceBgndeHH(sNtceBgnde.substring(8, 10)); | |
| 161 | + mainzoneVO.setNtceBgndeMM(sNtceBgnde.substring(10, 12)); | |
| 162 | + | |
| 163 | + mainzoneVO.setNtceEnddeHH(sNtceEndde.substring(8, 10)); | |
| 164 | + mainzoneVO.setNtceEnddeMM(sNtceEndde.substring(10, 12)); | |
| 165 | + | |
| 166 | + //게시기간 시작일자(시) | |
| 167 | + model.addAttribute("ntceBgndeHH", getTimeHH()); | |
| 168 | + //게시기간 시작일자(분) | |
| 169 | + model.addAttribute("ntceBgndeMM", getTimeMM()); | |
| 170 | + //게시기간 종료일자(시) | |
| 171 | + model.addAttribute("ntceEnddeHH", getTimeHH()); | |
| 172 | + //게시기간 종료일자(분) | |
| 173 | + model.addAttribute("ntceEnddeMM", getTimeMM()); | |
| 174 | + | |
| 175 | + | |
| 176 | + } | |
| 177 | + | |
| 178 | + if(mainzoneVO != null){ | |
| 179 | + mainzoneVO.setBeSort(mainzoneVO.getSort()); | |
| 180 | + | |
| 181 | + FileVO fileVO = new FileVO(); | |
| 182 | + String atchFileId = mainzoneVO.getMainzoneImageFile(); | |
| 183 | + fileVO.setAtchFileId(atchFileId); | |
| 184 | + List<FileVO> fileList = fileService.selectFileInfs(fileVO); | |
| 185 | + model.addAttribute("fileList", fileList); | |
| 186 | + } | |
| 187 | + }else{ //등록 | |
| 188 | + | |
| 189 | + //게시기간 시작일자(시) | |
| 190 | + model.addAttribute("ntceBgndeHH", getTimeHH()); | |
| 191 | + //게시기간 시작일자(분) | |
| 192 | + model.addAttribute("ntceBgndeMM", getTimeMM()); | |
| 193 | + //게시기간 종료일자(시) | |
| 194 | + model.addAttribute("ntceEnddeHH", getTimeHH()); | |
| 195 | + //게시기간 종료일자(분) | |
| 196 | + model.addAttribute("ntceEnddeMM", getTimeMM()); | |
| 197 | + | |
| 198 | + } | |
| 199 | + | |
| 200 | + //model.addAttribute("sortList", sortList); | |
| 201 | + model.addAttribute("mainzoneVO", mainzoneVO); | |
| 202 | + System.out.println("mainzoneVO :: "+ mainzoneVO.toString()); | |
| 203 | + | |
| 204 | + /* 타겟 코드 */ | |
| 205 | + ComDefaultCodeVO vo = new ComDefaultCodeVO(); | |
| 206 | + vo.setCodeId("COM037"); | |
| 207 | + //List<?> targetList = cmmUseService.selectCmmCodeDetail(vo); | |
| 208 | + //model.addAttribute("targetList", targetList); | |
| 209 | + | |
| 210 | + | |
| 211 | + return "uss/ion/bnr/sub/subMainZoneModify"; | |
| 212 | + } | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + /*메인 이미지삭제 */ | |
| 217 | + @RequestMapping(value="/uss/ion/bnr/pop/mainPopupListDelete.do") | |
| 218 | + public String deleteMainzoneDelete(@RequestParam("del") String[] del, RedirectAttributes redirectAttributes , Model model) throws Exception { | |
| 219 | + LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); | |
| 220 | + MainzoneVO mainzoneVO = new MainzoneVO(); | |
| 221 | + for(String id:del) { | |
| 222 | + try{ | |
| 223 | + mainzoneVO = subMainZoneManageService.selectSubMainzoneVO(id); | |
| 224 | + }catch(Exception e){ | |
| 225 | + redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("info.nodata.msg")); | |
| 226 | + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/ion/bnr/subMainZoneList.do"); | |
| 227 | + return redirectUrlMaker.getRedirectUrl(); | |
| 228 | + } | |
| 229 | + subMainZoneManageService.deleteSubMainzone(id); | |
| 230 | + if(null != loginVO && !"super".equals(loginVO.getSiteId())){ | |
| 231 | + mainzoneVO.setSiteId(loginVO.getSiteId()); | |
| 232 | + } | |
| 233 | + subMainZoneManageService.resetSubMainVOSort(mainzoneVO); | |
| 234 | + } | |
| 235 | + | |
| 236 | + redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.delete")); | |
| 237 | + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/ion/bnr/subMainZoneList.do"); | |
| 238 | + return redirectUrlMaker.getRedirectUrl(); | |
| 239 | + } | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + /** | |
| 251 | + * 시간을 LIST를 반환한다. | |
| 252 | + * @return List | |
| 253 | + * @throws | |
| 254 | + */ | |
| 255 | + @SuppressWarnings("unused") | |
| 256 | + private List<ComDefaultCodeVO> getTimeHH() { | |
| 257 | + ArrayList<ComDefaultCodeVO> listHH = new ArrayList<ComDefaultCodeVO>(); | |
| 258 | + HashMap<?, ?> hmHHMM; | |
| 259 | + for (int i = 0; i <= 24; i++) { | |
| 260 | + String sHH = ""; | |
| 261 | + String strI = String.valueOf(i); | |
| 262 | + if (i < 10) { | |
| 263 | + sHH = "0" + strI; | |
| 264 | + } else { | |
| 265 | + sHH = strI; | |
| 266 | + } | |
| 267 | + | |
| 268 | + ComDefaultCodeVO codeVO = new ComDefaultCodeVO(); | |
| 269 | + codeVO.setCode(sHH); | |
| 270 | + codeVO.setCodeNm(sHH); | |
| 271 | + | |
| 272 | + listHH.add(codeVO); | |
| 273 | + } | |
| 274 | + | |
| 275 | + return listHH; | |
| 276 | + } | |
| 277 | + | |
| 278 | + /** | |
| 279 | + * 분을 LIST를 반환한다. | |
| 280 | + * @return List | |
| 281 | + * @throws | |
| 282 | + */ | |
| 283 | + @SuppressWarnings("unused") | |
| 284 | + private List<ComDefaultCodeVO> getTimeMM() { | |
| 285 | + ArrayList<ComDefaultCodeVO> listMM = new ArrayList<ComDefaultCodeVO>(); | |
| 286 | + HashMap<?, ?> hmHHMM; | |
| 287 | + for (int i = 0; i <= 60; i++) { | |
| 288 | + | |
| 289 | + String sMM = ""; | |
| 290 | + String strI = String.valueOf(i); | |
| 291 | + if (i < 10) { | |
| 292 | + sMM = "0" + strI; | |
| 293 | + } else { | |
| 294 | + sMM = strI; | |
| 295 | + } | |
| 296 | + | |
| 297 | + ComDefaultCodeVO codeVO = new ComDefaultCodeVO(); | |
| 298 | + codeVO.setCode(sMM); | |
| 299 | + codeVO.setCodeNm(sMM); | |
| 300 | + | |
| 301 | + listMM.add(codeVO); | |
| 302 | + } | |
| 303 | + return listMM; | |
| 304 | + } | |
| 305 | + | |
| 306 | +}(No newline at end of file) |
+++ src/main/java/itn/com/uss/ion/bnr/sub/service/SubMainZoneManageService.java
... | ... | @@ -0,0 +1,37 @@ |
| 1 | +package itn.com.uss.ion.bnr.sub.service; | |
| 2 | + | |
| 3 | +import java.util.List; | |
| 4 | +import java.util.Map; | |
| 5 | + | |
| 6 | +import itn.com.uss.ion.pwm.service.MainzoneVO; | |
| 7 | +import itn.com.uss.ion.pwm.service.PopupManageVO; | |
| 8 | +import itn.com.uss.ion.pwm.service.PopupzoneVO; | |
| 9 | +import itn.com.uss.ion.pwm.service.SocialVO; | |
| 10 | +import itn.com.uss.ion.pwm.service.SortVO; | |
| 11 | + | |
| 12 | +/** | |
| 13 | + * 개요 | |
| 14 | + * - 팝업창에 대한 Service Interface를 정의한다. | |
| 15 | + * | |
| 16 | + * 상세내용 | |
| 17 | + * - 팝업창에 대한 등록, 수정, 삭제, 조회, 반영확인 기능을 제공한다. | |
| 18 | + * - 팝업창의 조회기능은 목록조회, 상세조회, 팝업사용자 보기로 구분된다. | |
| 19 | + * @author 이창원 | |
| 20 | + * @version 1.0 | |
| 21 | + * @created 05-8-2009 오후 2:19:58 | |
| 22 | + */ | |
| 23 | +public interface SubMainZoneManageService { | |
| 24 | + | |
| 25 | + public List<?> selectSubMainzoneList(MainzoneVO mainzoneVO) throws Exception; | |
| 26 | + | |
| 27 | + public int selectSubMainzoneCount(MainzoneVO mainzoneVO) throws Exception; | |
| 28 | + | |
| 29 | + public MainzoneVO selectSubMainzoneVO(String mazId) throws Exception; | |
| 30 | + | |
| 31 | + public List<MainzoneVO> selectSubMainzoneListRolling(); | |
| 32 | + | |
| 33 | + public void deleteSubMainzone(String id); | |
| 34 | + | |
| 35 | + public void resetSubMainVOSort(MainzoneVO mainzoneVO); | |
| 36 | + | |
| 37 | +}(No newline at end of file) |
+++ src/main/java/itn/com/uss/ion/bnr/sub/service/impl/SubMainZoneManageDAO.java
... | ... | @@ -0,0 +1,309 @@ |
| 1 | +package itn.com.uss.ion.bnr.sub.service.impl; | |
| 2 | +import java.util.List; | |
| 3 | + | |
| 4 | +import org.springframework.stereotype.Repository; | |
| 5 | + | |
| 6 | +import egovframework.rte.psl.dataaccess.util.EgovMap; | |
| 7 | +import itn.com.cmm.service.impl.EgovComAbstractDAO; | |
| 8 | +import itn.com.uss.ion.pwm.service.MainzoneVO; | |
| 9 | +import itn.com.uss.ion.pwm.service.PopupManageVO; | |
| 10 | +import itn.com.uss.ion.pwm.service.PopupzoneVO; | |
| 11 | +import itn.com.uss.ion.pwm.service.SocialVO; | |
| 12 | +import itn.com.uss.ion.pwm.service.SortVO; | |
| 13 | + | |
| 14 | +/** | |
| 15 | + * 개요 | |
| 16 | + * - 팝업창에 대한 DAO를 정의한다. | |
| 17 | + * | |
| 18 | + * 상세내용 | |
| 19 | + * - 팝업창에 대한 등록, 수정, 삭제, 조회, 반영확인 기능을 제공한다. | |
| 20 | + * - 팝업창의 조회기능은 목록조회, 상세조회로, 사용자화면 보기로 구분된다. | |
| 21 | + * @author 이창원 | |
| 22 | + * @version 1.0 | |
| 23 | + * @created 05-8-2009 오후 2:21:04 | |
| 24 | + */ | |
| 25 | +@Repository("subMainZoneManageDAO") | |
| 26 | +public class SubMainZoneManageDAO extends EgovComAbstractDAO { | |
| 27 | + | |
| 28 | + | |
| 29 | + /** | |
| 30 | + * 메인이미지 목록을 조회한다. | |
| 31 | + * @return 글 목록 | |
| 32 | + * @exception Exception | |
| 33 | + */ | |
| 34 | + public List<?> selectSubMainzoneList(MainzoneVO mainzoneVO ) throws Exception{ | |
| 35 | + return list("subMainzoneManage.selectSubMainzoneList", mainzoneVO); | |
| 36 | + } | |
| 37 | + | |
| 38 | + | |
| 39 | + public int selectSubMainzoneCount(MainzoneVO mainzoneVO) throws Exception{ | |
| 40 | + return (int)select("subMainzoneManage.selectSubMainzoneCount", mainzoneVO); | |
| 41 | + } | |
| 42 | + | |
| 43 | + | |
| 44 | + public MainzoneVO selectSubMainzoneVO(String mazId) throws Exception{ | |
| 45 | + return (MainzoneVO)select("subMainzoneManage.selectSubMainzoneVO", mazId); | |
| 46 | + } | |
| 47 | + | |
| 48 | + | |
| 49 | + public List<MainzoneVO> selectSubMainzoneListRolling() { | |
| 50 | + return (List<MainzoneVO>) list("subMainzoneManage.selectSubMainzoneListRolling"); | |
| 51 | + } | |
| 52 | + | |
| 53 | + | |
| 54 | + public void deleteSubMainzone(String mazId) { | |
| 55 | + delete("subMainzoneManage.deleteSubMainzone", mazId); | |
| 56 | + } | |
| 57 | + | |
| 58 | + | |
| 59 | + public void resetSubMainVOSort(MainzoneVO mainzoneVO) { | |
| 60 | + update("subMainzoneManage.resetSubMainVOSort", mainzoneVO); | |
| 61 | + } | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | +// | |
| 66 | +// public SubMainZoneManageDAO(){} | |
| 67 | +// | |
| 68 | +// /** | |
| 69 | +// * 기 등록된 팝업창정보를 삭제한다. | |
| 70 | +// * @param popupManage - 팝업창 model | |
| 71 | +// * @return boolean - 반영성공 여부 | |
| 72 | +// * | |
| 73 | +// * @param popupManage | |
| 74 | +// */ | |
| 75 | +// public void deletePopup(PopupManageVO popupManageVO) throws Exception { | |
| 76 | +// delete("PopupManage.deletePopupManage", popupManageVO); | |
| 77 | +// } | |
| 78 | +// | |
| 79 | +// /** | |
| 80 | +// * 팝업창정보를 신규로 등록한다. | |
| 81 | +// * @param popupManage - 팝업창 model | |
| 82 | +// * @return boolean - 반영성공 여부 | |
| 83 | +// * | |
| 84 | +// * @param popupManage | |
| 85 | +// */ | |
| 86 | +// public void insertPopup(PopupManageVO popupManageVO) throws Exception { | |
| 87 | +// insert("PopupManage.insertPopupManage", popupManageVO); | |
| 88 | +// } | |
| 89 | +// | |
| 90 | +// /** | |
| 91 | +// * 기 등록된 팝업창정보를 수정한다. | |
| 92 | +// * @param popupManage - 팝업창 model | |
| 93 | +// * @return boolean - 반영성공 여부 | |
| 94 | +// * | |
| 95 | +// * @param popupManage | |
| 96 | +// */ | |
| 97 | +// public void updatePopup(PopupManageVO popupManageVO) throws Exception { | |
| 98 | +// update("PopupManage.updatePopupManage", popupManageVO); | |
| 99 | +// } | |
| 100 | +// | |
| 101 | +// /** | |
| 102 | +// * 팝업창을 사용자 화면에서 볼수 있는 정보들을 조회한다. | |
| 103 | +// * @param popupManageVO - 팝업창 Vo | |
| 104 | +// * @return popupManageVO - 팝업창 Vo | |
| 105 | +// * | |
| 106 | +// * @param popupManageVO | |
| 107 | +// */ | |
| 108 | +// public PopupManageVO selectPopup(PopupManageVO popupManageVO) throws Exception { | |
| 109 | +// return (PopupManageVO)select("PopupManage.selectPopupManageDetail", popupManageVO); | |
| 110 | +// } | |
| 111 | +// | |
| 112 | +// /** | |
| 113 | +// * 팝업창를 관리하기 위해 등록된 팝업창목록을 조회한다. | |
| 114 | +// * @param popupManageVO - 팝업창 Vo | |
| 115 | +// * @return List - 팝업창 목록 | |
| 116 | +// * | |
| 117 | +// * @param popupManageVO | |
| 118 | +// */ | |
| 119 | +// public List<?> selectPopupList(PopupManageVO popupManageVO) throws Exception { | |
| 120 | +// return list("PopupManage.selectPopupManage", popupManageVO); | |
| 121 | +// } | |
| 122 | +// | |
| 123 | +// /** | |
| 124 | +// * 팝업창를 관리하기 위해 등록된 팝업창목록 총갯수를 조회한다. | |
| 125 | +// * @param popupManageVO - 팝업창 Vo | |
| 126 | +// * @return List - 팝업창 목록 | |
| 127 | +// * | |
| 128 | +// * @param popupManageVO | |
| 129 | +// */ | |
| 130 | +// public int selectPopupListCount(PopupManageVO popupManageVO) throws Exception { | |
| 131 | +// return (Integer)select("PopupManage.selectPopupManageCnt", popupManageVO); | |
| 132 | +// } | |
| 133 | +// | |
| 134 | +// /** | |
| 135 | +// * 팝업창를 사용하기 위해 등록된 팝업창목록을 조회한다. | |
| 136 | +// * @param popupManageVO - 팝업창 Vo | |
| 137 | +// * @return List - 팝업창 목록 | |
| 138 | +// * | |
| 139 | +// * @param popupManageVO | |
| 140 | +// */ | |
| 141 | +// public List<?> selectPopupMainList(PopupManageVO popupManageVO) throws Exception { | |
| 142 | +// return list("PopupManage.selectPopupManageMain", popupManageVO); | |
| 143 | +// } | |
| 144 | +// | |
| 145 | +// /** | |
| 146 | +// * 메인알림창 목록을 조회한다. | |
| 147 | +// * @return 글 목록 | |
| 148 | +// * @exception Exception | |
| 149 | +// */ | |
| 150 | +// public List<?> selectPopupzoneList(PopupzoneVO popupzoneVo) throws Exception{ | |
| 151 | +// return list("PopupzoneManage.selectPopupzoneList", popupzoneVo); | |
| 152 | +// } | |
| 153 | +// | |
| 154 | +// /** | |
| 155 | +// * 메인배너 순번정보를 가져온다. | |
| 156 | +// * @param mode - 0:등록 1:수정 | |
| 157 | +// * @return 순번정보 | |
| 158 | +// * @exception Exception | |
| 159 | +// */ | |
| 160 | +// @SuppressWarnings("unchecked") | |
| 161 | +// public List<EgovMap> getSortList() throws Exception{ | |
| 162 | +// return (List<EgovMap>) list("PopupzoneManage.getSortList",null); | |
| 163 | +// } | |
| 164 | +// | |
| 165 | +// public PopupzoneVO selectPopupzoneVO(String pozId) throws Exception { | |
| 166 | +// return (PopupzoneVO)select("PopupzoneManage.selectPopupzoneVO", pozId); | |
| 167 | +// } | |
| 168 | +// | |
| 169 | +// /** | |
| 170 | +// * 메인배너 변경할때 나머지 배너들 순서 변경 | |
| 171 | +// * @param 입력된 sort번호 | |
| 172 | +// * @return 등록 결과 | |
| 173 | +// * @exception Exception | |
| 174 | +// */ | |
| 175 | +// public void updateSortUp(SortVO sortVO) throws Exception{ | |
| 176 | +// update("PopupzoneManage.updateSortUp", sortVO); | |
| 177 | +// } | |
| 178 | +// | |
| 179 | +// public void updateSortDown(SortVO sortVO) throws Exception { | |
| 180 | +// update("PopupzoneManage.updateSortDown", sortVO); | |
| 181 | +// } | |
| 182 | +// | |
| 183 | +// public void updatePopupzone(PopupzoneVO popupzoneVO) throws Exception { | |
| 184 | +// update("PopupzoneManage.updatePopupzone", popupzoneVO); | |
| 185 | +// } | |
| 186 | +// | |
| 187 | +// /** | |
| 188 | +// * 메인알림창을 삭제한다. | |
| 189 | +// * @param pozId - 삭제할 메인알림창 번호 | |
| 190 | +// * @return void형 | |
| 191 | +// * @exception Exception | |
| 192 | +// */ | |
| 193 | +// public void deletePopupzone(String pozId) throws Exception { | |
| 194 | +// delete("PopupzoneManage.deletePopupzone", pozId); | |
| 195 | +// } | |
| 196 | +// | |
| 197 | +// public int getMaxSort() throws Exception{ | |
| 198 | +// return (Integer)select("PopupzoneManage.getMaxSort") ; | |
| 199 | +// } | |
| 200 | +// | |
| 201 | +// /** | |
| 202 | +// * 메인배너의 새로운seq를 가지고온다. | |
| 203 | +// * @return seq | |
| 204 | +// * @exception Exception | |
| 205 | +// */ | |
| 206 | +// public int selectNextSeq() throws Exception{ | |
| 207 | +// return (Integer)select("PopupzoneManage.selectNextSeq"); | |
| 208 | +// } | |
| 209 | +// | |
| 210 | +// public void insertPopupzone(PopupzoneVO popupzoneVO) throws Exception{ | |
| 211 | +// insert("PopupzoneManage.insertPopupzone", popupzoneVO); | |
| 212 | +// } | |
| 213 | +// | |
| 214 | +// public void resetSort(PopupzoneVO popupzoneVO) throws Exception{ | |
| 215 | +// update("PopupzoneManage.resetSort", popupzoneVO); | |
| 216 | +// } | |
| 217 | +// | |
| 218 | +// /** | |
| 219 | +// * 메인이미지 목록을 조회한다. | |
| 220 | +// * @return 글 목록 | |
| 221 | +// * @exception Exception | |
| 222 | +// */ | |
| 223 | +// public List<?> selectMainzoneList(MainzoneVO mainzoneVO ) throws Exception{ | |
| 224 | +// return list("MainzoneManage.selectMainzoneList", mainzoneVO); | |
| 225 | +// } | |
| 226 | +// | |
| 227 | +// public int getMainMaxSort() throws Exception{ | |
| 228 | +// return (Integer)select("MainzoneManage.getMainMaxSort"); | |
| 229 | +// } | |
| 230 | +// | |
| 231 | +// public void insertMainzone(MainzoneVO mainzoneVO) throws Exception{ | |
| 232 | +// insert("MainzoneManage.insertMainzone", mainzoneVO); | |
| 233 | +// } | |
| 234 | +// | |
| 235 | +// public void resetMainSort(MainzoneVO mainzoneVO) throws Exception{ | |
| 236 | +// insert("MainzoneManage.resetMainSort", mainzoneVO); | |
| 237 | +// } | |
| 238 | +// | |
| 239 | +// public void updateMainSortUp(SortVO sortVO) throws Exception{ | |
| 240 | +// update("MainzoneManage.updateMainSortUp", sortVO); | |
| 241 | +// } | |
| 242 | +// | |
| 243 | +// public MainzoneVO selectMainzoneVO(String mazId) throws Exception{ | |
| 244 | +// return (MainzoneVO)select("MainzoneManage.selectMainzoneVO", mazId); | |
| 245 | +// } | |
| 246 | +// | |
| 247 | +// @SuppressWarnings("unchecked") | |
| 248 | +// public List<EgovMap> getMainSortList() throws Exception{ | |
| 249 | +// return (List<EgovMap>) list("MainzoneManage.getMainSortList",null); | |
| 250 | +// } | |
| 251 | +// | |
| 252 | +// public void deleteMainzone(String mazId) throws Exception{ | |
| 253 | +// delete("MainzoneManage.deleteMainzone", mazId); | |
| 254 | +// } | |
| 255 | +// | |
| 256 | +// public void updateMainSortDown(SortVO sortVO) throws Exception{ | |
| 257 | +// update("MainzoneManage.updateMainSortDown", sortVO); | |
| 258 | +// } | |
| 259 | +// | |
| 260 | +// public void updateMainzone(MainzoneVO mainzoneVO) throws Exception{ | |
| 261 | +// update("MainzoneManage.updateMainzone", mainzoneVO); | |
| 262 | +// } | |
| 263 | +// | |
| 264 | +// @SuppressWarnings("unchecked") | |
| 265 | +// public List<MainzoneVO> selectMainzoneListRolling() throws Exception{ | |
| 266 | +// return (List<MainzoneVO>) list("MainzoneManage.selectMainzoneListRolling"); | |
| 267 | +// } | |
| 268 | +// | |
| 269 | +// public int selectPopupzoneListTotCnt(PopupzoneVO popupzoneVo) throws Exception { | |
| 270 | +// return (int)select("PopupzoneManage.selectPopupzoneListTotCnt", popupzoneVo); | |
| 271 | +// } | |
| 272 | +// | |
| 273 | +// public int selectMainzoneCount(MainzoneVO mainzoneVO) throws Exception{ | |
| 274 | +// return (int)select("MainzoneManage.selectMainzoneCount", mainzoneVO); | |
| 275 | +// } | |
| 276 | +// | |
| 277 | +// public void resetVOSort(PopupzoneVO popupzoneVO) throws Exception{ | |
| 278 | +// update("PopupzoneManage.resetVOSort", popupzoneVO); | |
| 279 | +// } | |
| 280 | +// | |
| 281 | +// public void resetMainVOSort(MainzoneVO mainzoneVO) throws Exception{ | |
| 282 | +// update("MainzoneManage.resetMainVOSort", mainzoneVO); | |
| 283 | +// } | |
| 284 | +// | |
| 285 | +// @SuppressWarnings("unchecked") | |
| 286 | +// public List<SocialVO> selectSocialList(SocialVO socialVO) throws Exception{ | |
| 287 | +// return (List<SocialVO>) list("SocialManage.selectSocialList",socialVO); | |
| 288 | +// } | |
| 289 | +// | |
| 290 | +// public SocialVO selectSocialVO(String socialId) throws Exception{ | |
| 291 | +// return (SocialVO)select("SocialManage.selectSocialVO", socialId); | |
| 292 | +// } | |
| 293 | +// | |
| 294 | +// public void updateSocial(SocialVO socialVO) throws Exception{ | |
| 295 | +// update("SocialManage.updateSocial", socialVO); | |
| 296 | +// } | |
| 297 | +// | |
| 298 | +// public void resetSocialSort(SocialVO socialVO) throws Exception{ | |
| 299 | +// update("SocialManage.resetSocialSort", socialVO); | |
| 300 | +// } | |
| 301 | +// | |
| 302 | +// public void insertSocial(SocialVO socialVO) throws Exception{ | |
| 303 | +// insert("SocialManage.insertSocial", socialVO); | |
| 304 | +// } | |
| 305 | +// | |
| 306 | +// public void deleteSocial(String id) throws Exception{ | |
| 307 | +// delete("SocialManage.deleteSocial", id); | |
| 308 | +// } | |
| 309 | +}(No newline at end of file) |
+++ src/main/java/itn/com/uss/ion/bnr/sub/service/impl/SubMainZoneManageServiceImpl.java
... | ... | @@ -0,0 +1,85 @@ |
| 1 | +package itn.com.uss.ion.bnr.sub.service.impl; | |
| 2 | + | |
| 3 | +import java.math.BigDecimal; | |
| 4 | +import java.util.LinkedHashMap; | |
| 5 | +import java.util.List; | |
| 6 | +import java.util.Map; | |
| 7 | + | |
| 8 | +import javax.annotation.Resource; | |
| 9 | + | |
| 10 | +import org.springframework.stereotype.Service; | |
| 11 | + | |
| 12 | +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; | |
| 13 | +import egovframework.rte.fdl.idgnr.EgovIdGnrService; | |
| 14 | +import egovframework.rte.psl.dataaccess.util.EgovMap; | |
| 15 | +import itn.com.uss.ion.bnr.sub.service.SubMainZoneManageService; | |
| 16 | +import itn.com.uss.ion.pwm.service.MainzoneVO; | |
| 17 | +import itn.com.uss.ion.pwm.service.PopupManageVO; | |
| 18 | +import itn.com.uss.ion.pwm.service.PopupzoneVO; | |
| 19 | +import itn.com.uss.ion.pwm.service.SocialVO; | |
| 20 | +import itn.com.uss.ion.pwm.service.SortVO; | |
| 21 | +import itn.com.uss.ion.pwm.service.impl.PopupManageDAO; | |
| 22 | +import itn.com.uss.ion.pwm.service.impl.PopupzoneManageDAO; | |
| 23 | + | |
| 24 | +/** | |
| 25 | + * 개요 | |
| 26 | + * - 팝업창에 대한 ServiceImpl을 정의한다. | |
| 27 | + * | |
| 28 | + * 상세내용 | |
| 29 | + * - 팝업창에 대한 등록, 수정, 삭제, 조회, 반영확인 기능을 제공한다. | |
| 30 | + * - 팝업창의 조회기능은 목록조회, 상세조회로, 사용자화면 보기로 구분된다. | |
| 31 | + * @author 이창원 | |
| 32 | + * @version 1.0 | |
| 33 | + * @created 05-8-2009 오후 2:19:58 | |
| 34 | + */ | |
| 35 | + | |
| 36 | +@Service("subMainZoneManageService") | |
| 37 | +public class SubMainZoneManageServiceImpl extends EgovAbstractServiceImpl implements SubMainZoneManageService { | |
| 38 | + | |
| 39 | + @Resource(name = "subMainZoneManageDAO") | |
| 40 | + public SubMainZoneManageDAO dao; | |
| 41 | + | |
| 42 | + /** PopupzoneManageDAO */ | |
| 43 | + @Resource(name="popupzoneManageDAO") | |
| 44 | + private PopupzoneManageDAO popupzoneManageDAO; | |
| 45 | + | |
| 46 | + @Resource(name = "egovPopupManageIdGnrService") | |
| 47 | + private EgovIdGnrService idgenService; | |
| 48 | + | |
| 49 | + @Override | |
| 50 | + public List<?> selectSubMainzoneList(MainzoneVO mainzoneVO) throws Exception { | |
| 51 | + return dao.selectSubMainzoneList(mainzoneVO); | |
| 52 | + } | |
| 53 | + | |
| 54 | + @Override | |
| 55 | + public int selectSubMainzoneCount(MainzoneVO mainzoneVO) throws Exception { | |
| 56 | + return dao.selectSubMainzoneCount(mainzoneVO); | |
| 57 | + } | |
| 58 | + | |
| 59 | + | |
| 60 | + @Override | |
| 61 | + public MainzoneVO selectSubMainzoneVO(String mazId) throws Exception { | |
| 62 | + MainzoneVO resultVO = dao.selectSubMainzoneVO(mazId); | |
| 63 | + if (resultVO == null) | |
| 64 | + throw processException("info.nodata.msg"); | |
| 65 | + return resultVO; | |
| 66 | + } | |
| 67 | + | |
| 68 | + @Override | |
| 69 | + public List<MainzoneVO> selectSubMainzoneListRolling() { | |
| 70 | + return dao.selectSubMainzoneListRolling(); | |
| 71 | + } | |
| 72 | + | |
| 73 | + @Override | |
| 74 | + public void deleteSubMainzone(String id) { | |
| 75 | + dao.deleteSubMainzone(id); | |
| 76 | + } | |
| 77 | + | |
| 78 | + @Override | |
| 79 | + public void resetSubMainVOSort(MainzoneVO mainzoneVO) { | |
| 80 | + dao.resetSubMainVOSort(mainzoneVO); | |
| 81 | + | |
| 82 | + } | |
| 83 | + | |
| 84 | + | |
| 85 | +}(No newline at end of file) |
+++ src/main/java/itn/com/uss/ion/bnr/sub/web/SubMainZoneManageController.java
... | ... | @@ -0,0 +1,308 @@ |
| 1 | +package itn.com.uss.ion.bnr.sub.web; | |
| 2 | + | |
| 3 | +import java.util.ArrayList; | |
| 4 | +import java.util.HashMap; | |
| 5 | +import java.util.List; | |
| 6 | +import java.util.Map; | |
| 7 | + | |
| 8 | +import javax.annotation.Resource; | |
| 9 | +import javax.servlet.http.HttpServletRequest; | |
| 10 | +import javax.servlet.http.HttpSession; | |
| 11 | + | |
| 12 | +import org.slf4j.Logger; | |
| 13 | +import org.slf4j.LoggerFactory; | |
| 14 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 15 | +import org.springframework.stereotype.Controller; | |
| 16 | +import org.springframework.ui.Model; | |
| 17 | +import org.springframework.ui.ModelMap; | |
| 18 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 19 | +import org.springframework.web.bind.annotation.RequestParam; | |
| 20 | +import org.springframework.web.servlet.mvc.support.RedirectAttributes; | |
| 21 | +import org.springmodules.validation.commons.DefaultBeanValidator; | |
| 22 | + | |
| 23 | +import egovframework.rte.fdl.idgnr.EgovIdGnrService; | |
| 24 | +import egovframework.rte.fdl.property.EgovPropertyService; | |
| 25 | +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; | |
| 26 | +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; | |
| 27 | +import itn.com.cmm.ComDefaultCodeVO; | |
| 28 | +import itn.com.cmm.EgovMessageSource; | |
| 29 | +import itn.com.cmm.LoginVO; | |
| 30 | +import itn.com.cmm.service.EgovCmmUseService; | |
| 31 | +import itn.com.cmm.service.EgovFileMngService; | |
| 32 | +import itn.com.cmm.service.EgovFileMngUtil; | |
| 33 | +import itn.com.cmm.service.FileVO; | |
| 34 | +import itn.com.cmm.util.RedirectUrlMaker; | |
| 35 | +import itn.com.uss.ion.bnr.sub.service.SubMainZoneManageService; | |
| 36 | +import itn.com.uss.ion.pwm.service.MainzoneVO; | |
| 37 | +import itn.let.sym.site.service.EgovSiteManagerService; | |
| 38 | + | |
| 39 | +/** | |
| 40 | + * 개요 | |
| 41 | + * - 팝업창에 대한 Controller를 정의한다. | |
| 42 | + * | |
| 43 | + * 상세내용 | |
| 44 | + * - 팝업창에 대한 등록, 수정, 삭제, 조회, 반영확인 기능을 제공한다. | |
| 45 | + * - 팝업창의 조회기능은 목록조회, 상세조회로, 사용자 화면 보기로 구분된다. | |
| 46 | + * @author 이창원 | |
| 47 | + * @version 1.0 | |
| 48 | + * @created 05-8-2009 오후 2:19:57 | |
| 49 | + * <pre> | |
| 50 | + * << 개정이력(Modification Information) >> | |
| 51 | + * | |
| 52 | + * 수정일 수정자 수정내용 | |
| 53 | + * ------- -------- --------------------------- | |
| 54 | + * 2025.02.24 이호영 최초 생성 | |
| 55 | + * | |
| 56 | + * </pre> | |
| 57 | + */ | |
| 58 | + | |
| 59 | +@Controller | |
| 60 | +public class SubMainZoneManageController { | |
| 61 | + | |
| 62 | + private static final Logger LOGGER = LoggerFactory.getLogger(SubMainZoneManageController.class); | |
| 63 | + | |
| 64 | + @Autowired | |
| 65 | + private DefaultBeanValidator beanValidator; | |
| 66 | + | |
| 67 | + /** EgovMessageSource */ | |
| 68 | + @Resource(name = "egovMessageSource") | |
| 69 | + EgovMessageSource egovMessageSource; | |
| 70 | + | |
| 71 | + /** EgovPropertyService */ | |
| 72 | + @Resource(name = "propertiesService") | |
| 73 | + protected EgovPropertyService propertiesService; | |
| 74 | + | |
| 75 | + /** EgovPopupManageService */ | |
| 76 | + @Resource(name = "subMainZoneManageService") | |
| 77 | + private SubMainZoneManageService subMainZoneManageService; | |
| 78 | + | |
| 79 | + /** cmmUseService */ | |
| 80 | + @Resource(name = "EgovCmmUseService") | |
| 81 | + private EgovCmmUseService cmmUseService; | |
| 82 | + | |
| 83 | + @Resource(name="EgovFileMngUtil") | |
| 84 | + private EgovFileMngUtil fileUtil; | |
| 85 | + | |
| 86 | + @Resource(name="EgovFileMngService") | |
| 87 | + private EgovFileMngService fileMngService; | |
| 88 | + | |
| 89 | + @Resource(name = "egovPopupZoneIdGnrService") | |
| 90 | + private EgovIdGnrService idgenService; | |
| 91 | + | |
| 92 | +// @Resource(name = "egovMainZoneIdGnrService") | |
| 93 | +// private EgovIdGnrService idgenServiceMain; | |
| 94 | + | |
| 95 | + @Resource(name = "egovSubMainZoneIdGnrService") | |
| 96 | + private EgovIdGnrService idgenServiceSubMain; | |
| 97 | + | |
| 98 | + @Resource(name = "egovSiteManagerService") | |
| 99 | + EgovSiteManagerService egovSiteManagerService; | |
| 100 | + | |
| 101 | + @Resource(name = "EgovFileMngService") | |
| 102 | + private EgovFileMngService fileService; | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + /*메인이미지 관리*/ | |
| 109 | + @RequestMapping(value="/uss/ion/bnr/sub/subMainZoneList.do") | |
| 110 | +// @RequestMapping(value="/uss/ion/pwm/mainzoneList.do") | |
| 111 | + public String selectMainzoneList(ModelMap model , MainzoneVO mainzoneVO , HttpSession session ) throws Exception { | |
| 112 | + LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); | |
| 113 | + | |
| 114 | + | |
| 115 | + if(mainzoneVO.getPageUnit()% 8 != 0) {//9 배수로 넘어오지 않으면 초기세팅 | |
| 116 | + mainzoneVO.setPageUnit(8); | |
| 117 | + }else { | |
| 118 | + mainzoneVO.setPageUnit(mainzoneVO.getPageUnit()); | |
| 119 | + } | |
| 120 | + | |
| 121 | + /** pageing */ | |
| 122 | + PaginationInfo paginationInfo = new PaginationInfo(); | |
| 123 | + paginationInfo.setCurrentPageNo(mainzoneVO.getPageIndex()); | |
| 124 | + paginationInfo.setRecordCountPerPage(mainzoneVO.getPageUnit()); | |
| 125 | + paginationInfo.setPageSize(mainzoneVO.getPageSize()); | |
| 126 | + | |
| 127 | + mainzoneVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); | |
| 128 | + mainzoneVO.setLastIndex(paginationInfo.getLastRecordIndex()); | |
| 129 | + mainzoneVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); | |
| 130 | + | |
| 131 | + if(null != loginVO && !"super".equals(loginVO.getSiteId())){ //각각의 사이트 | |
| 132 | + mainzoneVO.setSiteId(loginVO.getSiteId()); | |
| 133 | + } | |
| 134 | + List<?> mainzoneList = subMainZoneManageService.selectSubMainzoneList(mainzoneVO); | |
| 135 | + model.addAttribute("mainzoneList", mainzoneList); | |
| 136 | + | |
| 137 | + int totCnt = subMainZoneManageService.selectSubMainzoneCount(mainzoneVO); | |
| 138 | + | |
| 139 | + paginationInfo.setTotalRecordCount(totCnt); | |
| 140 | + model.addAttribute("paginationInfo", paginationInfo); | |
| 141 | + | |
| 142 | + return "uss/ion/bnr/sub/subMainZoneList"; | |
| 143 | + } | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + /*알림창등록/수정 view*/ | |
| 148 | + @RequestMapping(value="/uss/ion/bnr/sub/subMainzoneModify.do") | |
| 149 | + public String updateMainZoneView(@RequestParam Map<?, ?> commandMap, | |
| 150 | + HttpServletRequest request, Model model, HttpSession session) | |
| 151 | + throws Exception { | |
| 152 | + | |
| 153 | + MainzoneVO mainzoneVO = new MainzoneVO(); | |
| 154 | + if("Modify".equals((String)commandMap.get("pageType"))){ //수정 | |
| 155 | + String mazId = (String)commandMap.get("selectedId"); | |
| 156 | + mainzoneVO = subMainZoneManageService.selectSubMainzoneVO(mazId); | |
| 157 | + String sNtceBgnde = mainzoneVO.getNtceBgnde(); | |
| 158 | + String sNtceEndde = mainzoneVO.getNtceEndde(); | |
| 159 | + | |
| 160 | + if(sNtceBgnde != null && sNtceEndde != null ) { | |
| 161 | + | |
| 162 | + mainzoneVO.setNtceBgndeHH(sNtceBgnde.substring(8, 10)); | |
| 163 | + mainzoneVO.setNtceBgndeMM(sNtceBgnde.substring(10, 12)); | |
| 164 | + | |
| 165 | + mainzoneVO.setNtceEnddeHH(sNtceEndde.substring(8, 10)); | |
| 166 | + mainzoneVO.setNtceEnddeMM(sNtceEndde.substring(10, 12)); | |
| 167 | + | |
| 168 | + //게시기간 시작일자(시) | |
| 169 | + model.addAttribute("ntceBgndeHH", getTimeHH()); | |
| 170 | + //게시기간 시작일자(분) | |
| 171 | + model.addAttribute("ntceBgndeMM", getTimeMM()); | |
| 172 | + //게시기간 종료일자(시) | |
| 173 | + model.addAttribute("ntceEnddeHH", getTimeHH()); | |
| 174 | + //게시기간 종료일자(분) | |
| 175 | + model.addAttribute("ntceEnddeMM", getTimeMM()); | |
| 176 | + | |
| 177 | + | |
| 178 | + } | |
| 179 | + | |
| 180 | + if(mainzoneVO != null){ | |
| 181 | + mainzoneVO.setBeSort(mainzoneVO.getSort()); | |
| 182 | + | |
| 183 | + FileVO fileVO = new FileVO(); | |
| 184 | + String atchFileId = mainzoneVO.getMainzoneImageFile(); | |
| 185 | + fileVO.setAtchFileId(atchFileId); | |
| 186 | + List<FileVO> fileList = fileService.selectFileInfs(fileVO); | |
| 187 | + model.addAttribute("fileList", fileList); | |
| 188 | + } | |
| 189 | + }else{ //등록 | |
| 190 | + | |
| 191 | + //게시기간 시작일자(시) | |
| 192 | + model.addAttribute("ntceBgndeHH", getTimeHH()); | |
| 193 | + //게시기간 시작일자(분) | |
| 194 | + model.addAttribute("ntceBgndeMM", getTimeMM()); | |
| 195 | + //게시기간 종료일자(시) | |
| 196 | + model.addAttribute("ntceEnddeHH", getTimeHH()); | |
| 197 | + //게시기간 종료일자(분) | |
| 198 | + model.addAttribute("ntceEnddeMM", getTimeMM()); | |
| 199 | + | |
| 200 | + } | |
| 201 | + | |
| 202 | + //model.addAttribute("sortList", sortList); | |
| 203 | + model.addAttribute("mainzoneVO", mainzoneVO); | |
| 204 | + System.out.println("mainzoneVO :: "+ mainzoneVO.toString()); | |
| 205 | + | |
| 206 | + /* 타겟 코드 */ | |
| 207 | + ComDefaultCodeVO vo = new ComDefaultCodeVO(); | |
| 208 | + vo.setCodeId("COM037"); | |
| 209 | + //List<?> targetList = cmmUseService.selectCmmCodeDetail(vo); | |
| 210 | + //model.addAttribute("targetList", targetList); | |
| 211 | + | |
| 212 | + | |
| 213 | + return "uss/ion/bnr/sub/subMainZoneModify"; | |
| 214 | + } | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + /*메인 이미지삭제 */ | |
| 219 | + @RequestMapping("/uss/ion/bnr/sub/subMainzoneListDelete.do") | |
| 220 | + public String deleteMainzoneDelete(@RequestParam("del") String[] del, RedirectAttributes redirectAttributes , Model model) throws Exception { | |
| 221 | + LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); | |
| 222 | + MainzoneVO mainzoneVO = new MainzoneVO(); | |
| 223 | + for(String id:del) { | |
| 224 | + try{ | |
| 225 | + mainzoneVO = subMainZoneManageService.selectSubMainzoneVO(id); | |
| 226 | + }catch(Exception e){ | |
| 227 | + redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("info.nodata.msg")); | |
| 228 | + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/ion/bnr/subMainZoneList.do"); | |
| 229 | + return redirectUrlMaker.getRedirectUrl(); | |
| 230 | + } | |
| 231 | + subMainZoneManageService.deleteSubMainzone(id); | |
| 232 | + if(null != loginVO && !"super".equals(loginVO.getSiteId())){ | |
| 233 | + mainzoneVO.setSiteId(loginVO.getSiteId()); | |
| 234 | + } | |
| 235 | + subMainZoneManageService.resetSubMainVOSort(mainzoneVO); | |
| 236 | + } | |
| 237 | + | |
| 238 | + redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.delete")); | |
| 239 | + RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/ion/bnr/subMainZoneList.do"); | |
| 240 | + return redirectUrlMaker.getRedirectUrl(); | |
| 241 | + } | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + /** | |
| 253 | + * 시간을 LIST를 반환한다. | |
| 254 | + * @return List | |
| 255 | + * @throws | |
| 256 | + */ | |
| 257 | + @SuppressWarnings("unused") | |
| 258 | + private List<ComDefaultCodeVO> getTimeHH() { | |
| 259 | + ArrayList<ComDefaultCodeVO> listHH = new ArrayList<ComDefaultCodeVO>(); | |
| 260 | + HashMap<?, ?> hmHHMM; | |
| 261 | + for (int i = 0; i <= 24; i++) { | |
| 262 | + String sHH = ""; | |
| 263 | + String strI = String.valueOf(i); | |
| 264 | + if (i < 10) { | |
| 265 | + sHH = "0" + strI; | |
| 266 | + } else { | |
| 267 | + sHH = strI; | |
| 268 | + } | |
| 269 | + | |
| 270 | + ComDefaultCodeVO codeVO = new ComDefaultCodeVO(); | |
| 271 | + codeVO.setCode(sHH); | |
| 272 | + codeVO.setCodeNm(sHH); | |
| 273 | + | |
| 274 | + listHH.add(codeVO); | |
| 275 | + } | |
| 276 | + | |
| 277 | + return listHH; | |
| 278 | + } | |
| 279 | + | |
| 280 | + /** | |
| 281 | + * 분을 LIST를 반환한다. | |
| 282 | + * @return List | |
| 283 | + * @throws | |
| 284 | + */ | |
| 285 | + @SuppressWarnings("unused") | |
| 286 | + private List<ComDefaultCodeVO> getTimeMM() { | |
| 287 | + ArrayList<ComDefaultCodeVO> listMM = new ArrayList<ComDefaultCodeVO>(); | |
| 288 | + HashMap<?, ?> hmHHMM; | |
| 289 | + for (int i = 0; i <= 60; i++) { | |
| 290 | + | |
| 291 | + String sMM = ""; | |
| 292 | + String strI = String.valueOf(i); | |
| 293 | + if (i < 10) { | |
| 294 | + sMM = "0" + strI; | |
| 295 | + } else { | |
| 296 | + sMM = strI; | |
| 297 | + } | |
| 298 | + | |
| 299 | + ComDefaultCodeVO codeVO = new ComDefaultCodeVO(); | |
| 300 | + codeVO.setCode(sMM); | |
| 301 | + codeVO.setCodeNm(sMM); | |
| 302 | + | |
| 303 | + listMM.add(codeVO); | |
| 304 | + } | |
| 305 | + return listMM; | |
| 306 | + } | |
| 307 | + | |
| 308 | +}(No newline at end of file) |
--- src/main/java/itn/com/uss/ion/fms/web/FmsFileController.java
+++ src/main/java/itn/com/uss/ion/fms/web/FmsFileController.java
... | ... | @@ -112,6 +112,9 @@ |
| 112 | 112 |
@Resource(name = "egovMainZoneIdGnrService") |
| 113 | 113 |
private EgovIdGnrService idgenServiceMain; |
| 114 | 114 |
|
| 115 |
+ @Resource(name = "egovSubMainZoneIdGnrService") |
|
| 116 |
+ private EgovIdGnrService idgenServiceSubMain; |
|
| 117 |
+ |
|
| 115 | 118 |
@Resource(name = "egovBannerService") |
| 116 | 119 |
private EgovBannerService egovBannerService; |
| 117 | 120 |
|
... | ... | @@ -414,6 +417,8 @@ |
| 414 | 417 |
String KeyStr = "FMS_"; |
| 415 | 418 |
if("mainzone".equals(fileVO.getMenuName())) { //메인비주얼
|
| 416 | 419 |
KeyStr = "MAZ_"; |
| 420 |
+ }else if("subMainzone".equals(fileVO.getMenuName())) { //메인비주얼
|
|
| 421 |
+ KeyStr = "SMAZ_"; |
|
| 417 | 422 |
}else if("popupzone".equals(fileVO.getMenuName())) { //매뉴별 비주얼
|
| 418 | 423 |
KeyStr = "POZ_"; |
| 419 | 424 |
}else if("banner".equals(fileVO.getMenuName())) { //매뉴별 비주얼
|
... | ... | @@ -477,6 +482,13 @@ |
| 477 | 482 |
egovPopupManageService.insertMainzone(mainzoneVO); |
| 478 | 483 |
mainzoneVO.setSortOver("D"); //앞쪽에 넣음
|
| 479 | 484 |
egovPopupManageService.resetMainVOSort(mainzoneVO); |
| 485 |
+ }else if("subMainzone".equals(fileVO.getMenuName())) { // 서브 메인비주얼 새글
|
|
| 486 |
+ String mainId = idgenServiceSubMain.getNextStringId(); |
|
| 487 |
+ mainzoneVO.setMazId(mainId); |
|
| 488 |
+ mainzoneVO.setRegisterId(loginVO.getUniqId()); |
|
| 489 |
+ egovPopupManageService.insertSubMainzone(mainzoneVO); |
|
| 490 |
+ mainzoneVO.setSortOver("D"); //앞쪽에 넣음
|
|
| 491 |
+ egovPopupManageService.resetSubMainVOSort(mainzoneVO); |
|
| 480 | 492 |
}else if("popupzone".equals(fileVO.getMenuName())) { //매뉴별 비주얼
|
| 481 | 493 |
String pozId = idgenService.getNextStringId(); |
| 482 | 494 |
popupzoneVO.setPozId(pozId); |
... | ... | @@ -521,6 +533,12 @@ |
| 521 | 533 |
mainzoneVO.setSortOver("D");
|
| 522 | 534 |
} |
| 523 | 535 |
egovPopupManageService.resetMainVOSort(mainzoneVO); |
| 536 |
+ }else if("subMainzone".equals(fileVO.getMenuName())) { //메인비주얼 수정
|
|
| 537 |
+ egovPopupManageService.updateSubMainzone(mainzoneVO); |
|
| 538 |
+ if(mainzoneVO.getSort() < mainzoneVO.getBeSort() ){ //sortOver : A 후번호로 변경 , D : 선번호로 변경
|
|
| 539 |
+ mainzoneVO.setSortOver("D");
|
|
| 540 |
+ } |
|
| 541 |
+ egovPopupManageService.resetSubMainVOSort(mainzoneVO); |
|
| 524 | 542 |
}else if("popupzone".equals(fileVO.getMenuName())) { //매뉴별 비주얼
|
| 525 | 543 |
egovPopupManageService.updatePopupzone(popupzoneVO); |
| 526 | 544 |
if(popupzoneVO.getSort() < popupzoneVO.getBeSort() ){ //sortOver : A 후번호로 변경 , D : 선번호로 변경
|
--- src/main/java/itn/com/uss/ion/pwm/service/EgovPopupManageService.java
+++ src/main/java/itn/com/uss/ion/pwm/service/EgovPopupManageService.java
... | ... | @@ -123,6 +123,8 @@ |
| 123 | 123 |
public int getMainMaxSort() throws Exception; |
| 124 | 124 |
|
| 125 | 125 |
public void insertMainzone(MainzoneVO mainzoneVO) throws Exception; |
| 126 |
+ |
|
| 127 |
+ public void insertSubMainzone(MainzoneVO mainzoneVO) throws Exception; |
|
| 126 | 128 |
|
| 127 | 129 |
public void resetMainSort(MainzoneVO mainzoneVO) throws Exception; |
| 128 | 130 |
|
... | ... | @@ -137,6 +139,8 @@ |
| 137 | 139 |
public void updateMainSortDown(SortVO sortVO) throws Exception; |
| 138 | 140 |
|
| 139 | 141 |
public void updateMainzone(MainzoneVO mainzoneVO) throws Exception; |
| 142 |
+ |
|
| 143 |
+ public void updateSubMainzone(MainzoneVO mainzoneVO) throws Exception; |
|
| 140 | 144 |
|
| 141 | 145 |
public int selectPopupzoneListTotCnt(PopupzoneVO popupzoneVo) throws Exception; |
| 142 | 146 |
|
... | ... | @@ -145,6 +149,8 @@ |
| 145 | 149 |
public void resetVOSort(PopupzoneVO popupzoneVO) throws Exception; |
| 146 | 150 |
|
| 147 | 151 |
public void resetMainVOSort(MainzoneVO mainzoneVO) throws Exception; |
| 152 |
+ |
|
| 153 |
+ public void resetSubMainVOSort(MainzoneVO mainzoneVO) throws Exception; |
|
| 148 | 154 |
|
| 149 | 155 |
public List<SocialVO> selectSocialList(SocialVO socialVO) throws Exception; |
| 150 | 156 |
|
--- src/main/java/itn/com/uss/ion/pwm/service/MainzoneVO.java
+++ src/main/java/itn/com/uss/ion/pwm/service/MainzoneVO.java
... | ... | @@ -18,6 +18,8 @@ |
| 18 | 18 |
import java.io.Serializable; |
| 19 | 19 |
|
| 20 | 20 |
import itn.com.cmm.ComDefaultVO; |
| 21 |
+import lombok.Getter; |
|
| 22 |
+import lombok.Setter; |
|
| 21 | 23 |
|
| 22 | 24 |
/** |
| 23 | 25 |
* @Class Name : MainzoneVO.java |
... | ... | @@ -35,6 +37,8 @@ |
| 35 | 37 |
* |
| 36 | 38 |
* |
| 37 | 39 |
*/ |
| 40 |
+@Getter |
|
| 41 |
+@Setter |
|
| 38 | 42 |
public class MainzoneVO extends ComDefaultVO implements Serializable {
|
| 39 | 43 |
|
| 40 | 44 |
|
... | ... | @@ -95,190 +99,8 @@ |
| 95 | 99 |
|
| 96 | 100 |
private String ntceEnddeHH = ""; |
| 97 | 101 |
private String ntceEnddeMM = ""; |
| 98 |
- |
|
| 99 |
- public int getSeq() {
|
|
| 100 |
- return seq; |
|
| 101 |
- } |
|
| 102 |
- |
|
| 103 |
- public void setSeq(int seq) {
|
|
| 104 |
- this.seq = seq; |
|
| 105 |
- } |
|
| 106 |
- |
|
| 107 |
- public String getUpfile() {
|
|
| 108 |
- return upfile; |
|
| 109 |
- } |
|
| 110 |
- |
|
| 111 |
- public void setUpfile(String upfile) {
|
|
| 112 |
- this.upfile = upfile; |
|
| 113 |
- } |
|
| 114 |
- |
|
| 115 |
- public String getUpfileUrl() {
|
|
| 116 |
- return upfileUrl; |
|
| 117 |
- } |
|
| 118 |
- |
|
| 119 |
- public void setUpfileUrl(String upfileUrl) {
|
|
| 120 |
- this.upfileUrl = upfileUrl; |
|
| 121 |
- } |
|
| 122 |
- |
|
| 123 |
- public String getContent() {
|
|
| 124 |
- return content; |
|
| 125 |
- } |
|
| 126 |
- |
|
| 127 |
- public void setContent(String content) {
|
|
| 128 |
- this.content = content; |
|
| 129 |
- } |
|
| 130 |
- |
|
| 131 |
- public String getMlink() {
|
|
| 132 |
- return mlink; |
|
| 133 |
- } |
|
| 134 |
- |
|
| 135 |
- public void setMlink(String mlink) {
|
|
| 136 |
- this.mlink = mlink; |
|
| 137 |
- } |
|
| 138 |
- |
|
| 139 |
- public String getIstarget() {
|
|
| 140 |
- return istarget; |
|
| 141 |
- } |
|
| 142 |
- |
|
| 143 |
- public void setIstarget(String istarget) {
|
|
| 144 |
- this.istarget = istarget; |
|
| 145 |
- } |
|
| 146 |
- |
|
| 147 |
- public String getDel() {
|
|
| 148 |
- return del; |
|
| 149 |
- } |
|
| 150 |
- |
|
| 151 |
- public void setDel(String del) {
|
|
| 152 |
- this.del = del; |
|
| 153 |
- } |
|
| 154 |
- |
|
| 155 |
- public int getSort() {
|
|
| 156 |
- return sort; |
|
| 157 |
- } |
|
| 158 |
- |
|
| 159 |
- public void setSort(int sort) {
|
|
| 160 |
- this.sort = sort; |
|
| 161 |
- } |
|
| 162 |
- |
|
| 163 |
- public String getRegdt() {
|
|
| 164 |
- return regdt; |
|
| 165 |
- } |
|
| 166 |
- |
|
| 167 |
- public void setRegdt(String regdt) {
|
|
| 168 |
- this.regdt = regdt; |
|
| 169 |
- } |
|
| 170 |
- |
|
| 171 |
- public String getMainzoneImage() {
|
|
| 172 |
- return mainzoneImage; |
|
| 173 |
- } |
|
| 174 |
- |
|
| 175 |
- public void setMainzoneImage(String mainzoneImage) {
|
|
| 176 |
- this.mainzoneImage = mainzoneImage; |
|
| 177 |
- } |
|
| 178 |
- |
|
| 179 |
- public String getMainzoneImageFile() {
|
|
| 180 |
- return mainzoneImageFile; |
|
| 181 |
- } |
|
| 182 |
- |
|
| 183 |
- public void setMainzoneImageFile(String mainzoneImageFile) {
|
|
| 184 |
- this.mainzoneImageFile = mainzoneImageFile; |
|
| 185 |
- } |
|
| 186 |
- |
|
| 187 |
- public String getMazId() {
|
|
| 188 |
- return mazId; |
|
| 189 |
- } |
|
| 190 |
- |
|
| 191 |
- public void setMazId(String mazId) {
|
|
| 192 |
- this.mazId = mazId; |
|
| 193 |
- } |
|
| 194 |
- |
|
| 195 |
- public String getMazNm() {
|
|
| 196 |
- return mazNm; |
|
| 197 |
- } |
|
| 198 |
- |
|
| 199 |
- public void setMazNm(String mazNm) {
|
|
| 200 |
- this.mazNm = mazNm; |
|
| 201 |
- } |
|
| 202 |
- |
|
| 203 |
- public String getUseYn() {
|
|
| 204 |
- return useYn; |
|
| 205 |
- } |
|
| 206 |
- |
|
| 207 |
- public void setUseYn(String useYn) {
|
|
| 208 |
- this.useYn = useYn; |
|
| 209 |
- } |
|
| 210 |
- |
|
| 211 |
- public String getRegisterId() {
|
|
| 212 |
- return registerId; |
|
| 213 |
- } |
|
| 214 |
- |
|
| 215 |
- public void setRegisterId(String registerId) {
|
|
| 216 |
- this.registerId = registerId; |
|
| 217 |
- } |
|
| 218 |
- |
|
| 219 |
- public String getModdt() {
|
|
| 220 |
- return moddt; |
|
| 221 |
- } |
|
| 222 |
- |
|
| 223 |
- public void setModdt(String moddt) {
|
|
| 224 |
- this.moddt = moddt; |
|
| 225 |
- } |
|
| 226 |
- |
|
| 227 |
- public String getDeviceType() {
|
|
| 228 |
- return deviceType; |
|
| 229 |
- } |
|
| 230 |
- |
|
| 231 |
- public void setDeviceType(String deviceType) {
|
|
| 232 |
- this.deviceType = deviceType; |
|
| 233 |
- } |
|
| 234 |
- |
|
| 235 |
- public String getNtceBgnde() {
|
|
| 236 |
- return ntceBgnde; |
|
| 237 |
- } |
|
| 238 |
- |
|
| 239 |
- public void setNtceBgnde(String ntceBgnde) {
|
|
| 240 |
- this.ntceBgnde = ntceBgnde; |
|
| 241 |
- } |
|
| 242 |
- |
|
| 243 |
- public String getNtceEndde() {
|
|
| 244 |
- return ntceEndde; |
|
| 245 |
- } |
|
| 246 |
- |
|
| 247 |
- public void setNtceEndde(String ntceEndde) {
|
|
| 248 |
- this.ntceEndde = ntceEndde; |
|
| 249 |
- } |
|
| 250 |
- |
|
| 251 |
- public String getNtceBgndeHH() {
|
|
| 252 |
- return ntceBgndeHH; |
|
| 253 |
- } |
|
| 254 |
- |
|
| 255 |
- public void setNtceBgndeHH(String ntceBgndeHH) {
|
|
| 256 |
- this.ntceBgndeHH = ntceBgndeHH; |
|
| 257 |
- } |
|
| 258 |
- |
|
| 259 |
- public String getNtceBgndeMM() {
|
|
| 260 |
- return ntceBgndeMM; |
|
| 261 |
- } |
|
| 262 |
- |
|
| 263 |
- public void setNtceBgndeMM(String ntceBgndeMM) {
|
|
| 264 |
- this.ntceBgndeMM = ntceBgndeMM; |
|
| 265 |
- } |
|
| 266 |
- |
|
| 267 |
- public String getNtceEnddeHH() {
|
|
| 268 |
- return ntceEnddeHH; |
|
| 269 |
- } |
|
| 270 |
- |
|
| 271 |
- public void setNtceEnddeHH(String ntceEnddeHH) {
|
|
| 272 |
- this.ntceEnddeHH = ntceEnddeHH; |
|
| 273 |
- } |
|
| 274 |
- |
|
| 275 |
- public String getNtceEnddeMM() {
|
|
| 276 |
- return ntceEnddeMM; |
|
| 277 |
- } |
|
| 278 |
- |
|
| 279 |
- public void setNtceEnddeMM(String ntceEnddeMM) {
|
|
| 280 |
- this.ntceEnddeMM = ntceEnddeMM; |
|
| 281 |
- } |
|
| 282 |
- |
|
| 102 |
+ |
|
| 103 |
+ private String topTxt = ""; |
|
| 104 |
+ private String lowTxt = ""; |
|
| 283 | 105 |
|
| 284 | 106 |
} |
--- src/main/java/itn/com/uss/ion/pwm/service/impl/EgovPopupManageServiceImpl.java
+++ src/main/java/itn/com/uss/ion/pwm/service/impl/EgovPopupManageServiceImpl.java
... | ... | @@ -239,6 +239,11 @@ |
| 239 | 239 |
public void insertMainzone(MainzoneVO mainzoneVO) throws Exception {
|
| 240 | 240 |
dao.insertMainzone(mainzoneVO); |
| 241 | 241 |
} |
| 242 |
+ |
|
| 243 |
+ @Override |
|
| 244 |
+ public void insertSubMainzone(MainzoneVO mainzoneVO) throws Exception {
|
|
| 245 |
+ dao.insertSubMainzone(mainzoneVO); |
|
| 246 |
+ } |
|
| 242 | 247 |
|
| 243 | 248 |
@Override |
| 244 | 249 |
public void resetMainSort(MainzoneVO mainzoneVO) throws Exception {
|
... | ... | @@ -295,6 +300,11 @@ |
| 295 | 300 |
dao.updateMainzone(mainzoneVO); |
| 296 | 301 |
} |
| 297 | 302 |
|
| 303 |
+ @Override |
|
| 304 |
+ public void updateSubMainzone(MainzoneVO mainzoneVO) throws Exception {
|
|
| 305 |
+ dao.updateSubMainzone(mainzoneVO); |
|
| 306 |
+ } |
|
| 307 |
+ |
|
| 298 | 308 |
//사용자 메인화면 롤링 배너 이미지 조회 |
| 299 | 309 |
@Override |
| 300 | 310 |
public List<MainzoneVO> selectMainzoneListRolling() throws Exception{
|
... | ... | @@ -324,6 +334,12 @@ |
| 324 | 334 |
dao.resetMainVOSort(mainzoneVO); |
| 325 | 335 |
|
| 326 | 336 |
} |
| 337 |
+ |
|
| 338 |
+ @Override |
|
| 339 |
+ public void resetSubMainVOSort(MainzoneVO mainzoneVO) throws Exception {
|
|
| 340 |
+ dao.resetSubMainVOSort(mainzoneVO); |
|
| 341 |
+ |
|
| 342 |
+ } |
|
| 327 | 343 |
|
| 328 | 344 |
@Override |
| 329 | 345 |
public List<SocialVO> selectSocialList(SocialVO socialVO) throws Exception {
|
--- src/main/java/itn/com/uss/ion/pwm/service/impl/PopupManageDAO.java
+++ src/main/java/itn/com/uss/ion/pwm/service/impl/PopupManageDAO.java
... | ... | @@ -193,6 +193,10 @@ |
| 193 | 193 |
public void insertMainzone(MainzoneVO mainzoneVO) throws Exception{
|
| 194 | 194 |
insert("MainzoneManage.insertMainzone", mainzoneVO);
|
| 195 | 195 |
} |
| 196 |
+ |
|
| 197 |
+ public void insertSubMainzone(MainzoneVO mainzoneVO) throws Exception{
|
|
| 198 |
+ insert("MainzoneManage.insertSubMainzone", mainzoneVO);
|
|
| 199 |
+ } |
|
| 196 | 200 |
|
| 197 | 201 |
public void resetMainSort(MainzoneVO mainzoneVO) throws Exception{
|
| 198 | 202 |
insert("MainzoneManage.resetMainSort", mainzoneVO);
|
... | ... | @@ -223,6 +227,10 @@ |
| 223 | 227 |
update("MainzoneManage.updateMainzone", mainzoneVO);
|
| 224 | 228 |
} |
| 225 | 229 |
|
| 230 |
+ public void updateSubMainzone(MainzoneVO mainzoneVO) throws Exception{
|
|
| 231 |
+ update("MainzoneManage.updateSubMainzone", mainzoneVO);
|
|
| 232 |
+ } |
|
| 233 |
+ |
|
| 226 | 234 |
@SuppressWarnings("unchecked")
|
| 227 | 235 |
public List<MainzoneVO> selectMainzoneListRolling() throws Exception{
|
| 228 | 236 |
return (List<MainzoneVO>) list("MainzoneManage.selectMainzoneListRolling");
|
... | ... | @@ -243,6 +251,10 @@ |
| 243 | 251 |
public void resetMainVOSort(MainzoneVO mainzoneVO) throws Exception{
|
| 244 | 252 |
update("MainzoneManage.resetMainVOSort", mainzoneVO);
|
| 245 | 253 |
} |
| 254 |
+ |
|
| 255 |
+ public void resetSubMainVOSort(MainzoneVO mainzoneVO) throws Exception{
|
|
| 256 |
+ update("MainzoneManage.resetSubMainVOSort", mainzoneVO);
|
|
| 257 |
+ } |
|
| 246 | 258 |
|
| 247 | 259 |
@SuppressWarnings("unchecked")
|
| 248 | 260 |
public List<SocialVO> selectSocialList(SocialVO socialVO) throws Exception{
|
--- src/main/java/itn/com/uss/ion/pwm/web/EgovPopupManageController.java
+++ src/main/java/itn/com/uss/ion/pwm/web/EgovPopupManageController.java
... | ... | @@ -845,6 +845,8 @@ |
| 845 | 845 |
HttpServletRequest request, Model model, HttpSession session) |
| 846 | 846 |
throws Exception {
|
| 847 | 847 |
|
| 848 |
+ System.out.println("??????");
|
|
| 849 |
+ |
|
| 848 | 850 |
MainzoneVO mainzoneVO = new MainzoneVO(); |
| 849 | 851 |
if("Modify".equals((String)commandMap.get("pageType"))){ //수정
|
| 850 | 852 |
String mazId = (String)commandMap.get("selectedId");
|
... | ... | @@ -896,7 +898,8 @@ |
| 896 | 898 |
|
| 897 | 899 |
//model.addAttribute("sortList", sortList);
|
| 898 | 900 |
model.addAttribute("mainzoneVO", mainzoneVO);
|
| 899 |
- |
|
| 901 |
+ |
|
| 902 |
+ System.out.println("mainzoneVO :: "+ mainzoneVO.toString());
|
|
| 900 | 903 |
/* 타겟 코드 */ |
| 901 | 904 |
ComDefaultCodeVO vo = new ComDefaultCodeVO(); |
| 902 | 905 |
vo.setCodeId("COM037");
|
--- src/main/java/itn/web/MainController.java
+++ src/main/java/itn/web/MainController.java
... | ... | @@ -80,6 +80,7 @@ |
| 80 | 80 |
import itn.com.cmm.util.WebUtil; |
| 81 | 81 |
import itn.com.uss.ion.bnr.service.BannerVO; |
| 82 | 82 |
import itn.com.uss.ion.bnr.service.EgovBannerService; |
| 83 |
+import itn.com.uss.ion.bnr.sub.service.SubMainZoneManageService; |
|
| 83 | 84 |
import itn.com.uss.ion.cnf.service.MetaTagManageService; |
| 84 | 85 |
import itn.com.uss.ion.cyb.service.CyberAlertManageService; |
| 85 | 86 |
import itn.com.uss.ion.cyb.service.CyberAlertManageVO; |
... | ... | @@ -262,6 +263,10 @@ |
| 262 | 263 |
|
| 263 | 264 |
@Resource(name = "mjonCandidateService") |
| 264 | 265 |
private MjonCandidateService mjonCandidateService; |
| 266 |
+ |
|
| 267 |
+ /** EgovPopupManageService */ |
|
| 268 |
+ @Resource(name = "subMainZoneManageService") |
|
| 269 |
+ private SubMainZoneManageService subMainZoneManageService; |
|
| 265 | 270 |
|
| 266 | 271 |
|
| 267 | 272 |
@Value("#{globalSettings['Globals.email.host']}")
|
... | ... | @@ -689,6 +694,13 @@ |
| 689 | 694 |
|
| 690 | 695 |
} |
| 691 | 696 |
|
| 697 |
+ {//하단 서브메인배너 롤링 이미지 불러오기
|
|
| 698 |
+ |
|
| 699 |
+ List<MainzoneVO> resultSubMainzoneList = subMainZoneManageService.selectSubMainzoneListRolling(); |
|
| 700 |
+ model.addAttribute("subMainzoneList", resultSubMainzoneList);
|
|
| 701 |
+ |
|
| 702 |
+ } |
|
| 703 |
+ |
|
| 692 | 704 |
return "web/main/mainPage"; |
| 693 | 705 |
} |
| 694 | 706 |
|
--- src/main/resources/egovframework/spring/com/context-idgen.xml
+++ src/main/resources/egovframework/spring/com/context-idgen.xml
... | ... | @@ -2002,6 +2002,24 @@ |
| 2002 | 2002 |
<property name="fillChar" value="0" /> |
| 2003 | 2003 |
</bean> |
| 2004 | 2004 |
|
| 2005 |
+ <!-- 알림이미지 ID Generation Strategy Config --> |
|
| 2006 |
+ <bean name="egovSubMainZoneIdGnrService" |
|
| 2007 |
+ class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" |
|
| 2008 |
+ destroy-method="destroy"> |
|
| 2009 |
+ <property name="dataSource" ref="dataSource" /> |
|
| 2010 |
+ <property name="strategy" ref="subMainZoneStrategy" /> |
|
| 2011 |
+ <property name="blockSize" value="10"/> |
|
| 2012 |
+ <property name="table" value="IDS"/> |
|
| 2013 |
+ <property name="tableName" value="MAZ_S_ID"/> |
|
| 2014 |
+ </bean> |
|
| 2015 |
+ <!-- 메인상단 이미지 ID Generation Strategy Config --> |
|
| 2016 |
+ <bean name="subMainZoneStrategy" |
|
| 2017 |
+ class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl"> |
|
| 2018 |
+ <property name="prefix" value="MAZS_" /> |
|
| 2019 |
+ <property name="cipers" value="12" /> |
|
| 2020 |
+ <property name="fillChar" value="0" /> |
|
| 2021 |
+ </bean> |
|
| 2022 |
+ |
|
| 2005 | 2023 |
|
| 2006 | 2024 |
<!-- 컨텐츠 관리 ID Generation Strategy Config --> |
| 2007 | 2025 |
<bean name="egovCntManageIdGnrService" |
--- src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-uss-ion-bnr.xml
+++ src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-uss-ion-bnr.xml
... | ... | @@ -4,4 +4,5 @@ |
| 4 | 4 |
|
| 5 | 5 |
<sqlMapConfig> |
| 6 | 6 |
<sqlMap resource="egovframework/sqlmap/com/uss/ion/bnr/EgovBanner_SQL_Mysql.xml"/><!-- 배너 추가 --> |
| 7 |
+ <sqlMap resource="egovframework/sqlmap/let/uss/ion/bnr/SubMainZoneManage_SQL_Mysql.xml"/><!-- 서브팝업관리 --> |
|
| 7 | 8 |
</sqlMapConfig> |
+++ src/main/resources/egovframework/sqlmap/let/uss/ion/bnr/SubMainZoneManage_SQL_Mysql.xml
... | ... | @@ -0,0 +1,205 @@ |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> | |
| 3 | +<!-- | |
| 4 | + 수정일 수정자 수정내용 | |
| 5 | + =========== ======== ================================================= | |
| 6 | + 2011.10.06 이기하 보안 취약점 점검사항 반영 $->#변경 | |
| 7 | +--> | |
| 8 | +<sqlMap namespace="UnityLink"> | |
| 9 | + | |
| 10 | + <typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/> | |
| 11 | + <typeAlias alias="comDefaultVO" type="itn.com.cmm.ComDefaultVO"/> | |
| 12 | + <typeAlias alias="PopupManageVO" type="itn.com.uss.ion.pwm.service.PopupManageVO" /> | |
| 13 | + <typeAlias alias="popupzoneVO" type="itn.com.uss.ion.pwm.service.PopupzoneVO"/> | |
| 14 | + <typeAlias alias="mainzoneVO" type="itn.com.uss.ion.pwm.service.MainzoneVO"/> | |
| 15 | + <typeAlias alias="socialVO" type="itn.com.uss.ion.pwm.service.SocialVO"/> | |
| 16 | + <typeAlias alias="sortVO" type="itn.com.uss.ion.pwm.service.SortVO"/> | |
| 17 | + <!-- ::ResultMap 선언 --> | |
| 18 | + <resultMap id="PopupManageVOs" class="itn.com.uss.ion.pwm.service.PopupManageVO"> | |
| 19 | + <result property="popupId" column="POPUP_ID" columnIndex="1"/> | |
| 20 | + <result property="popupTitleNm" column="POPUP_SJ_NM" columnIndex="2"/> | |
| 21 | + <result property="fileUrl" column="FILE_URL" columnIndex="3"/> | |
| 22 | + <result property="popupHlc" column="POPUP_VRTICL_LC" columnIndex="4"/> | |
| 23 | + <result property="popupWlc" column="POPUP_WIDTH_LC" columnIndex="5"/> | |
| 24 | + <result property="popupHSize" column="POPUP_VRTICL_SIZE" columnIndex="6"/> | |
| 25 | + <result property="popupWSize" column="POPUP_WIDTH_SIZE" columnIndex="7"/> | |
| 26 | + <result property="ntceBgnde" column="NTCE_BGNDE" columnIndex="8"/> | |
| 27 | + <result property="ntceEndde" column="NTCE_ENDDE" columnIndex="9"/> | |
| 28 | + <result property="stopVewAt" column="STOPVEW_SETUP_AT" columnIndex="10"/> | |
| 29 | + <result property="ntceAt" column="NTCE_AT" columnIndex="11"/> | |
| 30 | + <result property="frstRegisterPnttm" column="FRST_REGIST_PNTTM" columnIndex="12"/> | |
| 31 | + <result property="frstRegisterId" column="FRST_REGISTER_ID" columnIndex="13"/> | |
| 32 | + <result property="lastUpdusrPnttm" column="LAST_UPDT_PNTTM" columnIndex="14"/> | |
| 33 | + <result property="lastUpdusrId" column="LAST_UPDUSR_ID" columnIndex="15"/> | |
| 34 | + <result property="popupType" column="POPUP_TYPE" columnIndex="16"/> | |
| 35 | + <result property="scrollType" column="SCROLL_TYPE" columnIndex="17"/> | |
| 36 | + <result property="nttCn" column="NTT_CN" columnIndex="18"/> | |
| 37 | + <result property="sortNum" column="SORT_NUM" columnIndex="19"/> | |
| 38 | + </resultMap> | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + <!-- 매인이미지 관리자 리스트 --> | |
| 44 | + <select id="subMainzoneManage.selectSubMainzoneList" parameterClass="mainzoneVO" resultClass="egovMap"> | |
| 45 | + /* subMainzoneManage.selectSubMainzoneList */ | |
| 46 | + <![CDATA[ | |
| 47 | + SELECT | |
| 48 | + MAZ_ID, | |
| 49 | + CONCAT("/UPLOADROOT/POPUPZONE/",UPFILE ) AS IMG, | |
| 50 | + CONTENT AS IMG_ALT, | |
| 51 | + MLINK, | |
| 52 | + ISTARGET, | |
| 53 | + CASE WHEN | |
| 54 | + DATE(SUBDATE(NOW(), INTERVAL 7 DAY)) < DATE(REGDT) | |
| 55 | + THEN 'Y' | |
| 56 | + ELSE 'N' | |
| 57 | + END AS NEW_FLAG, | |
| 58 | + DATE_FORMAT(REGDT, '%Y-%m-%d') REGDT, | |
| 59 | + MAINZONE_IMAGE, | |
| 60 | + MAINZONE_IMAGE_FILE , | |
| 61 | + SORT, | |
| 62 | + MAZ_NM, | |
| 63 | + USE_YN, | |
| 64 | + (SELECT USER_NM FROM LETTNEMPLYRINFO WHERE ESNTL_ID = REGISTER_ID) REGISTER_ID , | |
| 65 | + DEVICETYPE, | |
| 66 | + STR_TO_DATE(NTCE_BGNDE,'%Y%m%d') AS ntceBgnde, | |
| 67 | + STR_TO_DATE(NTCE_ENDDE,'%Y%m%d') AS ntceEndde | |
| 68 | + FROM SUB_MAINZONE MB | |
| 69 | + WHERE 1=1 | |
| 70 | + ]]> | |
| 71 | + <isEqual property="useYn" compareValue="Y"> | |
| 72 | + AND USE_YN = 'Y' | |
| 73 | + </isEqual> | |
| 74 | + <isNotEmpty property="searchKeyword"> | |
| 75 | + <isEqual property="searchCondition" compareValue=""> | |
| 76 | + AND ( MAZ_NM LIKE CONCAT ('%', #searchKeyword#,'%') | |
| 77 | + OR CONTENT LIKE CONCAT ('%', #searchKeyword#,'%') | |
| 78 | + ) | |
| 79 | + </isEqual> | |
| 80 | + <isEqual property="searchCondition" compareValue="1"> | |
| 81 | + AND MAZ_NM LIKE CONCAT ('%', #searchKeyword#,'%') | |
| 82 | + </isEqual> | |
| 83 | + <isEqual property="searchCondition" compareValue="2"> | |
| 84 | + AND CONTENT LIKE CONCAT ('%', #searchKeyword#,'%') | |
| 85 | + </isEqual> | |
| 86 | + </isNotEmpty> | |
| 87 | + <isNotEmpty property="searchConditionSite"> | |
| 88 | + AND SITE_ID = #searchConditionSite# | |
| 89 | + </isNotEmpty> | |
| 90 | + <isNotEmpty property="deviceType"> | |
| 91 | + <isEqual property="deviceType" compareValue="P"> | |
| 92 | + AND ( DEVICETYPE IS NULL OR DEVICETYPE = #deviceType# ) | |
| 93 | + </isEqual> | |
| 94 | + <isEqual property="deviceType" compareValue="M"> | |
| 95 | + AND DEVICETYPE = #deviceType# | |
| 96 | + </isEqual> | |
| 97 | + </isNotEmpty> | |
| 98 | + ORDER BY SORT | |
| 99 | + LIMIT #recordCountPerPage# OFFSET #firstIndex# | |
| 100 | + </select> | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + <select id="subMainzoneManage.selectSubMainzoneCount" resultClass="int"> | |
| 105 | + /* subMainzoneManage.selectSubMainzoneCount */ | |
| 106 | + SELECT | |
| 107 | + COUNT(*) totcnt | |
| 108 | + FROM SUB_MAINZONE | |
| 109 | + WHERE 1=1 | |
| 110 | + <isNotEmpty property="searchKeyword"> | |
| 111 | + <isEqual property="searchCondition" compareValue=""> | |
| 112 | + AND ( MAZ_NM LIKE CONCAT ('%', #searchKeyword#,'%') | |
| 113 | + OR CONTENT LIKE CONCAT ('%', #searchKeyword#,'%') | |
| 114 | + ) | |
| 115 | + </isEqual> | |
| 116 | + <isEqual property="searchCondition" compareValue="1"> | |
| 117 | + AND MAZ_NM LIKE CONCAT ('%', #searchKeyword#,'%') | |
| 118 | + </isEqual> | |
| 119 | + <isEqual property="searchCondition" compareValue="2"> | |
| 120 | + AND CONTENT LIKE CONCAT ('%', #searchKeyword#,'%') | |
| 121 | + </isEqual> | |
| 122 | + </isNotEmpty> | |
| 123 | + <isNotEmpty property="searchConditionSite"> | |
| 124 | + AND SITE_ID = #searchConditionSite# | |
| 125 | + </isNotEmpty> | |
| 126 | + </select> | |
| 127 | + | |
| 128 | + | |
| 129 | + <select id="subMainzoneManage.selectSubMainzoneVO" parameterClass="String" resultClass="mainzoneVO"> | |
| 130 | + /* subMainzoneManage.selectSubMainzoneVO */ | |
| 131 | + SELECT | |
| 132 | + MAZ_ID AS MAZID, | |
| 133 | + UPFILE, | |
| 134 | + CONCAT("/UPLOADROOT/POPUPZONE/",UPFILE ) AS UPFILEURL, | |
| 135 | + CONTENT, | |
| 136 | + MLINK, | |
| 137 | + ISTARGET, | |
| 138 | + REGDT, | |
| 139 | + DEL, | |
| 140 | + SORT, | |
| 141 | + MAINZONE_IMAGE AS MAINZONEIMAGE , | |
| 142 | + MAINZONE_IMAGE_FILE AS MAINZONEIMAGEFILE, | |
| 143 | + MAZ_NM AS MAZNM, | |
| 144 | + USE_YN AS USEYN, | |
| 145 | + DATE_FORMAT(MODDT, '%Y-%m-%d %T') MODDT , | |
| 146 | + (SELECT USER_NM FROM LETTNEMPLYRINFO WHERE ESNTL_ID = REGISTER_ID) REGISTERID, | |
| 147 | + DEVICETYPE AS deviceType, | |
| 148 | + NTCE_BGNDE AS ntceBgnde, | |
| 149 | + NTCE_ENDDE AS ntceEndde, | |
| 150 | + TOP_TXT AS topTxt, | |
| 151 | + LOW_TXT AS lowTxt | |
| 152 | + FROM SUB_MAINZONE | |
| 153 | + WHERE MAZ_ID=#mazId# | |
| 154 | + </select> | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + <select id="subMainzoneManage.selectSubMainzoneListRolling" resultClass="mainzoneVO"> | |
| 159 | + /* subMainzoneManage.selectSubMainzoneListRolling */ | |
| 160 | + SELECT MZ.MAZ_ID AS mazId, | |
| 161 | + MZ.CONTENT AS content, | |
| 162 | + MZ.SORT AS sort, | |
| 163 | + MZ.MAINZONE_IMAGE_FILE AS mainzoneImageFile, | |
| 164 | + MZ.MAZ_NM AS mazNm, | |
| 165 | + MZ.MLINK AS mlink, | |
| 166 | + MZ.TOP_TXT AS topTxt, | |
| 167 | + MZ.LOW_TXT AS lowTxt | |
| 168 | + FROM SUB_MAINZONE MZ | |
| 169 | + WHERE MZ.NTCE_BGNDE IS NOT NULL | |
| 170 | + AND MZ.NTCE_ENDDE IS NOT NULL | |
| 171 | + | |
| 172 | + <![CDATA[ | |
| 173 | + AND DATE_FORMAT(SYSDATE(),'%Y%m%d%H%i') >= MZ.NTCE_BGNDE | |
| 174 | + AND DATE_FORMAT(SYSDATE(),'%Y%m%d%H%i') <= MZ.NTCE_ENDDE | |
| 175 | + ]]> | |
| 176 | + AND MZ.USE_YN = 'Y' | |
| 177 | + ORDER BY MZ.SORT | |
| 178 | + | |
| 179 | + | |
| 180 | + </select> | |
| 181 | + | |
| 182 | + <delete id="subMainzoneManage.deleteSubMainzone" parameterClass="String"> | |
| 183 | + DELETE FROM SUB_MAINZONE WHERE MAZ_ID=#mazId# | |
| 184 | + </delete> | |
| 185 | + | |
| 186 | + | |
| 187 | + <update id="subMainzoneManage.resetSubMainVOSort" parameterClass="mainzoneVO"> | |
| 188 | + UPDATE SUB_MAINZONE A , | |
| 189 | + (SELECT ROW_NUMBER() OVER(ORDER BY SORT | |
| 190 | + <isEqual property="sortOver" compareValue="A"> | |
| 191 | + , MODDT ASC | |
| 192 | + </isEqual> | |
| 193 | + <isEqual property="sortOver" compareValue="D"> | |
| 194 | + , MODDT DESC | |
| 195 | + </isEqual> | |
| 196 | + ) AS SORT1 , MAZ_ID FROM SUB_MAINZONE | |
| 197 | + WHERE 1=1 | |
| 198 | + ORDER BY SORT1 | |
| 199 | + ) B | |
| 200 | + SET A.SORT = B.SORT1 | |
| 201 | + WHERE A.MAZ_ID = B.MAZ_ID | |
| 202 | + </update> | |
| 203 | + | |
| 204 | + | |
| 205 | +</sqlMap>(No newline at end of file) |
--- src/main/resources/egovframework/sqlmap/let/uss/pwm/PopupManage_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/uss/pwm/PopupManage_SQL_Mysql.xml
... | ... | @@ -605,6 +605,54 @@ |
| 605 | 605 |
) |
| 606 | 606 |
</insert> |
| 607 | 607 |
|
| 608 |
+ <insert id="MainzoneManage.insertSubMainzone" parameterClass="mainzoneVO"> |
|
| 609 |
+ INSERT INTO SUB_MAINZONE ( |
|
| 610 |
+ MAZ_ID, |
|
| 611 |
+ UPFILE, |
|
| 612 |
+ CONTENT, |
|
| 613 |
+ MLINK, |
|
| 614 |
+ ISTARGET, |
|
| 615 |
+ REGDT, |
|
| 616 |
+ MODDT, |
|
| 617 |
+ DEL, |
|
| 618 |
+ SORT, |
|
| 619 |
+ MAINZONE_IMAGE, |
|
| 620 |
+ MAINZONE_IMAGE_FILE, |
|
| 621 |
+ MAZ_NM, |
|
| 622 |
+ USE_YN, |
|
| 623 |
+ <isNotEmpty property="deviceType"> |
|
| 624 |
+ DEVICETYPE, |
|
| 625 |
+ </isNotEmpty> |
|
| 626 |
+ REGISTER_ID, |
|
| 627 |
+ NTCE_BGNDE, |
|
| 628 |
+ NTCE_ENDDE, |
|
| 629 |
+ TOP_TXT, |
|
| 630 |
+ LOW_TXT |
|
| 631 |
+ ) VALUES ( |
|
| 632 |
+ #mazId#, |
|
| 633 |
+ #upfile#, |
|
| 634 |
+ #content#, |
|
| 635 |
+ #mlink#, |
|
| 636 |
+ #istarget#, |
|
| 637 |
+ now(), |
|
| 638 |
+ now(), |
|
| 639 |
+ #del#, |
|
| 640 |
+ #sort#, |
|
| 641 |
+ #mainzoneImage#, |
|
| 642 |
+ #mainzoneImageFile#, |
|
| 643 |
+ #mazNm#, |
|
| 644 |
+ #useYn#, |
|
| 645 |
+ <isNotEmpty property="deviceType"> |
|
| 646 |
+ #deviceType#, |
|
| 647 |
+ </isNotEmpty> |
|
| 648 |
+ #registerId#, |
|
| 649 |
+ #ntceBgnde#, |
|
| 650 |
+ #ntceEndde#, |
|
| 651 |
+ #topTxt#, |
|
| 652 |
+ #lowTxt# |
|
| 653 |
+ ) |
|
| 654 |
+ </insert> |
|
| 655 |
+ |
|
| 608 | 656 |
<update id="MainzoneManage.resetMainSort" parameterClass="mainzoneVO"> |
| 609 | 657 |
UPDATE MAINZONE A , (SELECT ROW_NUMBER() OVER(ORDER BY SORT) AS SORT1 , MAZ_ID FROM MAINZONE |
| 610 | 658 |
WHERE 1=1 |
... | ... | @@ -690,6 +738,28 @@ |
| 690 | 738 |
WHERE MAZ_ID=#mazId# |
| 691 | 739 |
</update> |
| 692 | 740 |
|
| 741 |
+ <update id="MainzoneManage.updateSubMainzone" parameterClass="mainzoneVO"> |
|
| 742 |
+ UPDATE SUB_MAINZONE SET |
|
| 743 |
+ UPFILE=#upfile#, |
|
| 744 |
+ CONTENT=#content#, |
|
| 745 |
+ MLINK=#mlink#, |
|
| 746 |
+ ISTARGET=#istarget#, |
|
| 747 |
+ SORT=#sort#, |
|
| 748 |
+ MAINZONE_IMAGE = #mainzoneImage#, |
|
| 749 |
+ MAINZONE_IMAGE_FILE = #mainzoneImageFile#, |
|
| 750 |
+ USE_YN = #useYn#, |
|
| 751 |
+ MAZ_NM = #mazNm# , |
|
| 752 |
+ <isNotEmpty property="deviceType"> |
|
| 753 |
+ DEVICETYPE = #deviceType# , |
|
| 754 |
+ </isNotEmpty> |
|
| 755 |
+ NTCE_BGNDE = #ntceBgnde#, |
|
| 756 |
+ NTCE_ENDDE = #ntceEndde#, |
|
| 757 |
+ TOP_TXT = #topTxt#, |
|
| 758 |
+ LOW_TXT = #lowTxt#, |
|
| 759 |
+ MODDT = now() |
|
| 760 |
+ WHERE MAZ_ID=#mazId# |
|
| 761 |
+ </update> |
|
| 762 |
+ |
|
| 693 | 763 |
<select id="MainzoneManage.selectMainzoneCount" resultClass="int"> |
| 694 | 764 |
SELECT |
| 695 | 765 |
COUNT(*) totcnt |
... | ... | @@ -743,6 +813,23 @@ |
| 743 | 813 |
, MODDT DESC |
| 744 | 814 |
</isEqual> |
| 745 | 815 |
) AS SORT1 , MAZ_ID FROM MAINZONE |
| 816 |
+ WHERE 1=1 |
|
| 817 |
+ ORDER BY SORT1 |
|
| 818 |
+ ) B |
|
| 819 |
+ SET A.SORT = B.SORT1 |
|
| 820 |
+ WHERE A.MAZ_ID = B.MAZ_ID |
|
| 821 |
+ </update> |
|
| 822 |
+ |
|
| 823 |
+ <update id="MainzoneManage.resetSubMainVOSort" parameterClass="mainzoneVO"> |
|
| 824 |
+ UPDATE SUB_MAINZONE A , |
|
| 825 |
+ (SELECT ROW_NUMBER() OVER(ORDER BY SORT |
|
| 826 |
+ <isEqual property="sortOver" compareValue="A"> |
|
| 827 |
+ , MODDT ASC |
|
| 828 |
+ </isEqual> |
|
| 829 |
+ <isEqual property="sortOver" compareValue="D"> |
|
| 830 |
+ , MODDT DESC |
|
| 831 |
+ </isEqual> |
|
| 832 |
+ ) AS SORT1 , MAZ_ID FROM SUB_MAINZONE |
|
| 746 | 833 |
WHERE 1=1 |
| 747 | 834 |
ORDER BY SORT1 |
| 748 | 835 |
) B |
... | ... | @@ -914,7 +1001,8 @@ |
| 914 | 1001 |
MZ.CONTENT AS content, |
| 915 | 1002 |
MZ.SORT AS sort, |
| 916 | 1003 |
MZ.MAINZONE_IMAGE_FILE AS mainzoneImageFile, |
| 917 |
- MZ.MAZ_NM AS mazNm |
|
| 1004 |
+ MZ.MAZ_NM AS mazNm, |
|
| 1005 |
+ MZ.MLINK AS mlink |
|
| 918 | 1006 |
FROM MAINZONE MZ |
| 919 | 1007 |
WHERE MZ.NTCE_BGNDE IS NOT NULL |
| 920 | 1008 |
AND MZ.NTCE_ENDDE IS NOT NULL |
+++ src/main/webapp/WEB-INF/jsp/uss/ion/bnr/sub/subMainZoneList.jsp
... | ... | @@ -0,0 +1,254 @@ |
| 1 | +<%-- | |
| 2 | + Class Name : EgovPopupList.jsp | |
| 3 | + Description : 팝업창관리 목록 페이지 | |
| 4 | + Modification Information | |
| 5 | + | |
| 6 | + 수정일 수정자 수정내용 | |
| 7 | + ------- -------- --------------------------- | |
| 8 | + 2009.09.16 장동한 최초 생성 | |
| 9 | + | |
| 10 | + author : 공통서비스 개발팀 장동한 | |
| 11 | + since : 2009.09.16 | |
| 12 | + | |
| 13 | + Copyright (C) 2009 by MOPAS All right reserved. | |
| 14 | +--%> | |
| 15 | +<%@ page contentType="text/html; charset=utf-8"%> | |
| 16 | +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> | |
| 17 | +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> | |
| 18 | +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> | |
| 19 | +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> | |
| 20 | +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> | |
| 21 | +<% | |
| 22 | + response.setHeader("Cache-Control","no-store"); | |
| 23 | + response.setHeader("Pragma","no-cache"); | |
| 24 | + response.setDateHeader("Expires",0); | |
| 25 | + if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache"); | |
| 26 | +%> | |
| 27 | +<c:set var="ImgUrl" value="${pageContext.request.contextPath}/images/egovframework/com/cmm/" /> | |
| 28 | +<c:set var="CssUrl" value="${pageContext.request.contextPath}/css/egovframework/com/" /> | |
| 29 | +<c:set var="JsUrl" value="${pageContext.request.contextPath}/js/egovframework/com/uss/ion/pwm/"/> | |
| 30 | +<!DOCTYPE html> | |
| 31 | +<html lang="ko"> | |
| 32 | +<head> | |
| 33 | +<title>메인이미지 관리</title> | |
| 34 | +<meta http-equiv="content-type" content="text/html; charset=utf-8"> | |
| 35 | +<script type="text/javaScript" language="javascript"> | |
| 36 | +$(document).ready(function(){ | |
| 37 | + | |
| 38 | + $(".img_cont").click(function(e){ | |
| 39 | + clickEvent = true; | |
| 40 | + }); | |
| 41 | + | |
| 42 | + $(".check").click(function(e){ | |
| 43 | + e.stopPropagation(); | |
| 44 | + }); | |
| 45 | +}); | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | +/* 메인창 수정 화면*/ | |
| 51 | +function fn_mainzone_view(id, pageType){ | |
| 52 | + document.modiForm.selectedId.value = id; | |
| 53 | + document.modiForm.pageType.value = "Modify"; | |
| 54 | + document.modiForm.action = "<c:url value='/uss/ion/bnr/sub/subMainzoneModify.do'/>"; | |
| 55 | + document.modiForm.submit(); | |
| 56 | +} | |
| 57 | + | |
| 58 | +/* 메인창 등록화면*/ | |
| 59 | +function fn_mainzone_insert_view(){ | |
| 60 | + document.modiForm.pageType.value = "Insert"; | |
| 61 | + document.modiForm.action = "<c:url value='/uss/ion/bnr/sub/subMainzoneModify.do'/>"; | |
| 62 | + document.modiForm.submit(); | |
| 63 | +} | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | +function doDep3(event){ | |
| 68 | + event.preventDefault(); | |
| 69 | +} | |
| 70 | + | |
| 71 | +function linkPage(pageNo){ | |
| 72 | + <c:if test="${!empty loginId}"> | |
| 73 | + if(""!= document.listForm.searchKeyword.value){ | |
| 74 | + updateRecentSearch();//최근검색어 등록 | |
| 75 | + } | |
| 76 | + </c:if> | |
| 77 | + | |
| 78 | + var listForm = document.listForm ; | |
| 79 | + listForm.pageIndex.value = pageNo ; | |
| 80 | + listForm.searchCondition.value = $('#searchCondition').val(); | |
| 81 | + listForm.submit(); | |
| 82 | +} | |
| 83 | + | |
| 84 | + | |
| 85 | +function fnCheckAll() { | |
| 86 | + var checkField = document.listForm.del; | |
| 87 | + if(document.listForm.checkAll.checked) { | |
| 88 | + if(checkField) { | |
| 89 | + if(checkField.length > 1) { | |
| 90 | + for(var i=0; i < checkField.length; i++) { | |
| 91 | + checkField[i].checked = true; | |
| 92 | + } | |
| 93 | + } else { | |
| 94 | + checkField.checked = true; | |
| 95 | + } | |
| 96 | + } | |
| 97 | + } else { | |
| 98 | + if(checkField) { | |
| 99 | + if(checkField.length > 1) { | |
| 100 | + for(var j=0; j < checkField.length; j++) { | |
| 101 | + checkField[j].checked = false; | |
| 102 | + } | |
| 103 | + } else { | |
| 104 | + checkField.checked = false; | |
| 105 | + } | |
| 106 | + } | |
| 107 | + } | |
| 108 | +} | |
| 109 | + | |
| 110 | + | |
| 111 | +/* 체크된 메인배너 목록 삭제 */ | |
| 112 | +function fn_mainzone_contest_delete(){ | |
| 113 | + if($("input[name=del]:checked").length == 0){ | |
| 114 | + alert("선택된 항목이 없습니다."); | |
| 115 | + return; | |
| 116 | + } | |
| 117 | + | |
| 118 | + if (confirm("해당 메인이미지 삭제하시겠습니까?")){ | |
| 119 | + frm = document.listForm; | |
| 120 | + frm.action = "<c:url value='/uss/ion/bnr/sub/subMainzoneListDelete.do' />"; | |
| 121 | + frm.submit(); | |
| 122 | + } | |
| 123 | +} | |
| 124 | + | |
| 125 | +/* 테마별 색상맞추기 */ | |
| 126 | +$(window).load(function() { | |
| 127 | + $('table.bbs01_list td.subject a').hover( | |
| 128 | + function () { | |
| 129 | + $(this).css("color","#d10000"); | |
| 130 | + }, | |
| 131 | + function () { | |
| 132 | + $(this).css("color","#333333"); | |
| 133 | + } | |
| 134 | + ); | |
| 135 | +}); | |
| 136 | +</script> | |
| 137 | +</head> | |
| 138 | +<body> | |
| 139 | +<form name="listForm" action="<c:url value='/uss/ion/bnr/sub/subMainZoneList.do'/>" method="post"> | |
| 140 | + <input name="pageIndex" type="hidden" value="<c:out value='${mainzoneVO.pageIndex}'/>"/> | |
| 141 | + <input type="hidden" name="selectedId" /> | |
| 142 | + <input type="hidden" name="pageType" /> | |
| 143 | + <div class="contWrap"> | |
| 144 | + <div class="pageTitle"> | |
| 145 | + <div class="pageIcon"><img src="/pb/img/pageTitIcon4.png" alt=""></div> | |
| 146 | + <h2 class="titType1 c_222222 fwBold">서비스안내 배너관리</h2> | |
| 147 | + <p class="tType6 c_999999">사이트별로 사용자 메인 상단에 적용되는 (하단)비주얼 이미지를 등록, 수정, 삭제할 수 있습니다.</p> | |
| 148 | + </div> | |
| 149 | + <div class="pageCont"> | |
| 150 | + <div class="listSerch"> | |
| 151 | + <c:if test="${siteId eq 'super'}"> | |
| 152 | + <select name="searchConditionSite" id="searchConditionSite" title="사이트검색"> | |
| 153 | + <option value="" <c:if test="${empty userSearchVO.searchConditionSite }">selected="selected"</c:if> >전체 사이트</option> | |
| 154 | + <c:forEach var="result" items="${siteManageList}" varStatus="status"> | |
| 155 | + <option value="${result.siteId}" <c:if test="${result.siteId eq mainzoneVO.searchConditionSite }">selected="selected"</c:if> >${result.siteNm}</option> | |
| 156 | + </c:forEach> | |
| 157 | + </select> | |
| 158 | + </c:if> | |
| 159 | + <select name="searchCondition" id="searchCondition" class="select" title="검색조건선택"> | |
| 160 | + <option value=''>전체</option> | |
| 161 | + <option value='1' <c:if test="${mainzoneVO.searchCondition == '1'}">selected</c:if>>제목</option> | |
| 162 | + <option value='2' <c:if test="${mainzoneVO.searchCondition == '2'}">selected</c:if>>대체텍스트</option> | |
| 163 | + </select> | |
| 164 | + <input id="searchKeyword" name="searchKeyword" class="recentSearch" type="text" value="<c:out value='${mainzoneVO.searchKeyword}'/>" size="40" title="검색" maxlength="100"/> | |
| 165 | + <input type="button" class="btnType1" value="검색" onclick="linkPage(1); return false;"> | |
| 166 | + </div> | |
| 167 | + <div class="listTop"> | |
| 168 | + <p class="tType5">총 <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${paginationInfo.totalRecordCount}" pattern="#,###" /></span>건</p> | |
| 169 | + <div class="rightWrap"> | |
| 170 | + <input type="button" class="printBtn" > | |
| 171 | + <select name="pageUnit" id="pageUnit" class="select" title="검색조건선택" onchange="linkPage(1);"> | |
| 172 | + <option value='8' <c:if test="${mainzoneVO.pageUnit == '8' or searchVO.pageUnit == ''}">selected</c:if>>8개씩 보기</option> | |
| 173 | + <option value='16' <c:if test="${mainzoneVO.pageUnit == '16'}">selected</c:if>>16개씩 보기</option> | |
| 174 | + <option value='24' <c:if test="${mainzoneVO.pageUnit == '24'}">selected</c:if>>24개씩 보기</option> | |
| 175 | + </select> | |
| 176 | + </div> | |
| 177 | + </div> | |
| 178 | + <div class="galleryListWrap"> | |
| 179 | + <ul class="inline"> | |
| 180 | + <c:forEach var="result" items="${mainzoneList}" varStatus="status"> | |
| 181 | + <li onclick="javascript:fn_mainzone_view('${result.mazId}'); return false;"> | |
| 182 | + <div class="check"><input type="checkbox" name="del" id="check_box${status.index}" value="${result.mazId}"></div> | |
| 183 | +<%-- <div class="img_cont_check"><input type="checkbox" name="del" id="img_cont_check_box${status.index}" class="img_cont_check_box" value="${result.mazId}"><label for="img_cont_check_box${status.index}"></label></div> --%> | |
| 184 | + <ul class="listCategory"> | |
| 185 | + <c:if test="${siteId eq 'super'}"> | |
| 186 | + <c:forEach var="siteManageList" items="${siteManageList}" varStatus="status"> | |
| 187 | + <c:if test="${result.siteId eq siteManageList.siteId}"> | |
| 188 | + <li> | |
| 189 | + <c:out value="${siteManageList.siteNm}"/> | |
| 190 | + </li> | |
| 191 | + </c:if> | |
| 192 | + </c:forEach> | |
| 193 | + </c:if> | |
| 194 | + <li class="useCg"> | |
| 195 | + <c:if test="${result.useYn eq 'Y'}"> | |
| 196 | + 사용 | |
| 197 | + </c:if> | |
| 198 | + <c:if test="${result.useYn ne 'Y'}"> | |
| 199 | + 미사용 | |
| 200 | + </c:if> | |
| 201 | + </li> | |
| 202 | + </ul> | |
| 203 | + <div class="imgBox"><img onerror="this.src='/pb/img/noImg.png'" src="<c:url value='/cmm/fms/getImage.do'/>?atchFileId=<c:out value="${result.mainzoneImageFile}"/>" alt=""></div> | |
| 204 | + <%-- <div class="imgBox"><img onerror="this.src='/pb/img/noImg.png'" src="<c:url value='/cmm/fms/getImage.do'/>?atchFileId=<c:out value="${result.mainzoneImageFile}"/>" alt=""></div> --%> | |
| 205 | + <div class="listInfo"> | |
| 206 | + <h3>${result.mazNm}</h3> | |
| 207 | + <table> | |
| 208 | + <tr> | |
| 209 | + <td colspan="2">작성자 : ${result.registerId}</td> | |
| 210 | + </tr> | |
| 211 | + <tr> | |
| 212 | + <td>노출순서 : ${result.sort}</td> | |
| 213 | + <td class="right">${result.ntceBgnde} ~ ${result.ntceEndde}</td> | |
| 214 | + </tr> | |
| 215 | + </table> | |
| 216 | + </div> | |
| 217 | + </li> | |
| 218 | + </c:forEach> | |
| 219 | + </ul> | |
| 220 | + <c:if test="${empty mainzoneList}"> | |
| 221 | + <div class="board1_btn"> | |
| 222 | + <ul style="text-align: center;"><spring:message code="common.nodata.msg" /></ul> | |
| 223 | + </div> | |
| 224 | + </c:if> | |
| 225 | + | |
| 226 | + </div> | |
| 227 | + <div class="btnWrap"> | |
| 228 | + <input type="button" class="btnType2" value="삭제" onclick="fn_mainzone_contest_delete(); return false;"> | |
| 229 | + <input type="button" class="btnType1" value="등록" onclick="fn_mainzone_insert_view(); return false;"> | |
| 230 | + </div> | |
| 231 | + <!-- 페이지 네비게이션 시작 --> | |
| 232 | + <c:if test="${!empty mainzoneList}"> | |
| 233 | + <div class="page"> | |
| 234 | + <ul class="inline"> | |
| 235 | + <ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" /> | |
| 236 | + </ul> | |
| 237 | + </div> | |
| 238 | + </c:if> | |
| 239 | + <!-- //페이지 네비게이션 끝 --> | |
| 240 | + </div> | |
| 241 | + </div> | |
| 242 | +</form> | |
| 243 | +<form name="modiForm" method="get" action="<c:url value='/uss/ion/bnr/sub/subMainzoneModify.do'/>" > | |
| 244 | + <input name="selectedId" type="hidden" /> | |
| 245 | + <input name="pageType" type="hidden" /> | |
| 246 | +</form> | |
| 247 | +<form name="searchForm" method="get" action="<c:url value='/uss/ion/bnr/sub/subMainZoneList.do'/>"> | |
| 248 | + <input name="pageIndex" type="hidden" value="1" /> | |
| 249 | + <input name="searchCondition" type="hidden" /> | |
| 250 | + <input name="searchKeyword" type="hidden" /> | |
| 251 | + <input name="searchConditionSite" type="hidden" /> | |
| 252 | +</form> | |
| 253 | +</body> | |
| 254 | +</html> |
+++ src/main/webapp/WEB-INF/jsp/uss/ion/bnr/sub/subMainZoneModify.jsp
... | ... | @@ -0,0 +1,583 @@ |
| 1 | +<%-- | |
| 2 | + Class Name : EgovPopupList.jsp | |
| 3 | + Description : 팝업창관리 목록 페이지 | |
| 4 | + Modification Information | |
| 5 | + | |
| 6 | + 수정일 수정자 수정내용 | |
| 7 | + ------- -------- --------------------------- | |
| 8 | + 2009.09.16 장동한 최초 생성 | |
| 9 | + | |
| 10 | + author : 공통서비스 개발팀 장동한 | |
| 11 | + since : 2009.09.16 | |
| 12 | + | |
| 13 | + Copyright (C) 2009 by MOPAS All right reserved. | |
| 14 | +--%> | |
| 15 | +<%@ page contentType="text/html; charset=utf-8"%> | |
| 16 | +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> | |
| 17 | +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> | |
| 18 | +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> | |
| 19 | +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> | |
| 20 | +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> | |
| 21 | +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> | |
| 22 | +<% | |
| 23 | + response.setHeader("Cache-Control","no-store"); | |
| 24 | + response.setHeader("Pragma","no-cache"); | |
| 25 | + response.setDateHeader("Expires",0); | |
| 26 | + if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache"); | |
| 27 | +%> | |
| 28 | +<c:set var="ImgUrl" value="${pageContext.request.contextPath}/images/egovframework/com/cmm/" /> | |
| 29 | +<c:set var="CssUrl" value="${pageContext.request.contextPath}/css/egovframework/com/" /> | |
| 30 | +<c:set var="JsUrl" value="${pageContext.request.contextPath}/js/egovframework/com/uss/ion/pwm/"/> | |
| 31 | +<!DOCTYPE html> | |
| 32 | +<html lang="ko"> | |
| 33 | +<head> | |
| 34 | +<title>팝업창관리 관리</title> | |
| 35 | +<meta http-equiv="content-type" content="text/html; charset=utf-8"> | |
| 36 | +<script type="text/javascript" src="<c:url value='/js/EgovCalPopup.js' />"></script> | |
| 37 | +<script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script> | |
| 38 | +<script type="text/javaScript" language="javascript"> | |
| 39 | +$( document ).ready(function(){ | |
| 40 | + | |
| 41 | + makeDate('ntceBgndeYYYMMDD'); | |
| 42 | + makeDate('ntceEnddeYYYMMDD'); | |
| 43 | + | |
| 44 | + | |
| 45 | + document.getElementById("mlink").addEventListener("paste", function(event) { | |
| 46 | + // 클립보드 데이터를 가져옴 | |
| 47 | + let pastedText = event.clipboardData.getData("text"); | |
| 48 | + | |
| 49 | + // 콘솔 출력 (붙여넣은 URL 확인) | |
| 50 | + | |
| 51 | + | |
| 52 | + console.log("붙여넣기 한 URL:", pastedText); | |
| 53 | + | |
| 54 | + // 불필요한 파라미터 제거 후 새로운 URL 생성 | |
| 55 | + let cleanedUrl = cleanUrlParameters(pastedText); | |
| 56 | + | |
| 57 | + // input 필드에 깨끗한 URL 입력 | |
| 58 | + setTimeout(() => { | |
| 59 | + this.value = cleanedUrl; | |
| 60 | + console.log("정리된 URL:", cleanedUrl); | |
| 61 | + }, 0); | |
| 62 | + }); | |
| 63 | + | |
| 64 | +}); | |
| 65 | + | |
| 66 | +/** | |
| 67 | + * URL에서 빈 값의 파라미터를 제거하는 함수 | |
| 68 | + * @param {string} url 원본 URL 문자열 | |
| 69 | + * @returns {string} 불필요한 파라미터가 제거된 URL | |
| 70 | + */ | |
| 71 | + function cleanUrlParameters(url) { | |
| 72 | + try { | |
| 73 | + // URL이 절대경로 (/web/... 형태)인지 확인 | |
| 74 | + let hasFullDomain = url.startsWith("http://") || url.startsWith("https://"); | |
| 75 | + let urlObj; | |
| 76 | + | |
| 77 | + if (hasFullDomain) { | |
| 78 | + // 도메인이 포함된 URL 처리 | |
| 79 | + urlObj = new URL(url); | |
| 80 | + } else { | |
| 81 | + // 절대경로 URL 처리 (가상의 도메인 추가 후 파싱) | |
| 82 | + urlObj = new URL("https://www.munjaon.co.kr" + url); | |
| 83 | + } | |
| 84 | + | |
| 85 | + let params = new URLSearchParams(urlObj.search); | |
| 86 | + | |
| 87 | + // ❗ 값이 비어있는 모든 파라미터 제거 | |
| 88 | + for (let [key, value] of [...params.entries()]) { // `params.entries()`를 배열로 변환하여 반복 | |
| 89 | + if (!value.trim()) { // 값이 비어있는 경우 제거 | |
| 90 | + params.delete(key); | |
| 91 | + } | |
| 92 | + } | |
| 93 | + | |
| 94 | + // 정리된 URL 반환 | |
| 95 | + let cleanedPath = urlObj.pathname + (params.toString() ? "?" + params.toString() : ""); | |
| 96 | + // 정리된 URL 반환 (도메인을 제거하고 절대경로만 반환) | |
| 97 | + return cleanedPath.replace(/^https:\/\/www\.munjaon\.co\.kr/, ""); | |
| 98 | + | |
| 99 | + } catch (e) { | |
| 100 | + console.warn("잘못된 URL 형식:", url); | |
| 101 | + return url; // URL 파싱 실패 시 원본 유지 | |
| 102 | + } | |
| 103 | + } | |
| 104 | + | |
| 105 | +//게시기간이 없으면 초기 값 입력 | |
| 106 | +function makeDate(id){ | |
| 107 | + if($("#"+id).val()== '--'){ | |
| 108 | + | |
| 109 | + let today = new Date(); | |
| 110 | + let formattedDate = today.toISOString().split('T')[0]; // YYYY-MM-DD 형식 | |
| 111 | + $("#"+id).val(formattedDate); | |
| 112 | + } | |
| 113 | +} | |
| 114 | + | |
| 115 | + | |
| 116 | +/* pagination 페이지 링크 function */ | |
| 117 | +function goList(){ | |
| 118 | + document.searchForm.submit(); | |
| 119 | +} | |
| 120 | + | |
| 121 | +/* 등록시 값 확인 */ | |
| 122 | +function fn_checkForm() { | |
| 123 | + frm = document.writeForm; | |
| 124 | + if(frm.mazNm.value=="") { | |
| 125 | + alert("비주얼명을 입력해 주십시오"); | |
| 126 | + frm.mazNm.focus(); | |
| 127 | + return false; | |
| 128 | + } | |
| 129 | + if(frm.content.value=="") { | |
| 130 | + alert("대체텍스트를 입력해 주십시오"); | |
| 131 | + frm.content.focus(); | |
| 132 | + return false; | |
| 133 | + } | |
| 134 | + if(frm.sort.value=="") { | |
| 135 | + alert("노출순서를 입력해 주십시오"); | |
| 136 | + frm.sort.focus(); | |
| 137 | + return false; | |
| 138 | + }else{ | |
| 139 | + var regexp = /^[0-9]*$/ | |
| 140 | + if( !regexp.test(frm.sort.value) ) { | |
| 141 | + alert("노출순서에는 숫자만 입력하세요"); | |
| 142 | + frm.sort.focus(); | |
| 143 | + return false; | |
| 144 | + } | |
| 145 | + } | |
| 146 | + | |
| 147 | + return true; | |
| 148 | +} | |
| 149 | + | |
| 150 | +// /* 글 등록 function */ | |
| 151 | +// function fn_mainzone_insert() { | |
| 152 | +// frm = document.writeForm; | |
| 153 | +// frm.action = "<c:url value='/uss/ion/pwm/mainzoneInsert.do'/>"; | |
| 154 | +// if(fn_checkForm()) | |
| 155 | +// frm.submit(); | |
| 156 | +// } | |
| 157 | + | |
| 158 | +/* 배너 삭제 function */ | |
| 159 | +function fn_mainzone_delete() { | |
| 160 | + var msg; | |
| 161 | + msg = "해당 메인이미지를 삭제하시겠습니까?"; | |
| 162 | + | |
| 163 | + if (confirm(msg)) { | |
| 164 | + frm = document.writeForm; | |
| 165 | + frm.del.value = frm.mazId.value ; | |
| 166 | + frm.action = "<c:url value='/uss/ion/bnr/sub/subMainzoneListDelete.do'/>"; | |
| 167 | + frm.submit(); | |
| 168 | + } | |
| 169 | + | |
| 170 | +} | |
| 171 | + | |
| 172 | +function validate(method_parm) { | |
| 173 | + frm = document.writeForm; | |
| 174 | + if(frm.mazNm.value=="") { | |
| 175 | + alert("비주얼명을 입력해 주십시오"); | |
| 176 | + frm.mazNm.focus(); | |
| 177 | + return false; | |
| 178 | + } | |
| 179 | + if(frm.content.value=="") { | |
| 180 | + alert("대체텍스트를 입력해 주십시오"); | |
| 181 | + frm.content.focus(); | |
| 182 | + return false; | |
| 183 | + } | |
| 184 | + | |
| 185 | + console.log('isTbodyEmpty("tbody_fiielist") : ', isTbodyEmpty("tbody_fiielist")); | |
| 186 | + if(isTbodyEmpty("tbody_fiielist")){ | |
| 187 | + alert("이미지를 첨부해 주세요"); | |
| 188 | + return false; | |
| 189 | + } | |
| 190 | + | |
| 191 | + | |
| 192 | + if(frm.sort.value=="") { | |
| 193 | + alert("노출순서를 입력해 주십시오"); | |
| 194 | + frm.sort.focus(); | |
| 195 | + return false; | |
| 196 | + }else{ | |
| 197 | + var regexp = /^[0-9]*$/ | |
| 198 | + if( !regexp.test(frm.sort.value) ) { | |
| 199 | + alert("노출순서에는 숫자만 입력하세요"); | |
| 200 | + frm.sort.focus(); | |
| 201 | + return false; | |
| 202 | + } | |
| 203 | + } | |
| 204 | + if(frm.topTxt.value=="") { | |
| 205 | + alert("상단텍스트를 입력해 주십시오"); | |
| 206 | + frm.content.focus(); | |
| 207 | + return false; | |
| 208 | + } | |
| 209 | + if(frm.lowTxt.value=="") { | |
| 210 | + alert("하단텍스트를 입력해 주십시오"); | |
| 211 | + frm.content.focus(); | |
| 212 | + return false; | |
| 213 | + } | |
| 214 | + | |
| 215 | + | |
| 216 | + var ntceBgndeYYYMMDD = document.getElementById('ntceBgndeYYYMMDD').value; | |
| 217 | + var ntceEnddeYYYMMDD = document.getElementById('ntceEnddeYYYMMDD').value; | |
| 218 | + | |
| 219 | + console.log("ntceBgndeYYYMMDD ::: "+ntceBgndeYYYMMDD); | |
| 220 | + console.log("ntceEnddeYYYMMDD ::: "+ntceEnddeYYYMMDD); | |
| 221 | + | |
| 222 | + if(ntceBgndeYYYMMDD ==""){ | |
| 223 | + | |
| 224 | + alert("게시기간 시작일을 입력해 주세요."); | |
| 225 | + return false; | |
| 226 | + | |
| 227 | + }else if(ntceEnddeYYYMMDD == ""){ | |
| 228 | + | |
| 229 | + alert("게시기간 종료일을 입력해 주세요."); | |
| 230 | + return false; | |
| 231 | + | |
| 232 | + }else{ | |
| 233 | + | |
| 234 | + var iChkBeginDe = Number( ntceBgndeYYYMMDD.replaceAll("-","") ); | |
| 235 | + var iChkEndDe = Number( ntceEnddeYYYMMDD.replaceAll("-","") ); | |
| 236 | + | |
| 237 | + if(iChkBeginDe > iChkEndDe || iChkEndDe < iChkBeginDe ){ | |
| 238 | + alert("게시시작일자는 게시종료일자 보다 클수 없고,\n게시종료일자는 게시시작일자 보다 작을수 없습니다. "); | |
| 239 | + return; | |
| 240 | + } | |
| 241 | + | |
| 242 | + frm.ntceBgnde.value = ntceBgndeYYYMMDD.replaceAll('-','') + fn_egov_SelectBoxValue('ntceBgndeHH') + fn_egov_SelectBoxValue('ntceBgndeMM'); | |
| 243 | + frm.ntceEndde.value = ntceEnddeYYYMMDD.replaceAll('-','') + fn_egov_SelectBoxValue('ntceEnddeHH') + fn_egov_SelectBoxValue('ntceEnddeMM'); | |
| 244 | + | |
| 245 | + } | |
| 246 | + | |
| 247 | + var msg = "서브 메인 배너를 등록하시겠습니까?"; | |
| 248 | + | |
| 249 | + if(method_parm == "mainzone_U"){ | |
| 250 | + | |
| 251 | + msg ="서브 메인 배너를 수정하시겠습니까?"; | |
| 252 | + | |
| 253 | + } | |
| 254 | + | |
| 255 | + if(!confirm(msg)){ | |
| 256 | + return false; | |
| 257 | + } | |
| 258 | + | |
| 259 | + // 공통 수정/삭제 :: /uss/ion/fms/FmsFileInsertAjax.do | |
| 260 | + goSave(method_parm); | |
| 261 | +} | |
| 262 | +function fn_egov_downFile(atchFileId, fileSn){ | |
| 263 | + window.open("<c:url value='/cmm/fms/FileDown.do?atchFileId="+atchFileId+"&fileSn="+fileSn+"'/>"); | |
| 264 | +} | |
| 265 | + | |
| 266 | +function isTbodyEmpty(tbodyId) { | |
| 267 | + const tbody = document.getElementById(tbodyId); | |
| 268 | + if (!tbody) { | |
| 269 | + console.error("해당 ID를 가진 tbody가 없습니다."); | |
| 270 | + return false; | |
| 271 | + } | |
| 272 | + // tbody 내부에 <tr> 태그가 있는지 확인 | |
| 273 | + return tbody.querySelector("tr") === null; | |
| 274 | +} | |
| 275 | + | |
| 276 | + | |
| 277 | +/* ******************************************************** | |
| 278 | +* SELECT BOX VALUE FUNCTION | |
| 279 | +******************************************************** */ | |
| 280 | +function fn_egov_SelectBoxValue(sbName) | |
| 281 | +{ | |
| 282 | + var FValue = ""; | |
| 283 | + for(var i=0; i < document.getElementById(sbName).length; i++) | |
| 284 | + { | |
| 285 | + if(document.getElementById(sbName).options[i].selected == true){ | |
| 286 | + | |
| 287 | + FValue=document.getElementById(sbName).options[i].value; | |
| 288 | + } | |
| 289 | + } | |
| 290 | + | |
| 291 | + return FValue; | |
| 292 | +} | |
| 293 | + | |
| 294 | +</script> | |
| 295 | +<style> | |
| 296 | +.date_format{width:91px !important;} | |
| 297 | +.del_file_btn{border: none;background-color: transparent;background-image: url(/direct/img/upload_delect_img.png);background-repeat: no-repeat;background-position: center center;vertical-align: middle;margin-top: -4px;margin-right: 15px;} | |
| 298 | +.file_size{color: #0388d2;font-weight: bold;} | |
| 299 | +.uploaded_obj{width: 100%;} | |
| 300 | +</style> | |
| 301 | +</head> | |
| 302 | +<body> | |
| 303 | +<form:form commandName="mainzoneVO" name="writeForm" enctype="multipart/form-data" method="post"> | |
| 304 | + <input type="hidden" name="deviceType" id="deviceType" value="P"/> | |
| 305 | + <input type="hidden" name="selectedId" /> | |
| 306 | + <form:input path="mazId" type="hidden" /> | |
| 307 | + <form:input path="del" type="hidden" /> | |
| 308 | + <form:input path="upfile" type="hidden" /> | |
| 309 | + <form:input path="mainzoneImageFile" type="hidden" /> | |
| 310 | + <form:hidden path="ntceBgnde" /> | |
| 311 | + <form:hidden path="ntceEndde" /> | |
| 312 | + | |
| 313 | + <input type="hidden" name="beSort" value="${mainzoneVO.beSort}" /> | |
| 314 | + <!-- 드래그앤 드롭 파라미터 --> | |
| 315 | + <input type="hidden" name="menuName" value="subMainzone" /> | |
| 316 | + <input type="hidden" name="fmsId" value="${mainzoneVO.mazId}" /> | |
| 317 | + <input type="hidden" name="limitcount" value="1" /><!-- 최대 업로드 파일갯수 --> | |
| 318 | + | |
| 319 | + <div class="contWrap"> | |
| 320 | + <div class="pageTitle"> | |
| 321 | + <div class="pageIcon"><img src="/pb/img/pageTitIcon4.png" alt=""></div> | |
| 322 | + <h2 class="titType1 c_222222 fwBold">서비스안내 배너관리 등록/수정</h2> | |
| 323 | + <p class="tType6 c_999999">사이트별로 사용자 메인 상단에 적용되는 비주얼 이미지를 등록, 수정, 삭제할 수 있습니다.</p> | |
| 324 | + </div> | |
| 325 | + <div class="pageNav"> | |
| 326 | + <img src="/pb/img/common/homeIcon.png" alt="홈이미지"> > <p class="topDepth">비주얼관리</p> > <p class="subDepth">메인비주얼관리</p> | |
| 327 | + </div> | |
| 328 | + <div class="pageCont"> | |
| 329 | + <div class="tableWrap"> | |
| 330 | + <p class="right fwMd"><span class="tType4 c_e40000 fwBold">*</span>는 필수입력 항목입니다.</p> | |
| 331 | + <table class="tbType2"> | |
| 332 | + <colgroup> | |
| 333 | + <col style="width: 15%"> | |
| 334 | + <col style="width: 85%"> | |
| 335 | + </colgroup> | |
| 336 | + <tbody> | |
| 337 | + <%-- <tr> | |
| 338 | + <th class="td_title1"><span class="star_t"></span>메인화면에 보이는 메인 이미지</th> | |
| 339 | + <td colspan="3" class="td_txt_exist"> | |
| 340 | + <c:if test="${mainzoneVO.mazId == null}"> | |
| 341 | + 등록된 메인 이미지가 없습니다. | |
| 342 | + </c:if> | |
| 343 | + <c:if test="${mainzoneVO.mazId != null}"> | |
| 344 | + <img alt="${mainzoneVO.content}" onerror="this.src='/images/no_img.jpg'" src='<c:url value='/cmm/fms/getImage.do'/>?atchFileId=<c:out value="${mainzoneVO.mainzoneImageFile}"/>' width="196" height="237" /> | |
| 345 | + </c:if> | |
| 346 | + </td> | |
| 347 | + </tr> --%> | |
| 348 | + <c:if test="${siteId eq 'super'}"> | |
| 349 | + <tr> | |
| 350 | + <th><span class="reqArea">사이트</span></th> | |
| 351 | + <td> | |
| 352 | + <select name="siteId" id="siteId" title="권한"> | |
| 353 | + <c:forEach var="resultList" items="${siteManageList}" varStatus="status"> | |
| 354 | + <option value="<c:out value="${resultList.siteId}"/>" | |
| 355 | + <c:if test="${mainzoneVO.siteId eq resultList.siteId}"> selected='selected' </c:if>> | |
| 356 | + <c:out value="${resultList.siteNm}"/> | |
| 357 | + </option> | |
| 358 | + </c:forEach> | |
| 359 | + </select> | |
| 360 | + </td> | |
| 361 | + </tr> | |
| 362 | + </c:if> | |
| 363 | + <c:if test="${not empty mainzoneVO.mazId }"> | |
| 364 | + <tr> | |
| 365 | + <th><span>원본이미지</span></th> | |
| 366 | + <td> | |
| 367 | + <c:if test="${mainzoneVO.mazId == ''}"> | |
| 368 | + <div class="imgBox"></div> | |
| 369 | + </c:if> | |
| 370 | + <c:if test="${mainzoneVO.mazId != ''}"> | |
| 371 | + <img alt="${mainzoneVO.content}" onerror="this.src='/pb/img/noImg.png'" src='<c:url value='/cmm/fms/getImage.do'/>?atchFileId=<c:out value="${mainzoneVO.mainzoneImageFile}"/>' style="max-width:300px;padding: 10px;" /> | |
| 372 | + <%-- <img alt="${mainzoneVO.content}" onerror="this.src='/images/no_img.jpg'" src='<c:url value='/cmm/fms/getImage.do'/>?atchFileId=<c:out value="${mainzoneVO.mainzoneImageFile}"/>' style="max-width:600px;" /> --%> | |
| 373 | + </c:if> | |
| 374 | + </td> | |
| 375 | + </tr> | |
| 376 | + </c:if> | |
| 377 | + <!-- <tr> --> | |
| 378 | + <!-- <th class="td_title1"><span class="star_t">*</span>기기종류</th> --> | |
| 379 | + <!-- <td colspan="3"> --> | |
| 380 | + <!-- <input type="radio" name="deviceType" id="deviceType" value="P" style="margin-left: 13px; margin-right: 5px;" --> | |
| 381 | + <!-- checked="checked" --> | |
| 382 | + <%-- ${mainzoneVO.deviceType eq 'P' or mainzoneVO.deviceType eq '' ? 'checked="checked"' : ''} --%> | |
| 383 | + <!-- >PC --> | |
| 384 | + <!-- <input type="radio" name="deviceType" id="deviceType" value="M" style="margin-left: 13px; margin-right: 5px;" --> | |
| 385 | + <%-- ${mainzoneVO.deviceType eq 'M' ? 'checked="checked"' : ''} --%> | |
| 386 | + <!-- >모바일 --> | |
| 387 | + <!-- </td> --> | |
| 388 | + <!-- </tr> --> | |
| 389 | + <tr> | |
| 390 | + <th><span class="reqArea">비주얼명</span></th> | |
| 391 | + <td> | |
| 392 | + <form:input path="mazNm" maxlength="30" /> | |
| 393 | + </td> | |
| 394 | + </tr> | |
| 395 | + <tr> | |
| 396 | + <th><span class="reqArea">사용여부</span></th> | |
| 397 | + <td> | |
| 398 | + <input type="radio" name="useYn" id="useY" value="Y" style="margin-left: 13px; margin-right: 5px;" ${mainzoneVO.useYn eq 'Y' or mainzoneVO.useYn eq '' ? 'checked="checked"' : ''} /><label for="">사용</label> | |
| 399 | + <input type="radio" name="useYn" id="useN" value="N" style="margin-left: 13px; margin-right: 5px;" ${mainzoneVO.useYn eq 'N' ? 'checked="checked"' : ''} /><label for="">미사용</label> | |
| 400 | + </td> | |
| 401 | + </tr> | |
| 402 | + | |
| 403 | + <tr> | |
| 404 | + <th><span class="reqArea">노출순서</span></th> | |
| 405 | + <td colspan="3"> | |
| 406 | + <form:input path="sort" maxlength="10" onkeyup="this.value=this.value.replace(/[^-\.0-9]/g,'')"/> | |
| 407 | + </td> | |
| 408 | + </tr> | |
| 409 | + <tr> | |
| 410 | + <th><span class="reqArea">게시기간</span></th> | |
| 411 | + <td> | |
| 412 | + <input type="hidden" name="cal_url" id="cal_url" value="<c:url value='/sym/cmm/EgovNormalCalPopup.do'/>" > | |
| 413 | + <input type="text" class="date_format" name="ntceBgndeYYYMMDD" id="ntceBgndeYYYMMDD" size="10" maxlength="10" class="readOnlyClass" value="<c:out value="${fn:substring(mainzoneVO.ntceBgnde, 0, 4)}"/>-<c:out value="${fn:substring(mainzoneVO.ntceBgnde, 4, 6)}"/>-<c:out value="${fn:substring(mainzoneVO.ntceBgnde, 6, 8)}"/>" readonly> | |
| 414 | + | |
| 415 | + <a href="#" onClick="javascript:fn_egov_NormalCalendar(document.forms.mainzoneVO, document.forms.mainzoneVO.ntceBgndeYYYMMDD);"> | |
| 416 | + <input type="button" class="calBtn"> | |
| 417 | + <%-- <img src="<c:url value='/images/egovframework/com/cmm/icon/bu_icon_carlendar.gif' />" align="middle" style="border:0px" alt="달력창팝업버튼이미지"> --%> | |
| 418 | + </a> | |
| 419 | + <form:select path="ntceBgndeHH" class="date_format"> | |
| 420 | + <form:options items="${ntceBgndeHH}" itemValue="code" itemLabel="codeNm"/> | |
| 421 | + </form:select>시 | |
| 422 | + <form:select path="ntceBgndeMM" class="date_format"> | |
| 423 | + <form:options items="${ntceBgndeMM}" itemValue="code" itemLabel="codeNm"/> | |
| 424 | + </form:select>분 | |
| 425 | +   ~   | |
| 426 | + <input type="text" class="date_format" name="ntceEnddeYYYMMDD" id="ntceEnddeYYYMMDD" size="10" maxlength="10" class="readOnlyClass" value="<c:out value="${fn:substring(mainzoneVO.ntceEndde, 0, 4)}"/>-<c:out value="${fn:substring(mainzoneVO.ntceEndde, 4, 6)}"/>-<c:out value="${fn:substring(mainzoneVO.ntceEndde, 6, 8)}"/>" readonly> | |
| 427 | + <a href="#" onClick="javascript:fn_egov_NormalCalendar(document.forms.mainzoneVO, document.forms.mainzoneVO.ntceEnddeYYYMMDD);"> | |
| 428 | + <input type="button" class="calBtn"> | |
| 429 | + <%-- <img src="<c:url value='/images/egovframework/com/cmm/icon/bu_icon_carlendar.gif' />" align="middle" style="border:0px" alt="달력창팝업버튼이미지"> --%> | |
| 430 | + </a> | |
| 431 | + <form:select path="ntceEnddeHH" class="date_format"> | |
| 432 | + <form:options items="${ntceEnddeHH}" itemValue="code" itemLabel="codeNm"/> | |
| 433 | + </form:select>시 | |
| 434 | + <form:select path="ntceEnddeMM" class="date_format"> | |
| 435 | + <form:options items="${ntceEnddeMM}" itemValue="code" itemLabel="codeNm"/> | |
| 436 | + </form:select>분 | |
| 437 | + </td> | |
| 438 | + </tr> | |
| 439 | + <tr> | |
| 440 | + <th><span class="reqArea">상단텍스트</span></th> | |
| 441 | + <td colspan="3"> | |
| 442 | + <form:input path="topTxt" maxlength="200" /> | |
| 443 | + </td> | |
| 444 | + </tr> | |
| 445 | + <tr> | |
| 446 | + <th><span class="reqArea">하단텍스트</span></th> | |
| 447 | + <td colspan="3"> | |
| 448 | + <form:input path="lowTxt" maxlength="200" /> | |
| 449 | + </td> | |
| 450 | + </tr> | |
| 451 | + <tr> | |
| 452 | + <th><span>링크주소</span></th> | |
| 453 | + <td colspan="3"> | |
| 454 | + <form:input path="mlink" maxlength="200" /> | |
| 455 | + </td> | |
| 456 | + </tr> | |
| 457 | + <tr> | |
| 458 | + <th><span class="reqArea">파일 첨부</span></th> | |
| 459 | + <td class="upload_area"> | |
| 460 | + <div class="file_upload_box no_img_box fileWrap"> | |
| 461 | + <table> | |
| 462 | + <colgroup> | |
| 463 | + <col style="width: 60%"> | |
| 464 | + <col style="width: 10%"> | |
| 465 | + <col style="width: 20%"> | |
| 466 | + <col style="width: 10%"> | |
| 467 | + </colgroup> | |
| 468 | + <thead> | |
| 469 | + <tr> | |
| 470 | + <th>파일명</th> | |
| 471 | + <th>크기</th> | |
| 472 | + <th>등록일시</th> | |
| 473 | + <th>삭제</th> | |
| 474 | + </tr> | |
| 475 | + </thead> | |
| 476 | + </table> | |
| 477 | + </div> | |
| 478 | + <div class="fileWrap fileAfter file_list_div asset_no_use_pro_table" style="display:none"> | |
| 479 | + <table> | |
| 480 | + <colgroup> | |
| 481 | + <col style="width: 60%"> | |
| 482 | + <col style="width: 10%"> | |
| 483 | + <col style="width: 20%"> | |
| 484 | + <col style="width: 10%"> | |
| 485 | + </colgroup> | |
| 486 | + <thead> | |
| 487 | + <tr> | |
| 488 | + <th>파일명</th> | |
| 489 | + <th>크기</th> | |
| 490 | + <th>등록일시</th> | |
| 491 | + <th>삭제</th> | |
| 492 | + </tr> | |
| 493 | + </thead> | |
| 494 | + <tbody id="tbody_fiielist"> | |
| 495 | + <c:forEach var="fileList" items="${fileList}" varStatus="status"> | |
| 496 | + <tr class="item_${fileList.atchFileId}_${fileList.fileSn} uploaded_obj"> | |
| 497 | + <td class="file_name"> | |
| 498 | + <a href="javascript:fn_egov_downFile('${fileList.atchFileId}','${fileList.fileSn}')"> | |
| 499 | + <img src="/direct/img/upload_hwp_img.png" alt="" /> | |
| 500 | + <span class="file_name_text">${fileList.orignlFileNm}</span> | |
| 501 | + </a> | |
| 502 | + </td> | |
| 503 | + <td><span class="file_size_text" value="${fileList.fileMg}"></span></td> | |
| 504 | + <td>${fileList.creatDt}</td> | |
| 505 | + <td> | |
| 506 | + <input type="button" class="delBtn" onclick="delAtchFile('${fileList.atchFileId}', '${fileList.fileSn}'); return false;"> | |
| 507 | + </td> | |
| 508 | + <input type="hidden" name="fileSize" class="item_file_size" value="${fileList.fileMg}" > | |
| 509 | + </tr> | |
| 510 | + </c:forEach> | |
| 511 | + </tbody> | |
| 512 | + </table> | |
| 513 | + </div> | |
| 514 | + <div class="fileInfo file_list_div"> | |
| 515 | + <ul class="inline"> | |
| 516 | + <li> | |
| 517 | + <p><span class="c_456ded fwBold totalfileCount">0</span>개 | <span class="c_456ded fwBold totalfileSize">0MB</span></p> | |
| 518 | + </li> | |
| 519 | + <li> | |
| 520 | + <p>최대 <span class="c_e40000 fwBold limitcount_li"></span>개 | <span class="c_e40000 fwBold upload_number">50MB</span>제한</p> | |
| 521 | + </li> | |
| 522 | + </ul> | |
| 523 | + </div> | |
| 524 | + <div class="uploadBtm"> | |
| 525 | + <input type="file" id="file_temp" name="file_temp" class="uploadFile"> | |
| 526 | + <!-- <span class="uploadTtype4">메인비주얼 이미지 크기는 </span><span class="uploadTtype4" style="color: red;">1920 X 843 </span>입니다.</p> --> | |
| 527 | + </div> | |
| 528 | + </td> | |
| 529 | + </tr> | |
| 530 | + <tr> | |
| 531 | + <th><span class="reqArea">대체텍스트</span></th> | |
| 532 | + <td> | |
| 533 | + <form:input path="content" maxlength="500" /> | |
| 534 | + </td> | |
| 535 | + </tr> | |
| 536 | + | |
| 537 | + <%-- <tr> | |
| 538 | + <th class="td_title1"><span class="star_t">*</span>첨부 파일</th> | |
| 539 | + <td colspan="3" class="td_txt_exist"> | |
| 540 | + <c:import url="/cmm/fms/selectFileInfsForUpdate.do" charEncoding="utf-8"> | |
| 541 | + <c:param name="param_atchFileId" value="${mainzoneVO.mainzoneImageFile }" /> | |
| 542 | + <c:param name="img_view" value="N" /> | |
| 543 | + <c:param name="img_view_w" value="200" /> | |
| 544 | + <c:param name="img_view_h" value="200" /> | |
| 545 | + <c:param name="updateFlag" value="N" /> | |
| 546 | + <c:param name="img_change_view" value="Y" /> | |
| 547 | + </c:import> | |
| 548 | + </td> | |
| 549 | + </tr> --%> | |
| 550 | + <c:if test="${!empty mainzoneVO.mazId}"> | |
| 551 | + <tr> | |
| 552 | + <th><span class="reqArea">최종수정일</span></th> | |
| 553 | + <td> | |
| 554 | + ${mainzoneVO.moddt} | |
| 555 | + </td> | |
| 556 | + </tr> | |
| 557 | + | |
| 558 | + <tr> | |
| 559 | + <th><span class="reqArea">작성자</span></th> | |
| 560 | + <td> | |
| 561 | + ${mainzoneVO.registerId} | |
| 562 | + </td> | |
| 563 | + </tr> | |
| 564 | + </c:if> | |
| 565 | + </tbody> | |
| 566 | + </table> | |
| 567 | + </div> | |
| 568 | + <div class="btnWrap right"> | |
| 569 | + <input type="button" class="btnType1 bg_888888" value="목 록" onclick="goList(); return false;" > | |
| 570 | + <c:if test="${!empty mainzoneVO.mazId }"> | |
| 571 | + <input type="button" class="btnType1 bg_ed4545" value="삭 제" onclick="fn_mainzone_delete(); return false;" > | |
| 572 | + <input type="button" class="btnType1" value="수 정" onclick="validate('mainzone_U'); return false;"> | |
| 573 | + </c:if> | |
| 574 | + <c:if test="${empty mainzoneVO.mazId }"> | |
| 575 | + <input type="button" class="btnType1" value="저 장" onclick="validate('mainzone_I'); return false;"> | |
| 576 | + </c:if> | |
| 577 | + </div> | |
| 578 | + </div> | |
| 579 | + </div> | |
| 580 | +</form:form> | |
| 581 | +<form name="searchForm" id="searchForm" method="get" action="<c:url value='/uss/ion/bnr/sub/subMainZoneList.do'/>" ></form> | |
| 582 | +</body> | |
| 583 | +</html> |
--- src/main/webapp/WEB-INF/jsp/uss/ion/pwm/MainZoneModify.jsp
+++ src/main/webapp/WEB-INF/jsp/uss/ion/pwm/MainZoneModify.jsp
... | ... | @@ -37,9 +37,81 @@ |
| 37 | 37 |
<script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script> |
| 38 | 38 |
<script type="text/javaScript" language="javascript"> |
| 39 | 39 |
$( document ).ready(function(){
|
| 40 |
+ |
|
| 41 |
+ makeDate('ntceBgndeYYYMMDD');
|
|
| 42 |
+ makeDate('ntceEnddeYYYMMDD');
|
|
| 43 |
+ |
|
| 44 |
+ |
|
| 45 |
+ document.getElementById("mlink").addEventListener("paste", function(event) {
|
|
| 46 |
+ // 클립보드 데이터를 가져옴 |
|
| 47 |
+ let pastedText = event.clipboardData.getData("text");
|
|
| 40 | 48 |
|
| 49 |
+ // 콘솔 출력 (붙여넣은 URL 확인) |
|
| 50 |
+ |
|
| 51 |
+ |
|
| 52 |
+ console.log("붙여넣기 한 URL:", pastedText);
|
|
| 53 |
+ |
|
| 54 |
+ // 불필요한 파라미터 제거 후 새로운 URL 생성 |
|
| 55 |
+ let cleanedUrl = cleanUrlParameters(pastedText); |
|
| 56 |
+ |
|
| 57 |
+ // input 필드에 깨끗한 URL 입력 |
|
| 58 |
+ setTimeout(() => {
|
|
| 59 |
+ this.value = cleanedUrl; |
|
| 60 |
+ console.log("정리된 URL:", cleanedUrl);
|
|
| 61 |
+ }, 0); |
|
| 62 |
+ }); |
|
| 41 | 63 |
|
| 42 | 64 |
}); |
| 65 |
+ |
|
| 66 |
+/** |
|
| 67 |
+ * URL에서 빈 값의 파라미터를 제거하는 함수 |
|
| 68 |
+ * @param {string} url 원본 URL 문자열
|
|
| 69 |
+ * @returns {string} 불필요한 파라미터가 제거된 URL
|
|
| 70 |
+ */ |
|
| 71 |
+ function cleanUrlParameters(url) {
|
|
| 72 |
+ try {
|
|
| 73 |
+ // URL이 절대경로 (/web/... 형태)인지 확인 |
|
| 74 |
+ let hasFullDomain = url.startsWith("http://") || url.startsWith("https://");
|
|
| 75 |
+ let urlObj; |
|
| 76 |
+ |
|
| 77 |
+ if (hasFullDomain) {
|
|
| 78 |
+ // 도메인이 포함된 URL 처리 |
|
| 79 |
+ urlObj = new URL(url); |
|
| 80 |
+ } else {
|
|
| 81 |
+ // 절대경로 URL 처리 (가상의 도메인 추가 후 파싱) |
|
| 82 |
+ urlObj = new URL("https://www.munjaon.co.kr" + url);
|
|
| 83 |
+ } |
|
| 84 |
+ |
|
| 85 |
+ let params = new URLSearchParams(urlObj.search); |
|
| 86 |
+ |
|
| 87 |
+ // ❗ 값이 비어있는 모든 파라미터 제거 |
|
| 88 |
+ for (let [key, value] of [...params.entries()]) { // `params.entries()`를 배열로 변환하여 반복
|
|
| 89 |
+ if (!value.trim()) { // 값이 비어있는 경우 제거
|
|
| 90 |
+ params.delete(key); |
|
| 91 |
+ } |
|
| 92 |
+ } |
|
| 93 |
+ |
|
| 94 |
+ // 정리된 URL 반환 |
|
| 95 |
+ let cleanedPath = urlObj.pathname + (params.toString() ? "?" + params.toString() : ""); |
|
| 96 |
+ // 정리된 URL 반환 (도메인을 제거하고 절대경로만 반환) |
|
| 97 |
+ return cleanedPath.replace(/^https:\/\/www\.munjaon\.co\.kr/, ""); |
|
| 98 |
+ |
|
| 99 |
+ } catch (e) {
|
|
| 100 |
+ console.warn("잘못된 URL 형식:", url);
|
|
| 101 |
+ return url; // URL 파싱 실패 시 원본 유지 |
|
| 102 |
+ } |
|
| 103 |
+ } |
|
| 104 |
+ |
|
| 105 |
+//게시기간이 없으면 초기 값 입력 |
|
| 106 |
+function makeDate(id){
|
|
| 107 |
+ if($("#"+id).val()== '--'){
|
|
| 108 |
+ |
|
| 109 |
+ let today = new Date(); |
|
| 110 |
+ let formattedDate = today.toISOString().split('T')[0]; // YYYY-MM-DD 형식
|
|
| 111 |
+ $("#"+id).val(formattedDate);
|
|
| 112 |
+ } |
|
| 113 |
+} |
|
| 114 |
+ |
|
| 43 | 115 |
|
| 44 | 116 |
/* pagination 페이지 링크 function */ |
| 45 | 117 |
function goList(){
|
... | ... | @@ -109,6 +181,14 @@ |
| 109 | 181 |
frm.content.focus(); |
| 110 | 182 |
return false; |
| 111 | 183 |
} |
| 184 |
+ |
|
| 185 |
+ console.log('isTbodyEmpty("tbody_fiielist") : ', isTbodyEmpty("tbody_fiielist"));
|
|
| 186 |
+ if(isTbodyEmpty("tbody_fiielist")){
|
|
| 187 |
+ alert("이미지를 첨부해 주세요");
|
|
| 188 |
+ return false; |
|
| 189 |
+ } |
|
| 190 |
+ |
|
| 191 |
+ |
|
| 112 | 192 |
if(frm.sort.value=="") {
|
| 113 | 193 |
alert("노출순서를 입력해 주십시오");
|
| 114 | 194 |
frm.sort.focus(); |
... | ... | @@ -121,6 +201,9 @@ |
| 121 | 201 |
return false; |
| 122 | 202 |
} |
| 123 | 203 |
} |
| 204 |
+ |
|
| 205 |
+ |
|
| 206 |
+ |
|
| 124 | 207 |
|
| 125 | 208 |
var ntceBgndeYYYMMDD = document.getElementById('ntceBgndeYYYMMDD').value;
|
| 126 | 209 |
var ntceEnddeYYYMMDD = document.getElementById('ntceEnddeYYYMMDD').value;
|
... | ... | @@ -169,6 +252,17 @@ |
| 169 | 252 |
function fn_egov_downFile(atchFileId, fileSn){
|
| 170 | 253 |
window.open("<c:url value='/cmm/fms/FileDown.do?atchFileId="+atchFileId+"&fileSn="+fileSn+"'/>");
|
| 171 | 254 |
} |
| 255 |
+ |
|
| 256 |
+function isTbodyEmpty(tbodyId) {
|
|
| 257 |
+ const tbody = document.getElementById(tbodyId); |
|
| 258 |
+ if (!tbody) {
|
|
| 259 |
+ console.error("해당 ID를 가진 tbody가 없습니다.");
|
|
| 260 |
+ return false; |
|
| 261 |
+ } |
|
| 262 |
+ // tbody 내부에 <tr> 태그가 있는지 확인 |
|
| 263 |
+ return tbody.querySelector("tr") === null;
|
|
| 264 |
+} |
|
| 265 |
+ |
|
| 172 | 266 |
|
| 173 | 267 |
/* ******************************************************** |
| 174 | 268 |
* SELECT BOX VALUE FUNCTION |
... | ... | @@ -336,12 +430,12 @@ |
| 336 | 430 |
</form:select>분 |
| 337 | 431 |
</td> |
| 338 | 432 |
</tr> |
| 339 |
- <%-- <tr> |
|
| 340 |
- <th class="td_title1"><span class="star_t">*</span>링크주소</th> |
|
| 433 |
+ <tr> |
|
| 434 |
+ <th><span>링크주소</span></th> |
|
| 341 | 435 |
<td colspan="3"> |
| 342 | 436 |
<form:input path="mlink" maxlength="200" /> |
| 343 | 437 |
</td> |
| 344 |
- </tr> --%> |
|
| 438 |
+ </tr> |
|
| 345 | 439 |
<tr> |
| 346 | 440 |
<th><span class="reqArea">파일 첨부</span></th> |
| 347 | 441 |
<td class="upload_area"> |
--- src/main/webapp/WEB-INF/jsp/uss/ion/pwm/MainzoneList.jsp
+++ src/main/webapp/WEB-INF/jsp/uss/ion/pwm/MainzoneList.jsp
... | ... | @@ -90,6 +90,7 @@ |
| 90 | 90 |
|
| 91 | 91 |
/* 메인창 수정 화면*/ |
| 92 | 92 |
function fn_mainzone_view(id, pageType){
|
| 93 |
+ console.log(id, pageType); |
|
| 93 | 94 |
document.modiForm.selectedId.value = id; |
| 94 | 95 |
document.modiForm.pageType.value = "Modify"; |
| 95 | 96 |
document.modiForm.action = "<c:url value='/uss/ion/pwm/mainzoneModify.do'/>"; |
--- src/main/webapp/WEB-INF/jsp/web/fax/faxDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/fax/faxDataView.jsp
... | ... | @@ -628,7 +628,7 @@ |
| 628 | 628 |
<div class="tooltip-wrap"> |
| 629 | 629 |
<div class="popup-com adr_layer popup02" tabindex="0" data-tooltip-con="popup02" data-focus="popup02" data-focus-prev="popup02-close" style="width: 1000px;"> |
| 630 | 630 |
<div class="tooltip-wrap"> |
| 631 |
- <div class="popup-com adr_layer adr_popup14 adr_detail_result" tabindex="0" data-tooltip-con="adr_popup14" data-focus="adr_popup14" data-focus-prev="adr_popu14-close" style="width: 525px;"> |
|
| 631 |
+ <div class="popup-com adr_layer adr_popup14 adr_detail_result" tabindex="0" data-tooltip-con="adr_popup14" data-focus="adr_popup14" data-focus-prev="adr_popu14-close" style="width: 525px; z-index:125;"> |
|
| 632 | 632 |
<div class="popup_heading"> |
| 633 | 633 |
<p>주소록 상세 결과</p> |
| 634 | 634 |
<button type="button" class="tooltip-close" data-focus="adr_popup14-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button> |
--- src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp
+++ src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp
... | ... | @@ -1425,29 +1425,30 @@ |
| 1425 | 1425 |
<!-- visual 영역 --> |
| 1426 | 1426 |
<div class="visual"> |
| 1427 | 1427 |
<div class="swiper-container visual_swiper"> |
| 1428 |
- <div class="swiper-wrapper" id="mainSwiperWrapperArea"> |
|
| 1428 |
+ <div class="swiper-wrapper" id=" "> |
|
| 1429 | 1429 |
<c:choose> |
| 1430 | 1430 |
<c:when test="${not empty mainzoneList}">
|
| 1431 | 1431 |
<c:forEach var="mainzone" items="${mainzoneList}" varStatus="status">
|
| 1432 | 1432 |
<div class="swiper-slide"> |
| 1433 | 1433 |
<div class="slideImg"> |
| 1434 |
- <c:choose> |
|
| 1435 |
- <c:when test="${fn:contains(mainzone.content,'알림톡')}">
|
|
| 1436 |
- <img src="/cmm/fms/getImage.do?atchFileId=<c:out value='${mainzone.mainzoneImageFile}'/>" alt="<c:out value='${mainzone.content}'/>" usemap="#allimtalk-map">
|
|
| 1437 |
- </c:when> |
|
| 1438 |
- <c:otherwise> |
|
| 1439 |
- <img src="/cmm/fms/getImage.do?atchFileId=<c:out value='${mainzone.mainzoneImageFile}'/>" alt="<c:out value='${mainzone.content}'/>">
|
|
| 1440 |
- </c:otherwise> |
|
| 1441 |
- </c:choose> |
|
| 1434 |
+ <c:if test="${not empty mainzone.mlink }">
|
|
| 1435 |
+ <a href="<c:out value='${mainzone.mlink }'/>">
|
|
| 1436 |
+ </c:if> |
|
| 1437 |
+ <img src="/cmm/fms/getImage.do?atchFileId=<c:out value='${mainzone.mainzoneImageFile}'/>" alt="<c:out value='${mainzone.content}'/>">
|
|
| 1438 |
+ <c:if test="${not empty mainzone.mlink }">
|
|
| 1439 |
+ </a> |
|
| 1440 |
+ </c:if> |
|
| 1442 | 1441 |
</div> |
| 1443 | 1442 |
</div> |
| 1444 | 1443 |
</c:forEach> |
| 1445 | 1444 |
</c:when> |
| 1446 | 1445 |
<c:otherwise> |
| 1447 | 1446 |
<%-- 메인 배너 이미지 등록된 건이 없는 경우 기본적으로 나오는 이미지 3개 --%> |
| 1448 |
- <div class="swiper-slide"> |
|
| 1449 |
- <div class="slideImg"><img src="/publish/images/main/f_visual_06_20230802.jpg" alt="문자온, 카카오 '알림톡' 서비스 오픈! 문자온 알림톡, 대한민국 최저가 선언! 조건없이 무조건 6.9원! 카카오톡 채널아이디 추가를 하지 않은 이용자에게도 카카오톡 메시지 발송이 가능한 서비스! 알림톡 바로가기 알림톡 도착 kakao 문자온에서 알림톡이 도착하였습니다! 기업전용/1,000자 이하 텍스트 & 이미지/문자 대비 65% 저렴" usemap="#allimtalk-map"></div> |
|
| 1450 |
- </div> |
|
| 1447 |
+ <a href='/web/mjon/alimtalk/kakaoAlimtalkMsgDataView.do'> |
|
| 1448 |
+ <div class="swiper-slide"> |
|
| 1449 |
+ <div class="slideImg"><img src="/publish/images/main/f_visual_06_20230802.jpg" alt="문자온, 카카오 '알림톡' 서비스 오픈! 문자온 알림톡, 대한민국 최저가 선언! 조건없이 무조건 6.9원! 카카오톡 채널아이디 추가를 하지 않은 이용자에게도 카카오톡 메시지 발송이 가능한 서비스! 알림톡 바로가기 알림톡 도착 kakao 문자온에서 알림톡이 도착하였습니다! 기업전용/1,000자 이하 텍스트 & 이미지/문자 대비 65% 저렴"></div> |
|
| 1450 |
+ </div> |
|
| 1451 |
+ </a> |
|
| 1451 | 1452 |
<div class="swiper-slide"> |
| 1452 | 1453 |
<div class="slideImg"><img src="/publish/images/main/f_visual_02_20221116.jpg" alt="문자도 보내고! 현금도 챙기는! 문자온만의 특별한 혜택! 결제금액의 2% 포인트 추가 적립! 포인트 1만점 이상 적립 시 현금페이백" /></div> |
| 1453 | 1454 |
</div> |
... | ... | @@ -1474,9 +1475,9 @@ |
| 1474 | 1475 |
</div> |
| 1475 | 1476 |
--%> |
| 1476 | 1477 |
|
| 1477 |
- <map name="allimtalk-map"> |
|
| 1478 |
- <area href="/web/mjon/alimtalk/kakaoAlimtalkMsgDataView.do" coords="299,286,514,338" shape="rect"> |
|
| 1479 |
- </map> |
|
| 1478 |
+<!-- <map name="allimtalk-map"> --> |
|
| 1479 |
+<!-- <area href="/web/mjon/alimtalk/kakaoAlimtalkMsgDataView.do" coords="299,286,514,338" shape="rect"> --> |
|
| 1480 |
+<!-- </map> --> |
|
| 1480 | 1481 |
|
| 1481 | 1482 |
|
| 1482 | 1483 |
<!-- <div class="swiper-slide"> |
... | ... | @@ -1506,117 +1507,97 @@ |
| 1506 | 1507 |
<div class="sw_wrap"> |
| 1507 | 1508 |
<div class="swiper-container swiper2"> |
| 1508 | 1509 |
<div class="swiper-wrapper"> |
| 1509 |
- <div class="swiper-slide"> |
|
| 1510 |
- <div class="contWrap ct1"> |
|
| 1511 |
- <a href="/web/mjon/msgdata/excel/selectMsgExcelDataView.do" title="페이지 이동"> |
|
| 1512 |
- <ul class="slide_cont table_cell"> |
|
| 1513 |
- <li class="cont1_title">대량문자·단체문자 전송</li> |
|
| 1514 |
- <li class="cont1_ex">별도의 프로그램 설치 없이<br>컴퓨터로 단체·대량문자 <br>발송 가능</li> |
|
| 1515 |
- <li class="more">자세히보기</li> |
|
| 1516 |
- </ul> |
|
| 1517 |
- </a> |
|
| 1510 |
+ |
|
| 1511 |
+ <!-- 배너수정 250224 --> |
|
| 1512 |
+ <c:choose> |
|
| 1513 |
+ <c:when test="${not empty subMainzoneList}">
|
|
| 1514 |
+ <c:forEach var="sub" items="${subMainzoneList}" varStatus="status">
|
|
| 1515 |
+ <div class="swiper-slide"> |
|
| 1516 |
+ <div class="contWrap"> |
|
| 1517 |
+ <c:if test="${not empty sub.mlink }">
|
|
| 1518 |
+ <a href="<c:out value='${sub.mlink}'/>" title="페이지 이동">
|
|
| 1519 |
+ </c:if> |
|
| 1520 |
+ <ul class="slide_cont1 table_cell1"> |
|
| 1521 |
+ <li class="cont1_title"><c:out value="${sub.topTxt }" /></li>
|
|
| 1522 |
+ <li class="cont_ex"> |
|
| 1523 |
+ <p class="txt"><c:out value="${sub.lowTxt }" /></p>
|
|
| 1524 |
+ <p class="bg_icon"> |
|
| 1525 |
+ <img src="/cmm/fms/getImage.do?atchFileId=<c:out value='${sub.mainzoneImageFile}'/>" alt="<c:out value='${mainzone.content}'/>">
|
|
| 1526 |
+ </p> |
|
| 1527 |
+ </li> |
|
| 1528 |
+ <c:if test="${not empty sub.mlink }">
|
|
| 1529 |
+ <li class="more">자세히보기</li> |
|
| 1530 |
+ </c:if> |
|
| 1531 |
+ </ul> |
|
| 1532 |
+ <c:if test="${not empty sub.mlink }">
|
|
| 1533 |
+ </a> |
|
| 1534 |
+ </c:if> |
|
| 1535 |
+ </div> |
|
| 1536 |
+ </div> |
|
| 1537 |
+ </c:forEach> |
|
| 1538 |
+ </c:when> |
|
| 1539 |
+ <c:otherwise> |
|
| 1540 |
+ |
|
| 1541 |
+ <div class="swiper-slide"> |
|
| 1542 |
+ <div class="contWrap"> |
|
| 1543 |
+ <a href="/web/mjon/msgdata/excel/selectMsgExcelDataView.do" title="페이지 이동"> |
|
| 1544 |
+ <ul class="slide_cont1 table_cell1"> |
|
| 1545 |
+ <li class="cont1_title">대량문자·단체문자 전송</li> |
|
| 1546 |
+ <li class="cont_ex"> |
|
| 1547 |
+ <p class="txt">별도의 프로그램 설치 없이 컴퓨터로 단체·대량문자 발송 가능</p> |
|
| 1548 |
+ <p class="bg_icon"><img src="/publish/images/main/cont1_1.png" alt="대량문자·단체문자 전송 아이콘"></p> |
|
| 1549 |
+ </li> |
|
| 1550 |
+ <li class="more">자세히보기</li> |
|
| 1551 |
+ </ul> |
|
| 1552 |
+ </a> |
|
| 1553 |
+ </div> |
|
| 1518 | 1554 |
</div> |
| 1519 |
- </div> |
|
| 1520 |
- <div class="swiper-slide"> |
|
| 1521 |
- <div class="contWrap ct9"> |
|
| 1522 |
- <a href="/web/api/intrdView.do" title="페이지 이동" rel="nosublink"> |
|
| 1523 |
- <ul class="slide_cont table_cell"> |
|
| 1524 |
- <li class="cont1_title">문자연동(API) 서비스 제공</li> |
|
| 1525 |
- <li class="cont1_ex">맞춤형 웹 API 연동 서비스 제공<br>별도 모듈 설치 없이 소스를<br>추가하여 간단하게 문자 발송</li> |
|
| 1526 |
- <li class="more" >자세히보기</li> |
|
| 1527 |
- </ul> |
|
| 1528 |
- </a> |
|
| 1555 |
+ |
|
| 1556 |
+ <div class="swiper-slide"> |
|
| 1557 |
+ <div class="contWrap"> |
|
| 1558 |
+ <a href="/web/mjon/msgdata/excel/selectMsgExcelDataView.do" title="페이지 이동" rel="nosublink"> |
|
| 1559 |
+ <ul class="slide_cont1 table_cell1"> |
|
| 1560 |
+ <li class="cont1_title">문자연동(API) 서비스 제공</li> |
|
| 1561 |
+ <li class="cont_ex"> |
|
| 1562 |
+ <p class="txt">별도의 프로그램 설치 없이 컴퓨터로 단체·대량문자 발송 가능</p> |
|
| 1563 |
+ <p class="bg_icon"><img src="/publish/images/main/cont1_9.png" alt="문자연동(API) 서비스 제공 아이콘"></p> |
|
| 1564 |
+ </li> |
|
| 1565 |
+ <li class="more">자세히보기</li> |
|
| 1566 |
+ </ul> |
|
| 1567 |
+ </a> |
|
| 1568 |
+ </div> |
|
| 1529 | 1569 |
</div> |
| 1530 |
- </div> |
|
| 1531 |
- <div class="swiper-slide"> |
|
| 1532 |
- <div class="contWrap ct2"> |
|
| 1533 |
- <a href="/web/mjon/custom/selectMsgCustomView.do" title="페이지 이동" rel="nosublink"> |
|
| 1534 |
- <ul class="slide_cont table_cell"> |
|
| 1535 |
- <li class="cont1_title">그림문자 맞춤제작</li> |
|
| 1536 |
- <li class="cont1_ex">나만의 그림문자 이미지<br>맞춤제작으로 홍보효과 극대화</li> |
|
| 1537 |
- <li class="more" >자세히보기</li> |
|
| 1538 |
- </ul> |
|
| 1539 |
- </a> |
|
| 1570 |
+ <div class="swiper-slide"> |
|
| 1571 |
+ <div class="contWrap"> |
|
| 1572 |
+ <a href="/web/mjon/custom/selectMsgCustomView.do" title="페이지 이동" rel="nosublink"> |
|
| 1573 |
+ <ul class="slide_cont1 table_cell1"> |
|
| 1574 |
+ <li class="cont1_title">그림문자 맞춤제작</li> |
|
| 1575 |
+ <li class="cont_ex"> |
|
| 1576 |
+ <p class="txt">나만의 그림문자 이미지 맞춤제작으로 홍보효과 극대화</p> |
|
| 1577 |
+ <p class="bg_icon"><img src="/publish/images/main/cont1_2.png" alt="그림문자 맞춤제작 아이콘"></p> |
|
| 1578 |
+ </li> |
|
| 1579 |
+ <li class="more">자세히보기</li> |
|
| 1580 |
+ </ul> |
|
| 1581 |
+ </a> |
|
| 1582 |
+ </div> |
|
| 1540 | 1583 |
</div> |
| 1541 |
- </div> |
|
| 1542 |
- <div class="swiper-slide"> |
|
| 1543 |
- <div class="contWrap ct3"> |
|
| 1544 |
- <a href="/web/mjon/addragency/selectAddrAgencyList.do" title="페이지 이동" rel="nosublink"> |
|
| 1545 |
- <ul class="slide_cont table_cell"> |
|
| 1546 |
- <li class="cont1_title">주소록 등록 무료대행</li> |
|
| 1547 |
- <li class="cont1_ex">주소록 직접 등록이 어려운<br>고객을 위해 엑셀, TXT 파일 등<br>주소록 등록 무료대행</li> |
|
| 1548 |
- <li class="more">자세히보기</li> |
|
| 1549 |
- </ul> |
|
| 1550 |
- </a> |
|
| 1584 |
+ <div class="swiper-slide"> |
|
| 1585 |
+ <div class="contWrap"> |
|
| 1586 |
+ <a href="/web/mjon/custom/selectMsgCustomView.do" title="페이지 이동" rel="nosublink"> |
|
| 1587 |
+ <ul class="slide_cont1 table_cell1"> |
|
| 1588 |
+ <li class="cont1_title">주소록 등록 무료대행</li> |
|
| 1589 |
+ <li class="cont_ex"> |
|
| 1590 |
+ <p class="txt">주소록 직접 등록이 어려운 고객을 위해 엑셀, TXT 파일 등 주소록 등록 무료대행</p> |
|
| 1591 |
+ <p class="bg_icon"><img src="/publish/images/main/cont1_3.png" alt="주소록 등록 무료대행 아이콘"></p> |
|
| 1592 |
+ </li> |
|
| 1593 |
+ <li class="more">자세히보기</li> |
|
| 1594 |
+ </ul> |
|
| 1595 |
+ </a> |
|
| 1596 |
+ </div> |
|
| 1551 | 1597 |
</div> |
| 1552 |
- </div> |
|
| 1553 |
- <div class="swiper-slide"> |
|
| 1554 |
- <div class="contWrap ct4"> |
|
| 1555 |
- <ul class="slide_cont table_cell"> |
|
| 1556 |
- <li class="cont1_title">080수신거부 무료 제공</li> |
|
| 1557 |
- <li class="cont1_ex">광고, 선거 등 문자 전송 시<br>반드시 표기되어야 하는<br>080 수신거부 서비스 무료 제공</li> |
|
| 1558 |
- <%-- <li class="more">자세히보기</li> --%> |
|
| 1559 |
- </ul> |
|
| 1560 |
- </div> |
|
| 1561 |
- </div> |
|
| 1562 |
- <div class="swiper-slide"> |
|
| 1563 |
- <div class="contWrap ct5"> |
|
| 1564 |
- <a href="/web/mjon/msgdata/selectMsgDataView.do" title="페이지 이동"> |
|
| 1565 |
- <ul class="slide_cont table_cell"> |
|
| 1566 |
- <li class="cont1_title">특정문구 일괄변환 기능</li> |
|
| 1567 |
- <li class="cont1_ex">문자내용의 특정문구<br>(성명, 단어, 문구 등)<br>수신자마다 다르게 일괄 변환</li> |
|
| 1568 |
- <li class="more">자세히보기</li> |
|
| 1569 |
- </ul> |
|
| 1570 |
- </a> |
|
| 1571 |
- </div> |
|
| 1572 |
- </div> |
|
| 1573 |
- <div class="swiper-slide"> |
|
| 1574 |
- <div class="contWrap ct6"> |
|
| 1575 |
- <a href="/web/mjon/msgdata/selectMsgDataView.do" title="페이지 이동"> |
|
| 1576 |
- <ul class="slide_cont table_cell"> |
|
| 1577 |
- <li class="cont1_title">문자 포토에디터 무료 제공</li> |
|
| 1578 |
- <li class="cont1_ex">국내 최초 자사 기술로 개발한<br>문자 포토에디터 무료 제공</li> |
|
| 1579 |
- <li class="more">자세히보기</li> |
|
| 1580 |
- </ul> |
|
| 1581 |
- </a> |
|
| 1582 |
- </div> |
|
| 1583 |
- </div> |
|
| 1584 |
- <div class="swiper-slide"> |
|
| 1585 |
- <div class="contWrap ct7"> |
|
| 1586 |
- <a href="/web/mjon/msgdata/selectMsgDataView.do" title="페이지 이동"> |
|
| 1587 |
- <ul class="slide_cont table_cell"> |
|
| 1588 |
- <li class="cont1_title">문자 제목 및 약도 추가</li> |
|
| 1589 |
- <li class="cont1_ex">문자메시지 내 제목 및 약도<br>추가 기능</li> |
|
| 1590 |
- <li class="more">자세히보기</li> |
|
| 1591 |
- </ul> |
|
| 1592 |
- </a> |
|
| 1593 |
- </div> |
|
| 1594 |
- </div> |
|
| 1595 |
- <div class="swiper-slide"> |
|
| 1596 |
- <div class="contWrap ct8"> |
|
| 1597 |
- <a href="/web/member/pay/BillPub.do" title="페이지 이동" rel="nosublink"> |
|
| 1598 |
- <ul class="slide_cont table_cell"> |
|
| 1599 |
- <li class="cont1_title">자동화 기반 비용처리</li> |
|
| 1600 |
- <li class="cont1_ex">세금계산서, 현금영수증 등<br>(충전금 전액 계산서 발행 가능)</li> |
|
| 1601 |
- <li class="more">자세히보기</li> |
|
| 1602 |
- </ul> |
|
| 1603 |
- </a> |
|
| 1604 |
- </div> |
|
| 1605 |
- </div> |
|
| 1606 |
- <!-- |
|
| 1607 |
- <div class="swiper-slide"> |
|
| 1608 |
- <div class="contWrap ct1"> |
|
| 1609 |
- <a href="#" title="페이지 이동"> |
|
| 1610 |
- <ul class="slide_cont table_cell"> |
|
| 1611 |
- <li class="cont1_title">문자 대량전송</li> |
|
| 1612 |
- <li class="cont1_ex">별다른 프로그램 설치없이<br>pc에서 바로 전송이 가능 |
|
| 1613 |
- </li> |
|
| 1614 |
- <li class="more">자세히보기</li> |
|
| 1615 |
- </ul> |
|
| 1616 |
- </a> |
|
| 1617 |
- </div> |
|
| 1618 |
- </div> |
|
| 1619 |
- --> |
|
| 1598 |
+ </c:otherwise> |
|
| 1599 |
+ </c:choose> |
|
| 1600 |
+ <!--// 배너수정 250224 --> |
|
| 1620 | 1601 |
</div> |
| 1621 | 1602 |
<!-- 버튼 --> |
| 1622 | 1603 |
<div class="swiper-button-next"> |
--- src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
... | ... | @@ -1119,20 +1119,8 @@ |
| 1119 | 1119 |
.map(num => removeDash(num.trim())) |
| 1120 | 1120 |
.filter(num => num !== "") |
| 1121 | 1121 |
.filter(num => isValidPhoneNumber(num)); // 유효한 번호만 필터링; |
| 1122 |
- |
|
| 1123 |
- console.log('numbers : ', numbers);
|
|
| 1124 |
- const addrData = processPhoneNumbers(numbers); |
|
| 1125 | 1122 |
|
| 1126 |
- |
|
| 1127 |
- // 기존 tableL의 데이터를 가져옵니다. |
|
| 1128 |
- var existingData = tableL.getData(); |
|
| 1129 |
- |
|
| 1130 |
- // 데이터 병합 및 중복 제거 |
|
| 1131 |
- const result = mergeAndValidateData(existingData, addrData); |
|
| 1132 |
- |
|
| 1133 |
- |
|
| 1134 |
- // 테이블 데이터 업데이트 |
|
| 1135 |
- if (!updateTableData(tableL, result)) return false; |
|
| 1123 |
+ fn_phoneAddProcess(tableL, numbers); |
|
| 1136 | 1124 |
|
| 1137 | 1125 |
// textarea 초기화 |
| 1138 | 1126 |
textarea.val(''); // jQuery 객체에서 값을 초기화할 때는 .val('') 사용
|
... | ... | @@ -1302,19 +1290,8 @@ |
| 1302 | 1290 |
return false; |
| 1303 | 1291 |
} |
| 1304 | 1292 |
|
| 1305 |
- console.log('numbers : ', numbers);
|
|
| 1306 |
- const addrData = processPhoneNumbers(numbers); |
|
| 1307 | 1293 |
|
| 1308 |
- |
|
| 1309 |
- // 기존 tableL의 데이터를 가져옵니다. |
|
| 1310 |
- var existingData = tableL.getData(); |
|
| 1311 |
- |
|
| 1312 |
- // 데이터 병합 및 중복 제거 |
|
| 1313 |
- const result = mergeAndValidateData(existingData, addrData); |
|
| 1314 |
- |
|
| 1315 |
- |
|
| 1316 |
- // 테이블 데이터 업데이트 |
|
| 1317 |
- if (!updateTableData(tableL, result)) return false; |
|
| 1294 |
+ fn_phoneAddProcess(tableL, numbers); |
|
| 1318 | 1295 |
|
| 1319 | 1296 |
|
| 1320 | 1297 |
$("#btnLatestAddPhoneClose").trigger("click");
|
... | ... | @@ -1340,19 +1317,8 @@ |
| 1340 | 1317 |
return false; |
| 1341 | 1318 |
} |
| 1342 | 1319 |
|
| 1343 |
- console.log('numbers : ', numbers);
|
|
| 1344 |
- const addrData = processPhoneNumbers(numbers); |
|
| 1345 | 1320 |
|
| 1346 |
- |
|
| 1347 |
- // 기존 tableL의 데이터를 가져옵니다. |
|
| 1348 |
- var existingData = tableL.getData(); |
|
| 1349 |
- |
|
| 1350 |
- // 데이터 병합 및 중복 제거 |
|
| 1351 |
- const result = mergeAndValidateData(existingData, addrData); |
|
| 1352 |
- |
|
| 1353 |
- |
|
| 1354 |
- // 테이블 데이터 업데이트 |
|
| 1355 |
- if (!updateTableData(tableL, result)) return false; |
|
| 1321 |
+ fn_phoneAddProcess(tableL, numbers); |
|
| 1356 | 1322 |
|
| 1357 | 1323 |
|
| 1358 | 1324 |
$("#btnLatestAddPhoneClose").trigger("click");
|
... | ... | @@ -1392,19 +1358,8 @@ |
| 1392 | 1358 |
return false; |
| 1393 | 1359 |
} |
| 1394 | 1360 |
|
| 1395 |
- console.log('numbers : ', numbers);
|
|
| 1396 |
- const addrData = processPhoneNumbers(numbers); |
|
| 1397 | 1361 |
|
| 1398 |
- |
|
| 1399 |
- // 기존 tableL의 데이터를 가져옵니다. |
|
| 1400 |
- var existingData = tableL.getData(); |
|
| 1401 |
- |
|
| 1402 |
- // 데이터 병합 및 중복 제거 |
|
| 1403 |
- const result = mergeAndValidateData(existingData, addrData); |
|
| 1404 |
- |
|
| 1405 |
- |
|
| 1406 |
- // 테이블 데이터 업데이트 |
|
| 1407 |
- if (!updateTableData(tableL, result)) return false; |
|
| 1362 |
+ fn_phoneAddProcess(tableL, numbers); |
|
| 1408 | 1363 |
|
| 1409 | 1364 |
|
| 1410 | 1365 |
$("#btnLatestAddPhoneClose").trigger("click");
|
... | ... | @@ -1430,19 +1385,8 @@ |
| 1430 | 1385 |
return false; |
| 1431 | 1386 |
} |
| 1432 | 1387 |
|
| 1433 |
- console.log('numbers : ', numbers);
|
|
| 1434 |
- const addrData = processPhoneNumbers(numbers); |
|
| 1435 | 1388 |
|
| 1436 |
- |
|
| 1437 |
- // 기존 tableL의 데이터를 가져옵니다. |
|
| 1438 |
- var existingData = tableL.getData(); |
|
| 1439 |
- |
|
| 1440 |
- // 데이터 병합 및 중복 제거 |
|
| 1441 |
- const result = mergeAndValidateData(existingData, addrData); |
|
| 1442 |
- |
|
| 1443 |
- |
|
| 1444 |
- // 테이블 데이터 업데이트 |
|
| 1445 |
- if (!updateTableData(tableL, result)) return false; |
|
| 1389 |
+ fn_phoneAddProcess(tableL, numbers); |
|
| 1446 | 1390 |
|
| 1447 | 1391 |
|
| 1448 | 1392 |
$("#btnLatestAddPhoneClose").trigger("click");
|
... | ... | @@ -3195,19 +3139,54 @@ |
| 3195 | 3139 |
//fnLetterListAjax(); |
| 3196 | 3140 |
|
| 3197 | 3141 |
/* 윈도우팝업 열기 */ |
| 3198 |
-function infoPop(pageUrl){
|
|
| 3142 |
+/* 윈도우팝업 열기 */ |
|
| 3143 |
+var infoPopT; // 전역 변수로 선언하여 팝업 추적 |
|
| 3144 |
+ |
|
| 3145 |
+function infoPop(pageUrl) {
|
|
| 3146 |
+ // 기존 팝업이 존재하면 닫기 |
|
| 3147 |
+ if (infoPopT && !infoPopT.closed) {
|
|
| 3148 |
+ infoPopT.close(); |
|
| 3149 |
+ } |
|
| 3150 |
+ |
|
| 3151 |
+ // 기본값 설정 |
|
| 3152 |
+ let width = 790, height = 350; |
|
| 3153 |
+ |
|
| 3154 |
+ if (pageUrl === "adrvertisement1") {
|
|
| 3155 |
+ width = 790; |
|
| 3156 |
+ height = 800; |
|
| 3157 |
+ } else if (pageUrl === "selectMsgDataView3") {
|
|
| 3158 |
+ width = 500; |
|
| 3159 |
+ height = 550; |
|
| 3160 |
+ } |
|
| 3161 |
+ |
|
| 3162 |
+ // 🔥 현재 브라우저 창 크기 가져오기 |
|
| 3163 |
+ let screenWidth = window.innerWidth || document.documentElement.clientWidth || screen.width; |
|
| 3164 |
+ let screenHeight = window.innerHeight || document.documentElement.clientHeight || screen.height; |
|
| 3165 |
+ |
|
| 3166 |
+ // 💡 팝업을 브라우저 창 중앙에 위치시키기 위해 `top`, `left` 계산 |
|
| 3167 |
+ let left = (screenWidth - width) / 2 + window.screenX; |
|
| 3168 |
+ let top = (screenHeight - height) / 2 + window.screenY; |
|
| 3169 |
+ |
|
| 3170 |
+ // 📝 옵션 문자열 (정확한 중앙 정렬 적용) |
|
| 3171 |
+ let options = "width=" + width + ",height=" + height + ",top=" + top + ",left=" + left + |
|
| 3172 |
+ ",fullscreen=no,menubar=no,status=no,toolbar=no,titlebar=yes,location=no,scrollbars=1"; |
|
| 3173 |
+ |
|
| 3174 |
+ console.log('팝업 옵션 : ', options);
|
|
| 3175 |
+ |
|
| 3176 |
+ // 🔥 window.open() 호출 |
|
| 3177 |
+ infoPopT = window.open("", 'infoPop', options);
|
|
| 3178 |
+ |
|
| 3179 |
+ // 🔄 폼 데이터 설정 및 제출 |
|
| 3199 | 3180 |
document.popForm.pageType.value = pageUrl; |
| 3200 | 3181 |
document.popForm.action = "/web/pop/infoPop.do"; |
| 3201 |
- document.popForm.method = "post"; |
|
| 3202 |
- if(pageUrl == "adrvertisement1"){
|
|
| 3203 |
- window.open("about:blank", 'infoPop', 'width=790, height=800, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1');
|
|
| 3204 |
- }else{
|
|
| 3205 |
- window.open("about:blank", 'infoPop', 'width=790, height=350, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1');
|
|
| 3206 |
- } |
|
| 3207 |
- |
|
| 3182 |
+ document.popForm.method = "post"; |
|
| 3208 | 3183 |
document.popForm.target = "infoPop"; |
| 3209 | 3184 |
document.popForm.submit(); |
| 3210 | 3185 |
} |
| 3186 |
+ |
|
| 3187 |
+ |
|
| 3188 |
+ |
|
| 3189 |
+ |
|
| 3211 | 3190 |
|
| 3212 | 3191 |
$(document).on('click', '.addressregi_btn', function() {
|
| 3213 | 3192 |
var tableData = tableL.getRows(); |
... | ... | @@ -3981,7 +3960,7 @@ |
| 3981 | 3960 |
</c:when> |
| 3982 | 3961 |
<c:otherwise> |
| 3983 | 3962 |
대량문자(광고문자) |
| 3984 |
- <button type="button" class="button info ad_btn" onclick="infoPop('adrvertisement1');" style="right: 128px;"><i></i>광고규정</button>
|
|
| 3963 |
+ <button type="button" class="button info ad_btn" onclick="infoPop('adrvertisement1');" style="right: 128px;"><i></i>광고규정</button>
|
|
| 3985 | 3964 |
</c:otherwise> |
| 3986 | 3965 |
</c:choose> |
| 3987 | 3966 |
</h2> |
... | ... | @@ -4217,7 +4196,7 @@ |
| 4217 | 4196 |
<label for="" class="label">받는 번호입력</label> |
| 4218 | 4197 |
<!-- <input type="text" placeholder="번호를 입력하세요" onfocus="this.placeholder=''" onblur="this.placeholder='번호를 입력하세요'" style="width:340px;"> --> |
| 4219 | 4198 |
<!-- oninput="this.value = this.value.replace(/[^0-9.\n]/g, '').replace(/(\..*)\./g, '$1');" --> |
| 4220 |
- <textarea name="callTo" id="callTo" cols="30" rows="10" class="receipt_num" |
|
| 4199 |
+ <textarea name="callTo" id="callTo" cols="30" rows="10" class="receipt_num phone_num" |
|
| 4221 | 4200 |
placeholder="번호를 입력하세요" |
| 4222 | 4201 |
onfocus="this.placeholder=''" |
| 4223 | 4202 |
onblur="this.placeholder='번호를 입력하세요'" |
... | ... | @@ -4225,7 +4204,8 @@ |
| 4225 | 4204 |
<!-- <button type="button" class="btnType btnType6">번호추가</button> --> |
| 4226 | 4205 |
<div class="btn_popup_wrap"> |
| 4227 | 4206 |
<button type="button" class="btnType btnType6 btn_add_number addCallToF">번호추가<i class="qmMark"></i></button> |
| 4228 |
- <span style="display:block;margin:10px 0 0 0;"><span class="vMiddle">*</span> 중복번호는 한번만 추가됩니다.</span> |
|
| 4207 |
+ <span style="display:block;margin:8px 0 0 0;"><span class="vMiddle">*</span> 중복번호는 한번만 추가됩니다.</span> |
|
| 4208 |
+ <button type="button" class="button info info_guide" onclick="infoPop('selectMsgDataView3');">* 일부 안심번호(050*)는 발송이 제한될 수 있습니다.</button>
|
|
| 4229 | 4209 |
<div class="error_hover_cont send_hover_cont"> |
| 4230 | 4210 |
<!-- <p>휴대폰 번호 입력 시 해당 휴대폰 번호에 대한 형식이 어긋나거나 휴대폰 번호에 오류가 있는지 등을 검사하는 기능</p> --> |
| 4231 | 4211 |
<p>줄바꿈(Enter) 기준으로 핸드폰 번호 입력이 가능합니다.</p> |
--- src/main/webapp/WEB-INF/jsp/web/msgdata/include/msgDataIncludeExcel.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/include/msgDataIncludeExcel.jsp
... | ... | @@ -749,7 +749,7 @@ |
| 749 | 749 |
|
| 750 | 750 |
<!-- 주소록 상세 결과 팝업 data-tooltip:adr_popup14 --> |
| 751 | 751 |
<div class="tooltip-wrap"> |
| 752 |
- <div class="popup-com adr_layer adr_detail_result adr_popup14" tabindex="0" data-tooltip-con="adr_popup14" data-focus="adr_popup14" data-focus-prev="adr_popu14-close" style="width: 525px;"> |
|
| 752 |
+ <div class="popup-com adr_layer adr_detail_result adr_popup14" tabindex="0" data-tooltip-con="adr_popup14" data-focus="adr_popup14" data-focus-prev="adr_popu14-close" style="width: 525px;z-index:125;"> |
|
| 753 | 753 |
<div class="popup_heading"> |
| 754 | 754 |
<p>주소록 상세 결과</p> |
| 755 | 755 |
<button type="button" class="tooltip-close" data-focus="adr_popup14-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button> |
--- src/main/webapp/WEB-INF/jsp/web/pop/infoListPop.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pop/infoListPop.jsp
... | ... | @@ -38,6 +38,48 @@ |
| 38 | 38 |
</div> |
| 39 | 39 |
</c:when> |
| 40 | 40 |
|
| 41 |
+ <c:when test="${pageType == 'selectMsgDataView3'}">
|
|
| 42 |
+ <!-- 문자전송 안심번호 사용안내 --> |
|
| 43 |
+ <div class="info_popup ad_layer adpopup01 info_guide_popup" style="min-width:400px;"> |
|
| 44 |
+ <div class="popup_heading"> |
|
| 45 |
+ <p>안심번호(050*) 문자 발송 서비스 이용 제한 안내</p> |
|
| 46 |
+ </div> |
|
| 47 |
+ <div class="layer_in"> |
|
| 48 |
+ <ul class="info_list"> |
|
| 49 |
+ <li> |
|
| 50 |
+ <strong>① SMS(단문)</strong> |
|
| 51 |
+ <ul class="sub_te"> |
|
| 52 |
+ <li>0503 : 0503-0~8 발송 가능, 그 외 발송 불가</li> |
|
| 53 |
+ <li>0508 : 0508-6~7 발송 가능, 그 외 발송 불가</li> |
|
| 54 |
+ <li>0509 : 발송 불가</li> |
|
| 55 |
+ <li>0502~0507 : 모두 발송 가능</li> |
|
| 56 |
+ </ul> |
|
| 57 |
+ </li> |
|
| 58 |
+ <li class="center"> |
|
| 59 |
+ <strong>② LMS(장문</strong>) |
|
| 60 |
+ <ul class="sub_te"> |
|
| 61 |
+ <li>0502, 0508, 0509 : 발송 불가</li> |
|
| 62 |
+ <li>0503 : 0503-0~8 발송 가능, 그 외 발송 불가</li> |
|
| 63 |
+ <li>0504~0507 : 모두 발송 가능</li> |
|
| 64 |
+ </ul> |
|
| 65 |
+ </li> |
|
| 66 |
+ <li> |
|
| 67 |
+ <strong>③ MMS(그림문자)</strong> |
|
| 68 |
+ <ul class="sub_te"> |
|
| 69 |
+ <li>0502, 0506, 0508, 0509 : 발송 불가</li> |
|
| 70 |
+ <li>0503 : 0503-5~7 발송 가능, 그 외 발송 불가</li> |
|
| 71 |
+ <li>0504, 0505, 0507 : 모두 발송 가능</li> |
|
| 72 |
+ </ul> |
|
| 73 |
+ </li> |
|
| 74 |
+ </ul> |
|
| 75 |
+ <div class="info_guide_sub"> |
|
| 76 |
+ <p>※ 발송 불가 번호는 전송 시 <span>수신오류(발송실패)</span> 처리됩니다.</p> |
|
| 77 |
+ <p>※ 보다 상세한 사항은 문자온 고객센터로 문의해 주시기 바랍니다.</p> |
|
| 78 |
+ </div> |
|
| 79 |
+ </div> |
|
| 80 |
+ </div> |
|
| 81 |
+ </c:when> |
|
| 82 |
+ |
|
| 41 | 83 |
<c:when test="${pageType == 'adrvertisement1'}">
|
| 42 | 84 |
<!--광고문자 관련법규 안내 팝업 --> |
| 43 | 85 |
<div class="info_popup ad_layer adpopup01" style="min-width:773px;"> |
--- src/main/webapp/publish/css/content.css
+++ src/main/webapp/publish/css/content.css
... | ... | @@ -20,6 +20,7 @@ |
| 20 | 20 |
/*// 발송결과 화면개선 */ |
| 21 | 21 |
.table {display: table;width: 100%;}
|
| 22 | 22 |
.table_cell {display: table-cell;vertical-align: middle;}
|
| 23 |
+.table_cell1 {display: table-cell;vertical-align: top; position: relative; top: 25px;}
|
|
| 23 | 24 |
.vMiddle {vertical-align: middle;}
|
| 24 | 25 |
.tRight {text-align: right !important;}
|
| 25 | 26 |
.tLeft {text-align: left !important;}
|
... | ... | @@ -601,6 +602,7 @@ |
| 601 | 602 |
.send_general.sec .tType1 tbody tr:first-child {border-top: 0;}
|
| 602 | 603 |
.send_top .excelWrap {padding: 20px 0;}
|
| 603 | 604 |
.excel_middle {background-color: #f2f2f2; padding: 9px 20px; border-radius: 5px; margin: 20px 0;}
|
| 605 |
+.excel_middle .select_btnWrap div{gap:6px;}
|
|
| 604 | 606 |
.send_top .excelWrap .excel_selBox {margin-bottom: 10px; display: flex; justify-content: space-between;}
|
| 605 | 607 |
.send_top .excelWrap .excel_selBox select.selType1 {padding: 0 80px 0 10px;}
|
| 606 | 608 |
.send_top .excelWrap .excel_selBox span {color: #e40000; font-size: 14px; padding-left: 5px;}
|
... | ... | @@ -1576,8 +1578,9 @@ |
| 1576 | 1578 |
.kakaotalkset_cont .list_info .btn_list{background-image: url(/publish/images/btn_list_icon.png);}
|
| 1577 | 1579 |
.kakaotalkset_cont .list_info .btn_thumbnail{background-image: url(/publish/images/btn_thumbnail_icon.png);}
|
| 1578 | 1580 |
.kakaotalkset_cont .list_info .btnType8{width: 140px;}
|
| 1579 |
-.kakaotalkset_cont .kakao_template_list{margin: 20px 0 0 0;}
|
|
| 1580 |
-.kakaotalkset_cont .kakao_template_list li{position: relative; display: inline-block; width: calc((100% - 135px)/4); border-radius: 25px; box-shadow: inset 0 0px 8px rgba(0,0,0,0.2); padding: 8px 8px 16px 8px; margin: 0 20px 40px 0;}
|
|
| 1581 |
+.kakaotalkset_cont .kakao_template_list{display:flex;margin: 20px 0 0 0;flex-wrap:wrap;gap:13px;}
|
|
| 1582 |
+/* .kakaotalkset_cont .kakao_template_list li{position: relative; display: inline-block; width: calc((100% - 135px)/4); border-radius: 25px; box-shadow: inset 0 0px 8px rgba(0,0,0,0.2); padding: 8px 8px 16px 8px; margin: 0 20px 40px 0;} */
|
|
| 1583 |
+.kakaotalkset_cont .kakao_template_list li{position: relative; width:calc((100%/4) - 26px); border-radius: 25px; box-shadow: inset 0 0px 8px rgba(0,0,0,0.2); padding: 8px 8px 16px 8px;}
|
|
| 1581 | 1584 |
.kakaotalkset_cont .kakao_template_list li.template_none{box-shadow: none; width: 100%; text-align: center; font-size: 18px; font-weight: 400;}
|
| 1582 | 1585 |
.kakaotalkset_cont .kakao_template_list li.template_none::after{display: none;}
|
| 1583 | 1586 |
.kakaotalkset_cont .kakao_template_list li:nth-child(4n){margin: 0 0 0 0;}
|
... | ... | @@ -1733,6 +1736,7 @@ |
| 1733 | 1736 |
.send_top .kakaotalksend_cont .kakao_wrap .send_left .variable_wrap .excel_btn{height: 40px; border: 5px solid #129738; color: #129738; font-size: 16px; font-weight: 500; padding: 0 15px; border-radius: 5px;}
|
| 1734 | 1737 |
.send_top .kakaotalksend_cont .kakao_wrap .send_left .variable_wrap .excel_btn i{width: 17px; height: 15px; background-image: url(/publish/images/content/excel_img.png); margin: 0 5px 5px 0;}
|
| 1735 | 1738 |
.send_top .kakaotalksend_cont .kakao_wrap .send_left .receiver_wrap01{display: none !important;}
|
| 1739 |
+.send_top .kakaotalksend_cont .kakao_wrap .send_left .receiver_wrap02 .btnType{margin:0 0 0 6px;}
|
|
| 1736 | 1740 |
.send_top .kakaotalksend_cont .kakao_wrap .send_left .receiver_wrap02 .listType{width: 100%;}
|
| 1737 | 1741 |
.send_top .kakaotalksend_cont .kakao_wrap .send_left .receipt_num .list_table_num{width: calc(100% - 60px);}
|
| 1738 | 1742 |
.kakaotalksend_cont .kakao_wrap .put_right .qmMark{width: 19px; height: 19px; background-image: url(/publish/images/content/qmIcon_s.png); margin: -0.3px 0 2px 4px;}
|
... | ... | @@ -1740,7 +1744,7 @@ |
| 1740 | 1744 |
.kakaotalksend_cont .kakao_wrap .kakao_template_text {display: flex;justify-content: space-between;}
|
| 1741 | 1745 |
.kakaotalksend_cont .kakao_wrap .put_right .btn_popup_wrap{margin: 0 0 5px 0;}
|
| 1742 | 1746 |
.kakaotalksend_cont .kakao_wrap .replace_send_wrap .put_left{height: 234px;}
|
| 1743 |
-.kakaotalksend_cont .kakao_wrap .replace_send_wrap .put_left.short textarea{height: calc(100% - 58px);}
|
|
| 1747 |
+.kakaotalksend_cont .kakao_wrap .replace_send_wrap .put_left.short textarea{height: calc(100% - 80px);}
|
|
| 1744 | 1748 |
.kakaotalksend_cont .kakao_wrap .button_type_wrap{display: flex; border: 1px solid #e5e5e5; border-radius: 5px; padding: 10px 20px; margin: 10px 0 0 0;}
|
| 1745 | 1749 |
.kakaotalksend_cont .kakao_wrap .button_type_wrap dt{width: 110px; font-weight: 400; padding: 8px 0 0 0;}
|
| 1746 | 1750 |
.kakaotalksend_cont .kakao_wrap .button_type_wrap .button_type_input{width: 483px;}
|
... | ... | @@ -2391,6 +2395,11 @@ |
| 2391 | 2395 |
.tb_wrap1{height:302px; overflow-y: auto; position:relative; border:1px solid #ccc; border-radius:5px;}
|
| 2392 | 2396 |
.tb_wrap1 table.type4 th{position: sticky; top:0; z-index: 1; background-color:#ededed;}
|
| 2393 | 2397 |
|
| 2398 |
+/*문자전송_안심번호 안내 추가*/ |
|
| 2399 |
+.top_content .send_general .send_left .tType1 .btn_popup_wrap .info_guide{margin: -11px 0 0 0; text-align: left; line-height: 1.3; font-size: 14px; color: #e40000; font-weight: 400;}
|
|
| 2400 |
+.top_content .send_general .send_left .tType1 .btn_popup_wrap .info_guide:hover{text-decoration: underline;}
|
|
| 2401 |
+.tType1 tbody tr td.putText textarea.phone_num{height: 84px;}
|
|
| 2402 |
+ |
|
| 2394 | 2403 |
|
| 2395 | 2404 |
@keyframes rotate-loading {
|
| 2396 | 2405 |
0% {transform:rotate(0)}
|
... | ... | @@ -2586,6 +2595,10 @@ |
| 2586 | 2595 |
.sub .election .receipt_number_table_wrap .list_bottom{width:100%;}
|
| 2587 | 2596 |
.sub .election .list_bottom .list_bottom_right button{height:30px;font-size:14px;letter-spacing:-1.4px;}
|
| 2588 | 2597 |
.sub .election .list_bottom .pagination button{display:inline-flex;width:25px;height:30px;align-items:center;justify-content:center;}
|
| 2598 |
+ |
|
| 2599 |
+ /*문자전송_안심번호 안내 추가*/ |
|
| 2600 |
+ .top_content .send_general .send_left .tType1 .btn_popup_wrap .info_guide{margin: 0 0 0 11px; text-indent: -11px;}
|
|
| 2601 |
+ .tType1 tbody tr td.putText textarea.phone_num{height: 103px;}
|
|
| 2589 | 2602 |
} |
| 2590 | 2603 |
|
| 2591 | 2604 |
@media only screen and (max-width:1380px){
|
--- src/main/webapp/publish/css/main.css
+++ src/main/webapp/publish/css/main.css
... | ... | @@ -52,6 +52,17 @@ |
| 52 | 52 |
.swiper2 .contWrap.ct8 .slide_cont::after {background:url('../images/main/cont1_8.png') #e1e1e5 center center no-repeat;}
|
| 53 | 53 |
.swiper2 .contWrap.ct9 .slide_cont::after {background:url('../images/main/cont1_9.png') #e1e1e5 center no-repeat;}
|
| 54 | 54 |
.swiper2 .contWrap .slide_cont .more {width: 115px;height: 30px; padding-right:15px;border: 1px solid #d9d9d9; border-radius: 14px; text-align: center; color: #555;background-image: url(../images/main/cont1_arrow.png);background-position: 86% center;background-repeat: no-repeat;line-height: 29px;}
|
| 55 |
+ |
|
| 56 |
+.swiper2 .contWrap .slide_cont .more {margin:5px 0 0 0; width: 115px;height: 30px; padding-right:15px;border: 1px solid #d9d9d9; border-radius: 14px; text-align: center; color: #555;background-image: url(../images/main/cont1_arrow.png);background-position: 86% center;background-repeat: no-repeat;line-height: 29px;}
|
|
| 57 |
+.swiper2 .contWrap .slide_cont1 {padding: 0 30px 0 40px; height: 190px; }
|
|
| 58 |
+.swiper2 .contWrap .slide_cont1 .cont1_title {font-size: 22px;font-weight: 700;}
|
|
| 59 |
+.swiper2 .contWrap .slide_cont1 .cont_ex {display:flex; justify-content: space-between;}
|
|
| 60 |
+.swiper2 .contWrap .slide_cont1 .cont_ex .txt {padding:13px 0 0 0; line-height: 1.4; width:70%; color:#555;}
|
|
| 61 |
+.swiper2 .contWrap .slide_cont1 .cont_ex .bg_icon {position:relative; background-color: #e1e1e5; border-radius: 50%; top:50px; right:0; transform: translateY(-50%); width: 70px; height: 70px; display:flex; justify-content: center; align-items: center; }
|
|
| 62 |
+.swiper2 .contWrap .slide_cont1 .cont_ex .bg_icon img {width: auto; height: auto; max-width: initial; max-height: initial;}
|
|
| 63 |
+.swiper2 .contWrap .slide_cont1 .more {margin:5px 0 0 0; width: 115px;height: 30px; padding-right:15px;border: 1px solid #d9d9d9; border-radius: 14px; text-align: center; color: #555;background-image: url(../images/main/cont1_arrow.png);background-position: 86% center;background-repeat: no-repeat;line-height: 29px;}
|
|
| 64 |
+ |
|
| 65 |
+ |
|
| 55 | 66 |
/* on클래스 */ |
| 56 | 67 |
.swiper2 .swiper-slide-next .contWrap::after, |
| 57 | 68 |
.swiper2 .swiper-slide.on .contWrap.on::after {background-color: #ffcc33;width: 100%;height:110%;z-index: -1;cursor: pointer;transition: all 0.2s ease-in-out;box-shadow: 0 0 15px rgba(0, 0, 0, 0.3);border-radius: 15px;}
|
... | ... | @@ -62,6 +73,17 @@ |
| 62 | 73 |
.swiper2 .swiper-slide-next .contWrap .slide_cont::after, |
| 63 | 74 |
.swiper2 .swiper-slide.on .contWrap.on .slide_cont::after {background-color: #edb818;}
|
| 64 | 75 |
.swiper2 .swiper-slide-next .contWrap.active:after {display:none;}
|
| 76 |
+ |
|
| 77 |
+.swiper2 .swiper-slide-next .contWrap .slide_cont1 .more, |
|
| 78 |
+.swiper2 .swiper-slide.on .contWrap.on .slide_cont1 .more {background-color: #eea301;color: #fff;border: 1px solid #eea301;background-image: url(../images/main/cont1_arrow_white.png);}
|
|
| 79 |
+.swiper2 .swiper-slide-next .contWrap .slide_cont1::after, |
|
| 80 |
+.swiper2 .swiper-slide.on .contWrap.on .slide_cont1::after {background-color: #edb818;}
|
|
| 81 |
+.swiper2 .swiper-slide-next .contWrap .slide_cont1 .cont_ex .bg_icon, |
|
| 82 |
+.swiper2 .swiper-slide.on .contWrap.on .slide_cont1 .cont_ex .bg_icon {background-color: #edb818;}
|
|
| 83 |
+.swiper2 .swiper-slide-next .contWrap .slide_cont1 .cont_ex .txt, |
|
| 84 |
+.swiper2 .swiper-slide.on .contWrap.on .slide_cont1 .cont_ex .txt {color: #222;}
|
|
| 85 |
+.swiper2 .swiper-slide-next .contWrap .slide_cont1::after, |
|
| 86 |
+.swiper2 .swiper-slide.on .contWrap.on .slide_cont1::after {background-color: #edb818;}
|
|
| 65 | 87 |
|
| 66 | 88 |
/*// content1 */ |
| 67 | 89 |
|
... | ... | @@ -303,6 +325,7 @@ |
| 303 | 325 |
.swiper2 .contWrap .slide_cont::before {right: 22px;}
|
| 304 | 326 |
.swiper2 .contWrap .slide_cont::before {right: 7px;}
|
| 305 | 327 |
.swiper2 .contWrap .slide_cont::before {right: 17px;}
|
| 328 |
+ .swiper2 .contWrap .slide_cont1 .txt {font-size:14px; line-height: 1.2;}
|
|
| 306 | 329 |
/* content2 문자샘플 영역 */ |
| 307 | 330 |
.msg_text .area_in_text{padding: 15px 0; height: 286px; background-position: 15px 12px;}
|
| 308 | 331 |
.msg_text .area_in_text p{height: 253px;}
|
--- src/main/webapp/publish/css/popupLayer.css
+++ src/main/webapp/publish/css/popupLayer.css
... | ... | @@ -296,7 +296,7 @@ |
| 296 | 296 |
.histroy_trans ul {background-color: #f5f5f5; padding: 0 20px; border: 1px solid #dadada; border-radius: 0 0 5px 5px; margin-top: -3px;}
|
| 297 | 297 |
.histroy_trans ul li {position: relative; height: 30px; line-height: 30px; border-bottom: 1px solid #e8e8e8;}
|
| 298 | 298 |
.histroy_trans ul li:only-child {border-bottom: 0;}
|
| 299 |
-.histroy_trans ul li p {display: inline-block; color: #666; font-size: 14px; font-weight: 300; padding-left: 15px; letter-spacing: 0.5px;}
|
|
| 299 |
+.histroy_trans ul li p {display: inline-block; width: 100%; color: #666; font-size: 14px; font-weight: 300; letter-spacing: 0.5px; text-align:center;}
|
|
| 300 | 300 |
.histroy_trans ul li button {position: absolute; right: 0; top: 50%; transform: translateY(-50%);}
|
| 301 | 301 |
.popup_btn_wrap2.hisroy_btn {width: 178px;}
|
| 302 | 302 |
.popup_btn_wrap2.hisroy_btn button {width: calc(100%/2 - 2.5px); height: 32px; font-size: 14px;}
|
... | ... | @@ -1035,7 +1035,7 @@ |
| 1035 | 1035 |
/* 발신프로필 등록 */ |
| 1036 | 1036 |
.add_profile_popup01 .layer_tType1 .cf_text{display: block; font-size: 16px; font-weight: 300; color: #666; padding: 10px 0 0 0;}
|
| 1037 | 1037 |
.add_profile_popup01 .layer_tType1 td{padding: 10px 0 10px 10px;}
|
| 1038 |
-.add_profile_popup01 .layer_tType1 select{width: 207px;}
|
|
| 1038 |
+.add_profile_popup01 .layer_tType1 select{min-width: 200px;width:auto;}
|
|
| 1039 | 1039 |
.add_profile_popup01 .table_top{padding: 0 0 10px 0;}
|
| 1040 | 1040 |
.add_profile_popup01 .table_top p{font-size: 16px; color: #555;}
|
| 1041 | 1041 |
.add_profile_popup01 .kakaotalk_tag{position: absolute; left: 27px; top: 20px;}
|
... | ... | @@ -1252,7 +1252,14 @@ |
| 1252 | 1252 |
.tabulator .tabulator-header .tabulator-col .tabulator-col-content{background-color: #ededed;}
|
| 1253 | 1253 |
.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title-holder .tabulator-col-title{position: relative; z-index: 1;}
|
| 1254 | 1254 |
|
| 1255 |
- |
|
| 1255 |
+/*문자전송_안심번호 안내 추가 팝업*/ |
|
| 1256 |
+.info_guide_popup .layer_in{padding: 30px 25px 36px;}
|
|
| 1257 |
+.info_guide_popup .layer_in .info_list .center{margin: 6px 0;}
|
|
| 1258 |
+.info_guide_popup .layer_in .info_list li:before{content: normal;}
|
|
| 1259 |
+.info_guide_popup .layer_in .info_list li .sub_te{margin: 0 0 0 8px;}
|
|
| 1260 |
+.info_guide_popup .layer_in .info_list li .sub_te li:before{content: '-'; position: absolute; left: 0; top: 0; font-size: 15px; font-weight: 300; line-height: 26px;}
|
|
| 1261 |
+.info_guide_popup .layer_in .info_guide_sub{margin: -20px 0 0 0; font-size: 14px; color: #666; font-weight: 300; line-height: 1.5;}
|
|
| 1262 |
+.info_guide_popup .layer_in .info_guide_sub span{color: #222; font-weight: 400;}
|
|
| 1256 | 1263 |
|
| 1257 | 1264 |
/* ie */ |
| 1258 | 1265 |
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
|
--- src/main/webapp/publish/guide_2022.html
+++ src/main/webapp/publish/guide_2022.html
... | ... | @@ -18,6 +18,7 @@ |
| 18 | 18 |
<!-- <p>***<span class="font1"> (컨텐츠)</span> : 반복적으로 사용 안함</p> |
| 19 | 19 |
<p>***<span class="font2"> (보드)</span> : 반복적으로 사용</p> --> |
| 20 | 20 |
<ul class="page"> |
| 21 |
+ <li><a href="/publish/index_2025.html">index_2025.html</a>메인비주얼 아래 슬라이드 배너박스를 관리자페이지에서 텍스트 및 아이콘 등록 가능 하도록 수정</li> |
|
| 21 | 22 |
<li><a href="/publish/textingmsg_2025_detail.html">textingmsg_2025_detail.html</a>[개선] 발송결과 상세 수정</li> |
| 22 | 23 |
<li><a href="/publish/textingmsg_2025_list.html">textingmsg_2025_list.html</a>[개선] 발송결과 수정</li> |
| 23 | 24 |
<li><a href="/publish/service3_spam_2024.html">service3_spam_2024.html</a>불법스팸방지정책 (2024.11.29)</li> |
+++ src/main/webapp/publish/index_2025.html
... | ... | @@ -0,0 +1,1349 @@ |
| 1 | +<html lang="ko"> | |
| 2 | + | |
| 3 | +<head> | |
| 4 | + <meta charset="UTF-8"> | |
| 5 | + <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
| 6 | + <title>단체문자 대량문자발송 인터넷 웹문자 사이트 - 문자온</title> | |
| 7 | + <meta name="Keywords" content="문자사이트, 대량문자, 단체문자, 문자발송, 문자전송, 인터넷문자, 단체문자사이트, 대량문자발송, 문자보내기, 단체문자발송"> | |
| 8 | + <meta name="description" content="단체문자보내기,대량문자전송,문자사이트,인터넷,컴퓨터로 문자메세지보내기,웹발신문자,LMS문자,MMS문자,WEB발신"> | |
| 9 | + <meta property="og:type" content="website"> | |
| 10 | + <meta property="og:title" content="단체문자 대량문자발송 인터넷 웹문자 사이트 - 문자온"> | |
| 11 | + <meta property="og:description" content="단체문자보내기,대량문자전송,문자사이트,인터넷,컴퓨터로 문자메세지보내기,웹발신문자,LMS문자,MMS문자,WEB발신"> | |
| 12 | + <meta property="og:image" content="https://www.munjaon.co.kr/publish/images/favicon/ms-icon-144x144.png"> | |
| 13 | + <meta property="og:url" content="https://www.munjaon.co.kr/web/main/mainPage.do"> | |
| 14 | + | |
| 15 | + <meta name="msapplication-TileColor" content="#ffffff"> | |
| 16 | + <meta name="msapplication-TileImage" content="/publish/images/favicon/ms-icon-144x144.png"> | |
| 17 | + <meta name="theme-color" content="#ffffff"> | |
| 18 | + <meta property="og:image" content="/publish/images/kakao.jpg"> | |
| 19 | + | |
| 20 | + <!-- 파비콘 --> | |
| 21 | + | |
| 22 | + <link rel="canonical" href="https://www.munjaon.co.kr/web/main/mainPage.do"> | |
| 23 | + <link rel="apple-touch-icon" sizes="57x57" href="/publish/images/favicon/apple-icon-57x57.png"> | |
| 24 | + <link rel="apple-touch-icon" sizes="60x60" href="/publish/images/favicon/apple-icon-60x60.png"> | |
| 25 | + <link rel="apple-touch-icon" sizes="72x72" href="/publish/images/favicon/apple-icon-72x72.png"> | |
| 26 | + <link rel="apple-touch-icon" sizes="76x76" href="/publish/images/favicon/apple-icon-76x76.png"> | |
| 27 | + <link rel="apple-touch-icon" sizes="114x114" href="/publish/images/favicon/apple-icon-114x114.png"> | |
| 28 | + <link rel="apple-touch-icon" sizes="120x120" href="/publish/images/favicon/apple-icon-120x120.png"> | |
| 29 | + <link rel="apple-touch-icon" sizes="144x144" href="/publish/images/favicon/apple-icon-144x144.png"> | |
| 30 | + <link rel="apple-touch-icon" sizes="152x152" href="/publish/images/favicon/apple-icon-152x152.png"> | |
| 31 | + <link rel="apple-touch-icon" sizes="180x180" href="/publish/images/favicon/apple-icon-180x180.png"> | |
| 32 | + <link rel="icon" type="image/png" sizes="192x192" href="/publish/images/favicon/android-icon-192x192.png"> | |
| 33 | + <link rel="icon" type="image/png" sizes="32x32" href="/publish/images/favicon/favicon-32x32.png"> | |
| 34 | + <link rel="icon" type="image/png" sizes="96x96" href="/publish/images/favicon/favicon-96x96.png"> | |
| 35 | + <link rel="icon" type="image/png" sizes="16x16" href="/publish/images/favicon/favicon-16x16.png"> | |
| 36 | + <link rel="manifest" href="/publish/images/favicon/manifest.json"> | |
| 37 | + | |
| 38 | + <!-- css --> | |
| 39 | + <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap"> | |
| 40 | + <link rel="stylesheet" href="/publish/css/reset.css"> | |
| 41 | + <link rel="stylesheet" href="/publish/css/common.css"> | |
| 42 | + <link rel="stylesheet" href="/publish/css/button.css"> | |
| 43 | + <link rel="stylesheet" href="/publish/css/main.css"> | |
| 44 | + <link rel="stylesheet" href="/publish/css/content.css"> | |
| 45 | + <link rel="stylesheet" href="/publish/css/slick.css"> | |
| 46 | + <link rel="stylesheet" href="/publish/css/font.css"> | |
| 47 | + <link rel="stylesheet" href="/publish/css/chatbot_style.css"> | |
| 48 | + <link rel="stylesheet" href="/publish/css/popupLayer.css"> | |
| 49 | + <link rel="stylesheet" href="/publish/css/swiper.min.css"> | |
| 50 | + | |
| 51 | + <!-- script --> | |
| 52 | + <script src="/publish/js/jquery-3.5.0.js"></script> | |
| 53 | + <script src="/publish/js/jquery.bxslider.js"></script> | |
| 54 | + <script src="/publish/js/slick.js"></script> | |
| 55 | + <script src="/publish/js/slick.min.js"></script> | |
| 56 | + <script src="/publish/js/common.js"></script> | |
| 57 | + <script src="/publish/js/main.js"></script> | |
| 58 | + <script src="/publish/js/popupLayer.js"></script> | |
| 59 | + <script src="/publish/js/swiper.min.js"></script> | |
| 60 | + | |
| 61 | +</head> | |
| 62 | + | |
| 63 | +<body> | |
| 64 | + <img referrerpolicy="no-referrer-when-downgrade" src="http://mtm.iten.co.kr:9999/matomo.php?idsite=1&rec=1" style="border:0" alt=""> | |
| 65 | + | |
| 66 | + <div class="mask"></div> | |
| 67 | + <!-- skip 메뉴 --> | |
| 68 | + <div class="skip_menu"> | |
| 69 | + <a href="#cont" title="본문 바로가기" class="contGo" rel="nosublink">본문 바로가기</a> | |
| 70 | + </div> | |
| 71 | + <!--// skip 메뉴 --> | |
| 72 | + | |
| 73 | + <!--// 요금안내 top 배너 시작 --> | |
| 74 | + <img class="price_top_banner" src="/publish/images/level/top_banner.png" alt="최저 8.1원 요금안내" usemap="#topbanner"> | |
| 75 | + <map name="topbanner"> | |
| 76 | + <area shape="poly" coords="45,165,194,164,182,183,155,200,124,208,85,202,63,187,46,167" href="https://www.munjaon.co.kr/web/pay/PayGuide.do" alt=""> | |
| 77 | + </map> | |
| 78 | + <!--// 요금안내 top 배너 끝--> | |
| 79 | + | |
| 80 | + <!--// quick 메뉴 시작 --> | |
| 81 | + <!--quick 메뉴 변경전 | |
| 82 | + <div class="quickMenu"> | |
| 83 | + <div> | |
| 84 | + <p class="quick_title">QUICK<br>MENU</p> | |
| 85 | + <p class="quick_title2">QUICK</p> | |
| 86 | + <ul class="quickMenuIn"> | |
| 87 | + <li> | |
| 88 | + <a href="/publish/index.html"><i class="quick1"></i><span>이용안내</span></a> | |
| 89 | + <div class="hover_cont">이용안내</div> | |
| 90 | + </li> | |
| 91 | + <li> | |
| 92 | + <a href="#"><i class="quick2"></i><span>채팅상담</span></a> | |
| 93 | + <div class="hover_cont">채팅상담</div> | |
| 94 | + </li> | |
| 95 | + <li> | |
| 96 | + <a href="#"><i class="quick3"></i><span>원격지원</span></a> | |
| 97 | + <div class="hover_cont">원격지원</div> | |
| 98 | + </li> | |
| 99 | + <li> | |
| 100 | + <a href="#"><i class="quick4"></i><span>맞춤제작</span></a> | |
| 101 | + <div class="hover_cont">맞춤제작</div> | |
| 102 | + </li> | |
| 103 | + <li> | |
| 104 | + <a href="#"><i class="quick5"></i><span>주소록 등록</span></a> | |
| 105 | + <div class="hover_cont">주소록 등록</div> | |
| 106 | + </li> | |
| 107 | + <li> | |
| 108 | + <a href="#"><i class="quick6"></i><span>엑셀 전송</span></a> | |
| 109 | + <div class="hover_cont">엑셀 대량전송</div> | |
| 110 | + </li> | |
| 111 | + <li> | |
| 112 | + <a href="#"><i class="quick7"></i><span>견적서</span></a> | |
| 113 | + <div class="hover_cont">견적서</div> | |
| 114 | + </li> | |
| 115 | + <li> | |
| 116 | + <a href="#"><i class="quick8"></i><span>결제</span></a> | |
| 117 | + <div class="hover_cont">결제</div> | |
| 118 | + </li> | |
| 119 | + <li> | |
| 120 | + <a href="#"><i class="quick9"></i><span>영수증/계산서</span></a> | |
| 121 | + <div class="hover_cont">영수증/계산서</div> | |
| 122 | + </li> | |
| 123 | + </ul> | |
| 124 | + <button type="button" class="goTop" title="맨 위로 이동">TOP<i></i></button> | |
| 125 | + </div> | |
| 126 | + </div> | |
| 127 | + --> | |
| 128 | + <!--quick 메뉴 변경후 시작--> | |
| 129 | + <div class="quickMenu main"> | |
| 130 | + <div> | |
| 131 | + <p class="quick_title">QUICK<br>MENU</p> | |
| 132 | + <p class="quick_title2">QUICK</p> | |
| 133 | + <ul class="quickMenuIn"> | |
| 134 | + <!-- | |
| 135 | + <li> | |
| 136 | + <a href="#" rel="nosublink"><i class="quick2"></i><span>카톡상담</span></a> | |
| 137 | + <div class="hover_cont">카톡상담</div> | |
| 138 | + </li> | |
| 139 | + <li> | |
| 140 | + <a href="#" rel="nosublink"><i class="quick3"></i><span>원격지원</span></a> | |
| 141 | + <div class="hover_cont">원격지원</div> | |
| 142 | + </li> | |
| 143 | + --> | |
| 144 | + <!-- 맞춤제작 | |
| 145 | + <li> | |
| 146 | + <a href="/web/pay/PayGuide.do" rel="nosublink"><i class="quick4"></i><span>맞춤제작</span></a> | |
| 147 | + <div class="hover_cont">맞춤제작</div> | |
| 148 | + </li> | |
| 149 | + --> | |
| 150 | + <li> | |
| 151 | + <a href="/web/pay/PayGuide.do" rel="nosublink"><i class="quick12"></i><span>요금안내</span></a> | |
| 152 | + <div class="hover_cont">요금안내</div> | |
| 153 | + </li> | |
| 154 | + <li> | |
| 155 | + <a href="/web/mjon/addr/selectAddrList.do" rel="nosublink"><i class="quick10"></i><span>주소록 관리</span></a> | |
| 156 | + <div class="hover_cont">주소록 관리</div> | |
| 157 | + </li> | |
| 158 | + <li> | |
| 159 | + <a href="/web/user/sendNumberManage.do"><i class="quick5"></i><span>발신번호 관리</span></a> | |
| 160 | + <div class="hover_cont">발신번호 관리</div> | |
| 161 | + </li> | |
| 162 | + <li style="margin-top: 1px;"> | |
| 163 | + <a href="/web/mjon/msgdata/excel/selectMsgExcelDataView.do"><i class="quick6"></i><span>엑셀 대량전송</span></a> | |
| 164 | + <div class="hover_cont">엑셀 대량전송</div> | |
| 165 | + </li> | |
| 166 | + <li> | |
| 167 | + <a href="/web/pay/PayGuide.do?tabType=2" rel="nosublink"><i class="quick7"></i><span>견적서</span></a> | |
| 168 | + <div class="hover_cont">견적서</div> | |
| 169 | + </li> | |
| 170 | + <li style="margin-top: 1px;"> | |
| 171 | + <a href="/web/member/pay/PayList.do" rel="nosublink"><i class="quick8"></i><span>결제관리</span></a> | |
| 172 | + <div class="hover_cont">결제관리</div> | |
| 173 | + </li> | |
| 174 | + <!-- | |
| 175 | + <li> | |
| 176 | + <a href="/web/member/pay/BillPub.do" rel="nosublink"><i class="quick9"></i><span>계산서/영수증</span></a> | |
| 177 | + <div class="hover_cont">계산서/영수증</div> | |
| 178 | + </li> | |
| 179 | + --> | |
| 180 | + <li> | |
| 181 | + <a href="/web/member/pay/BillPub.do" rel="nosublink"><i class="quick9"></i><span>세금계산서</span></a> | |
| 182 | + <div class="hover_cont">세금계산서</div> | |
| 183 | + </li> | |
| 184 | + <li class="cscenter"> | |
| 185 | + <a href="/web/cop/bbs/NoticeList.do" rel="nosublink"><i class="quick11"></i><span>고객센터</span></a> | |
| 186 | + <div class="hover_cont"> | |
| 187 | + <div class="title">고객센터</div> | |
| 188 | + <div class="number">010-8432-9333<br>010-2290-4786</div> | |
| 189 | + | |
| 190 | + <ul class="info"> | |
| 191 | + <li>· 월~금 : 09:30 ~ 18:30</li> | |
| 192 | + <li>· 점심시간 : 13:00 ~ 14:00</li> | |
| 193 | + <li>· 토, 일요일 및 법정공휴일 휴무</li> | |
| 194 | + </ul> | |
| 195 | + <div class="cskakao"> | |
| 196 | + <a href="http://pf.kakao.com/_PxoTtb/chat" class="kakao" target="_blank" rel="nosublink">카톡 상담</a> | |
| 197 | + <a href="javascript:void(0);" class="remote" onclick="remotePop('https://939.co.kr/munjaon/');" rel="nosublink">원격지원</a> | |
| 198 | + </div> | |
| 199 | + </div> | |
| 200 | + </li> | |
| 201 | + </ul> | |
| 202 | + <button type="button" class="goTop" title="맨 위로 이동">TOP<i></i></button> | |
| 203 | + </div> | |
| 204 | + <div class="quick_kakaobtn main"><a href="http://pf.kakao.com/_PxoTtb/chat" target="_blank" rel="nosublink">카카오톡 상담</a></div> | |
| 205 | + </div> | |
| 206 | + <!--// quick 메뉴 끝 --> | |
| 207 | + | |
| 208 | + <!-- header 영역 --> | |
| 209 | + <header id="header" class="header sub"> | |
| 210 | + <!-- header top 영역 --> | |
| 211 | + <div class="header_top"> | |
| 212 | + <div class="inner"> | |
| 213 | + <ul class="menu_left"> | |
| 214 | + <li><a href="#"><i class="hdTop_fav"></i>즐겨찾기추가2222</a></li> | |
| 215 | + <li><a href="#"><i class="hdTop_mypage"></i>마이페이지</a></li> | |
| 216 | + <li><a href="#"><i class="hdTop_center"></i>고객센터</a></li> | |
| 217 | + </ul> | |
| 218 | + <ul class="menu_right"> | |
| 219 | + <li><a href="#">충전하기</a></li> | |
| 220 | + <li class="SortLine"><a href="#">요금안내</a></li> | |
| 221 | + <li class="SortLine"><a href="#">이용안내</a></li> | |
| 222 | + <li class="SortLine"><a href="#">1:1고객상담</a></li> | |
| 223 | + </ul> | |
| 224 | + </div> | |
| 225 | + </div><!-- header top 영역 --> | |
| 226 | + <!-- header body 영역 --> | |
| 227 | + <div class="header_body"> | |
| 228 | + <div class="inner table"> | |
| 229 | + <h1 class="logo"><a href="/publish/index.html" alt="문자온 메인 바로가기"><img src="/publish/images/CI.png" alt="문자온 CI"></a></h1> | |
| 230 | + <ul class="gnbWrap table_cell"> | |
| 231 | + <li><a href="#">문자발송</a></li> | |
| 232 | + <li class="new"><a href="#">카톡전송</a></li> | |
| 233 | + <li><a href="#">선거문자</a></li> | |
| 234 | + <li><a href="#">맞춤제작</a></li> | |
| 235 | + <li><a href="#">주소록 관리</a></li> | |
| 236 | + <li><a href="#">발송결과</a></li> | |
| 237 | + <li><a href="#">예약관리</a></li> | |
| 238 | + <li><a href="#">결제내역</a></li> | |
| 239 | + </ul> | |
| 240 | + <div class="s_menu"> | |
| 241 | + <i class="allSearch_info"><span>문자검색</span></i> | |
| 242 | + <button type="button" title="전체검색" class="allSearch" onclick="searchToggle();"><img src="/publish/images/search.png" alt="검색영역 열기" class="allMenu"></button> | |
| 243 | + <button type="button" title="전체메뉴"><img src="/publish/images/all_menu.png" alt="전체메뉴 열기"></button> | |
| 244 | + </div> | |
| 245 | + </div> | |
| 246 | + <!-- search popup 영역 --> | |
| 247 | + <div class="pop_search"> | |
| 248 | + <div class="inner"> | |
| 249 | + <div class="area_search"> | |
| 250 | + <select name="" id=""> | |
| 251 | + <option value="">그림문자</option> | |
| 252 | + <option value="">단문문자</option> | |
| 253 | + <option value="">장문문자</option> | |
| 254 | + <option value="">GIF</option> | |
| 255 | + </select> | |
| 256 | + <input type="text" placeholder="문자샘플 검색하기" onfocus="this.placeholder=''" onblur="this.placeholder='문자샘플 검색하기'"> | |
| 257 | + <button><img src="/publish/images/search02.png" alt=""></button> | |
| 258 | + </div> | |
| 259 | + <div class="area_popular"> | |
| 260 | + <p><i></i>인기검색어</p> | |
| 261 | + <ul class="popular_tag"> | |
| 262 | + <li><a href="#">#정월대보름</a></li> | |
| 263 | + <li class="on"><a href="#">#추석</a></li> | |
| 264 | + <li><a href="#">#가을인사</a></li> | |
| 265 | + <li><a href="#">#좋은하루</a></li> | |
| 266 | + </ul> | |
| 267 | + </div> | |
| 268 | + <button class="btn_close" onclick="searchToggle();"><img src="/publish/images/btn_searchclose.png" alt=""></button> | |
| 269 | + </div> | |
| 270 | + </div> | |
| 271 | + <!--// search popup 영역 --> | |
| 272 | + </div> | |
| 273 | + <!--// header body 영역 --> | |
| 274 | + <div id="login" class="login2"> | |
| 275 | + <div class="inner table"> | |
| 276 | + <div class="login_left table_cell"> | |
| 277 | + <div class="login_info"> | |
| 278 | + <i></i> | |
| 279 | + <div class="login2_name"> | |
| 280 | + <p>홍길동</p> | |
| 281 | + <span>(개인)</span> | |
| 282 | + </div> | |
| 283 | + <div class="session"> | |
| 284 | + <span>08:46</span> | |
| 285 | + <button type="button">연장</button> | |
| 286 | + </div> | |
| 287 | + <button type="button" class="btnType btnType3">마이페이지</button> | |
| 288 | + <button type="button" class="btnType btnType2">로그아웃</button> | |
| 289 | + </div> | |
| 290 | + <div class="check_money"> | |
| 291 | + <div class="holdingsum_box"> | |
| 292 | + <i></i> | |
| 293 | + <p>보유잔액 <span class="fwMd">3,000</span>원</p> | |
| 294 | + <dl> | |
| 295 | + <dd>후불제 고객의 보유잔액(캐시)은 당월 발송 가능<br>금액을 말하며 <span>매월 1일 자동으로 충전</span>됩니다.</dd> | |
| 296 | + </dl> | |
| 297 | + </div> | |
| 298 | + <button type="button" class="btnType btnType3">충전</button> | |
| 299 | + <div class="account_box"> | |
| 300 | + <button type="button" class="btnType btnType3">전용계좌</button> | |
| 301 | + <dl> | |
| 302 | + <dt>전용계좌</dt> | |
| 303 | + <dd>신한은행 56212519515101</dd> | |
| 304 | + </dl> | |
| 305 | + </div> | |
| 306 | + </div> | |
| 307 | + <div class="point"> | |
| 308 | + <i></i> | |
| 309 | + <p>포인트 <span class="fwMd">1,000</span>원</p> | |
| 310 | + <button type="button" class="btnType btnType3">교환</button> | |
| 311 | + </div> | |
| 312 | + </div> | |
| 313 | + <div class="login_right"> | |
| 314 | + <button type="button" class="btnType btnType14"><i></i>이동통신사 스팸 규격 안내</button> | |
| 315 | + <!-- <button type="button">스팸필터링 번호도용차단</button> --> | |
| 316 | + </div> | |
| 317 | + </div> | |
| 318 | + </div> | |
| 319 | + <!--// login 영역 --> | |
| 320 | + </header> | |
| 321 | + <!--// header 영역 --> | |
| 322 | + <div class="mask"></div> | |
| 323 | + | |
| 324 | + <!-- login 영역 --> | |
| 325 | + <!-- content 영역 --> | |
| 326 | + <div id="container" class="cont main"> | |
| 327 | + <!-- visual 영역 --> | |
| 328 | + <div class="visual"> | |
| 329 | + <div class="swiper-container visual_swiper swiper-container-fade swiper-container-initialized swiper-container-horizontal" style="height: 525px"> | |
| 330 | + <div class="swiper-wrapper"> | |
| 331 | + <div class="swiper-slide swiper-slide-duplicate swiper-slide-duplicate-next" data-swiper-slide-index="3"> | |
| 332 | + <div class="slideImg"><img src="/publish/images/main/f_visual_04_20221116.jpg" alt="문자는 이제, 문자온! 선택은 역시 문자온! 문자사이트 선택의 5가지 기준 1. 가격, 속도, 성능, 기능, 보안이 보장되는가? 2. 결제, 정산, 계산서 발행 등 업무가 자동화 되어 있고 편리한가? 3. 최신 IT 기술과 트렌드가 반영되어 있는가? 4. 회원가입 및 발신번호 인증이 쉽고 빠르며, 대량문자를 전송하기에 사용이 편리한가? 5. 매일 문자샘플이 업데이트 되고, CS 및 기술응대가 실시간적으로 이루어지는가?"></div> | |
| 333 | + </div> | |
| 334 | + <div class="swiper-slide" data-swiper-slide-index="0"> | |
| 335 | + <div class="slideImg"><img src="/publish/images/main/f_visual_01_20230313.jpg" alt="문자는 이제, 문자온! 단 한번, 국내 최저가! 인생 최저가! 첫결제 단문 7.5원 장문 32원 그림 59원 HELLO SPRING 안녕, 봄 봄꽃축제 SHINING DAY" usemap="#image-map"></div> | |
| 336 | + </div> | |
| 337 | + <div class="swiper-slide swiper-slide-prev" data-swiper-slide-index="1"> | |
| 338 | + <div class="slideImg"><img src="/publish/images/main/f_visual_02_20221116.jpg" alt="문자도 보내고! 현금도 챙기는! 문자온만의 특별한 혜택! 결제금액의 2% 포인트 추가 적립! 포인트 1만점 이상 적립 시 현금페이백"></div> | |
| 339 | + </div> | |
| 340 | + <div class="swiper-slide swiper-slide-active" data-swiper-slide-index="2"> | |
| 341 | + <div class="slideImg"><img src="/publish/images/main/f_visual_03_20230313.jpg" alt="다른 사이트에는 없다! 오직 문자온에만 있다! 최고의 디자이너가 직접 제작하는 그림문자 맞춤제작을 통해 나만의 문자를 디자인 해보세요 문자온과 함께 떠나는 유채꽃 여행 봄맞이 여행을 가자!! 문자온투어에서 봄을 맞이하여 준비한 이벤트! 할인된 가격으로 제주도를 떠나보자~ 등산용품 40% 할인 DAY 2028.04.01~04.14 한라산 근처 마운틴샵 박물관 30% 할인 DAY 2028.04.01~04.28 제주 서귀포시 위치 올레길 명소 20% 할인 DAY 2028.04.01~04.21 올레길 명소 곳곳 위치 FRESH FRUITS 매주 봄제철 과일을 신선하게 받아보세요! 봄제철 한라봉 배송기간 2030.3.21-5.21까지 봄음악회 spring concert 2030.03.01~2030.03.10"></div> | |
| 342 | + </div> | |
| 343 | + <div class="swiper-slide swiper-slide-next" data-swiper-slide-index="3"> | |
| 344 | + <div class="slideImg"><img src="/publish/images/main/f_visual_04_20221116.jpg" alt="문자는 이제, 문자온! 선택은 역시 문자온! 문자사이트 선택의 5가지 기준 1. 가격, 속도, 성능, 기능, 보안이 보장되는가? 2. 결제, 정산, 계산서 발행 등 업무가 자동화 되어 있고 편리한가? 3. 최신 IT 기술과 트렌드가 반영되어 있는가? 4. 회원가입 및 발신번호 인증이 쉽고 빠르며, 대량문자를 전송하기에 사용이 편리한가? 5. 매일 문자샘플이 업데이트 되고, CS 및 기술응대가 실시간적으로 이루어지는가?"></div> | |
| 345 | + </div> | |
| 346 | + <div class="swiper-slide swiper-slide-duplicate" data-swiper-slide-index="0"> | |
| 347 | + <div class="slideImg"><img src="/publish/images/main/f_visual_01_20230313.jpg" alt="문자는 이제, 문자온! 단 한번, 국내 최저가! 인생 최저가! 첫결제 단문 7.5원 장문 32원 그림 59원 HELLO SPRING 안녕, 봄 봄꽃축제 SHINING DAY" usemap="#image-map"></div> | |
| 348 | + </div> | |
| 349 | + </div> | |
| 350 | + <!-- 버튼 --> | |
| 351 | + <div class="swiper-button-next" tabindex="0" role="button" aria-label="Next slide"></div> | |
| 352 | + <div class="swiper-button-prev" tabindex="0" role="button" aria-label="Previous slide"></div> | |
| 353 | + <!-- 페이징 --> | |
| 354 | + <div class="slide_button"> | |
| 355 | + <div class="swiper-pagination swiper-pagination-clickable swiper-pagination-bullets"><span class="swiper-pagination-bullet" tabindex="0" role="button" aria-label="Go to slide 1"></span><span class="swiper-pagination-bullet" tabindex="0" role="button" aria-label="Go to slide 2"></span><span class="swiper-pagination-bullet swiper-pagination-bullet-active" tabindex="0" role="button" aria-label="Go to slide 3"></span><span class="swiper-pagination-bullet" tabindex="0" role="button" aria-label="Go to slide 4"></span></div> | |
| 356 | + <button class="slidePause"></button> | |
| 357 | + </div> | |
| 358 | + <span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span> | |
| 359 | + </div> | |
| 360 | + </div> | |
| 361 | + <!--// visual 영역 --> | |
| 362 | + <!-- new_content1 //--> | |
| 363 | + <div class="banner_w"> | |
| 364 | + <div class="sw_wrap"> | |
| 365 | + <div class="swiper-container swiper2"> | |
| 366 | + <div class="swiper-wrapper"> | |
| 367 | + <!-- 배너수정 250224 --> | |
| 368 | + <div class="swiper-slide"> | |
| 369 | + <div class="contWrap"> | |
| 370 | + <a href="/web/mjon/msgdata/excel/selectMsgExcelDataView.do" title="페이지 이동"> | |
| 371 | + <ul class="slide_cont1 table_cell1"> | |
| 372 | + <li class="cont1_title">대량문자·단체문자 전송</li> | |
| 373 | + <li class="cont_ex"> | |
| 374 | + <p class="txt">별도의 프로그램 설치 없이 컴퓨터로 단체·대량문자 발송 가능</p> | |
| 375 | + <p class="bg_icon"><img src="/publish/images/main/cont1_1.png" alt="대량문자·단체문자 전송 아이콘"></p> | |
| 376 | + </li> | |
| 377 | + <li class="more">자세히보기</li> | |
| 378 | + </ul> | |
| 379 | + </a> | |
| 380 | + </div> | |
| 381 | + </div> | |
| 382 | + <div class="swiper-slide"> | |
| 383 | + <div class="contWrap"> | |
| 384 | + <a href="/web/mjon/msgdata/excel/selectMsgExcelDataView.do" title="페이지 이동" rel="nosublink"> | |
| 385 | + <ul class="slide_cont1 table_cell1"> | |
| 386 | + <li class="cont1_title">문자연동(API) 서비스 제공</li> | |
| 387 | + <li class="cont_ex"> | |
| 388 | + <p class="txt">별도의 프로그램 설치 없이 컴퓨터로 단체·대량문자 발송 가능</p> | |
| 389 | + <p class="bg_icon"><img src="/publish/images/main/cont1_9.png" alt="문자연동(API) 서비스 제공 아이콘"></p> | |
| 390 | + </li> | |
| 391 | + <li class="more">자세히보기</li> | |
| 392 | + </ul> | |
| 393 | + </a> | |
| 394 | + </div> | |
| 395 | + </div> | |
| 396 | + <div class="swiper-slide"> | |
| 397 | + <div class="contWrap"> | |
| 398 | + <a href="/web/mjon/custom/selectMsgCustomView.do" title="페이지 이동" rel="nosublink"> | |
| 399 | + <ul class="slide_cont1 table_cell1"> | |
| 400 | + <li class="cont1_title">그림문자 맞춤제작</li> | |
| 401 | + <li class="cont_ex"> | |
| 402 | + <p class="txt">나만의 그림문자 이미지 맞춤제작으로 홍보효과 극대화</p> | |
| 403 | + <p class="bg_icon"><img src="/publish/images/main/cont1_2.png" alt="그림문자 맞춤제작 아이콘"></p> | |
| 404 | + </li> | |
| 405 | + <li class="more">자세히보기</li> | |
| 406 | + </ul> | |
| 407 | + </a> | |
| 408 | + </div> | |
| 409 | + </div> | |
| 410 | + <div class="swiper-slide"> | |
| 411 | + <div class="contWrap"> | |
| 412 | + <a href="/web/mjon/custom/selectMsgCustomView.do" title="페이지 이동" rel="nosublink"> | |
| 413 | + <ul class="slide_cont1 table_cell1"> | |
| 414 | + <li class="cont1_title">주소록 등록 무료대행</li> | |
| 415 | + <li class="cont_ex"> | |
| 416 | + <p class="txt">주소록 직접 등록이 어려운 고객을 위해 엑셀, TXT 파일 등 주소록 등록 무료대행</p> | |
| 417 | + <p class="bg_icon"><img src="/publish/images/main/cont1_3.png" alt="주소록 등록 무료대행 아이콘"></p> | |
| 418 | + </li> | |
| 419 | + <li class="more">자세히보기</li> | |
| 420 | + </ul> | |
| 421 | + </a> | |
| 422 | + </div> | |
| 423 | + </div> | |
| 424 | + <div class="swiper-slide"> | |
| 425 | + <div class="contWrap"> | |
| 426 | + <a href="" title="페이지 이동" rel="nosublink"> | |
| 427 | + <ul class="slide_cont1 table_cell1"> | |
| 428 | + <li class="cont1_title">080수신거부 무료 제공</li> | |
| 429 | + <li class="cont_ex"> | |
| 430 | + <p class="txt">광고, 선거 등 문자 전송 시 반드시 표기되어야 하는 080 수신거부 서비스 무료 제공</p> | |
| 431 | + <p class="bg_icon"><img src="/publish/images/main/cont1_4.png" alt="080수신거부 무료 제공 아이콘"></p> | |
| 432 | + </li> | |
| 433 | + </ul> | |
| 434 | + </a> | |
| 435 | + </div> | |
| 436 | + </div> | |
| 437 | + <div class="swiper-slide"> | |
| 438 | + <div class="contWrap"> | |
| 439 | + <a href="/web/mjon/msgdata/selectMsgDataView.do" title="페이지 이동"> | |
| 440 | + <ul class="slide_cont1 table_cell1"> | |
| 441 | + <li class="cont1_title">특정문구 일괄변환 기능</li> | |
| 442 | + <li class="cont_ex"> | |
| 443 | + <p class="txt">문자내용의 특정문구(성명, 단어, 문구 등) 수신자마다 다르게 일괄 변환</p> | |
| 444 | + <p class="bg_icon"><img src="/publish/images/main/cont1_5.png" alt="특정문구 일괄변환 기능 아이콘"></p> | |
| 445 | + </li> | |
| 446 | + <li class="more">자세히보기</li> | |
| 447 | + </ul> | |
| 448 | + </a> | |
| 449 | + </div> | |
| 450 | + </div> | |
| 451 | + <div class="swiper-slide"> | |
| 452 | + <div class="contWrap"> | |
| 453 | + <a href="/web/mjon/msgdata/selectMsgDataView.do" title="페이지 이동"> | |
| 454 | + <ul class="slide_cont1 table_cell1"> | |
| 455 | + <li class="cont1_title">문자 포토에디터 무료 제공</li> | |
| 456 | + <li class="cont_ex"> | |
| 457 | + <p class="txt">국내 최초 자사 기술로 개발한 문자 포토에디터 무료 제공</p> | |
| 458 | + <p class="bg_icon"><img src="/publish/images/main/cont1_6.png" alt="문자 포토에디터 무료 제공 아이콘"></p> | |
| 459 | + </li> | |
| 460 | + <li class="more">자세히보기</li> | |
| 461 | + </ul> | |
| 462 | + </a> | |
| 463 | + </div> | |
| 464 | + </div> | |
| 465 | + <div class="swiper-slide"> | |
| 466 | + <div class="contWrap"> | |
| 467 | + <a href="/web/mjon/msgdata/selectMsgDataView.do" title="페이지 이동"> | |
| 468 | + <ul class="slide_cont1 table_cell1"> | |
| 469 | + <li class="cont1_title">문자 제목 및 약도 추가</li> | |
| 470 | + <li class="cont_ex"> | |
| 471 | + <p class="txt">문자메시지 내 제목 및 약도 추가 기능</p> | |
| 472 | + <p class="bg_icon"><img src="/publish/images/main/cont1_7.png" alt="문자 제목 및 약도 추가 아이콘"></p> | |
| 473 | + </li> | |
| 474 | + <li class="more">자세히보기</li> | |
| 475 | + </ul> | |
| 476 | + </a> | |
| 477 | + </div> | |
| 478 | + </div> | |
| 479 | + <div class="swiper-slide"> | |
| 480 | + <div class="contWrap"> | |
| 481 | + <a href="/web/member/pay/BillPub.do" title="페이지 이동" rel="nosublink"> | |
| 482 | + <ul class="slide_cont1 table_cell1"> | |
| 483 | + <li class="cont1_title">자동화 기반 비용처리</li> | |
| 484 | + <li class="cont_ex"> | |
| 485 | + <p class="txt">세금계산서, 현금영수증 등 (충전금 전액 계산서 발행 가능)</p> | |
| 486 | + <p class="bg_icon"><img src="/publish/images/main/cont1_8.png" alt="자동화 기반 비용처리 아이콘"></p> | |
| 487 | + </li> | |
| 488 | + <li class="more">자세히보기</li> | |
| 489 | + </ul> | |
| 490 | + </a> | |
| 491 | + </div> | |
| 492 | + </div> | |
| 493 | + <!--// 배너수정 250224 --> | |
| 494 | + </div> | |
| 495 | + <!-- 버튼 --> | |
| 496 | + <div class="swiper-button-next" tabindex="0" role="button" aria-label="Next slide"> | |
| 497 | + <img src="/publish/images/main/cont1_next.png" alt="다음"> | |
| 498 | + </div> | |
| 499 | + <div class="swiper-button-prev" tabindex="0" role="button" aria-label="Previous slide"> | |
| 500 | + <img src="/publish/images/main/cont1_prev.png" alt="이전"> | |
| 501 | + </div> | |
| 502 | + <!-- 페이징 --> | |
| 503 | + <div class="swiper-pagination swiper-pagination-clickable swiper-pagination-bullets"><span class="swiper-pagination-bullet" tabindex="0" role="button" aria-label="Go to slide 1"></span><span class="swiper-pagination-bullet swiper-pagination-bullet-active" tabindex="0" role="button" aria-label="Go to slide 2"></span><span class="swiper-pagination-bullet" tabindex="0" role="button" aria-label="Go to slide 3"></span><span class="swiper-pagination-bullet" tabindex="0" role="button" aria-label="Go to slide 4"></span><span class="swiper-pagination-bullet" tabindex="0" role="button" aria-label="Go to slide 5"></span><span class="swiper-pagination-bullet" tabindex="0" role="button" aria-label="Go to slide 6"></span><span class="swiper-pagination-bullet" tabindex="0" role="button" aria-label="Go to slide 7"></span><span class="swiper-pagination-bullet" tabindex="0" role="button" aria-label="Go to slide 8"></span></div> | |
| 504 | + <span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span> | |
| 505 | + </div> | |
| 506 | + </div> | |
| 507 | + </div> | |
| 508 | + <form id="mainImgSendForm" name="mainImgSendForm" method="post"> | |
| 509 | + <input type="hidden" id="atchFileId1" name="atchFileId1" value=""> | |
| 510 | + <input type="hidden" id="fileSn" name="fileSn" value=""> | |
| 511 | + <input type="hidden" id="strImgPath" name="strImgPath" value=""> | |
| 512 | + <input type="hidden" id="letterId" name="letterId" value=""> | |
| 513 | + <input type="hidden" id="mainImgFlag" name="mainImgFlag" value="N"> | |
| 514 | + <input type="hidden" id="mainMoreSamFlag" name="mainMoreSamFlag" value="N"> | |
| 515 | + <input type="hidden" id="mainLetterFlag" name="mainLetterFlag" value="N"> | |
| 516 | + <input type="hidden" id="mainLetterTypeFlag" name="mainLetterTypeFlag"> | |
| 517 | + <input type="hidden" id="cateNo" name="cateNo"> | |
| 518 | + | |
| 519 | + </form> | |
| 520 | + <form id="letterForm" name="letterForm" method="post"> | |
| 521 | + | |
| 522 | + <input type="hidden" id="letterType" name="letterType" value=""> | |
| 523 | + <input type="hidden" id="memberType" name="memberType" value=""> | |
| 524 | + <input type="hidden" id="categoryCode" name="categoryCode" value="best"> | |
| 525 | + <input type="hidden" id="hashTag" name="hashTag" value=""> | |
| 526 | + <input type="hidden" id="pageIndex" name="pageIndex" value="1 "> | |
| 527 | + <input type="hidden" id="pageUnit" name="pageUnit" value="10"> | |
| 528 | + | |
| 529 | + <div class="main_cont2"> | |
| 530 | + <div class="inner"> | |
| 531 | + <p class="tit_text">이런 문자 어때요?</p> | |
| 532 | + <div class="tabs"> | |
| 533 | + <!-- Default tab_depth1 - 전체 / tab_depth2 - 인기그림문자 / tab_depth3 - BEST --> | |
| 534 | + <!-- <div class="tab_depth1 tDep2_mType"> | |
| 535 | + <a href="#none" class="on" value="" rel="nosublink">전체</a> | |
| 536 | + <a href="#none" value="B" rel="nosublink">기업</a> | |
| 537 | + <a href="#none" class="on" value="P" rel="nosublink">개인</a> | |
| 538 | + <div class="on_active">전체</div> | |
| 539 | + </div> --> | |
| 540 | + <div class="tab_depth2 tDep1_letType"> | |
| 541 | + <a href="#none" value="P" class="on" rel="nosublink">인기 그림문자</a> | |
| 542 | + <a href="#none" value="L" rel="nosublink">인기 장문문자</a> | |
| 543 | + <a href="#none" value="S" rel="nosublink">인기 단문문자</a> | |
| 544 | + <a href="#none" value="C" class="tab_custom" rel="nosublink">인기 맞춤제작</a> | |
| 545 | + </div> | |
| 546 | + <button class="btn_custom" onclick="javascript:goCustomUrl(); return false;"> | |
| 547 | + <img src="/publish/images/main/btn_imgicon.png" alt="맞춤제작아이콘"> | |
| 548 | + 맞춤제작요청 | |
| 549 | + </button> | |
| 550 | + <div class="tab_depth3 tab_basic tDep2_cateCode"> | |
| 551 | + <a href="#none" value="best" class="on" rel="nosublink">BEST</a> | |
| 552 | + | |
| 553 | + <a href="#none" value="200200" rel="nosublink"> | |
| 554 | + 요일 | |
| 555 | + </a> | |
| 556 | + | |
| 557 | + <a href="#none" value="200300" rel="nosublink"> | |
| 558 | + 경조사 | |
| 559 | + </a> | |
| 560 | + | |
| 561 | + <a href="#none" value="200400" rel="nosublink"> | |
| 562 | + 연말연시 | |
| 563 | + </a> | |
| 564 | + | |
| 565 | + <a href="#none" value="200500" rel="nosublink"> | |
| 566 | + 명절 | |
| 567 | + </a> | |
| 568 | + | |
| 569 | + <a href="#none" value="200600" rel="nosublink"> | |
| 570 | + 모임/행사 | |
| 571 | + </a> | |
| 572 | + | |
| 573 | + <a href="#none" value="200700" rel="nosublink"> | |
| 574 | + 기업/채용 | |
| 575 | + </a> | |
| 576 | + | |
| 577 | + <a href="#none" value="200800" rel="nosublink"> | |
| 578 | + 감사/축하/격려 | |
| 579 | + </a> | |
| 580 | + | |
| 581 | + <a href="#none" value="200900" rel="nosublink"> | |
| 582 | + 기념일/데이 | |
| 583 | + </a> | |
| 584 | + | |
| 585 | + <a href="#none" value="201000" rel="nosublink"> | |
| 586 | + 계절/날씨/안부 | |
| 587 | + </a> | |
| 588 | + | |
| 589 | + <a href="#none" value="201100" rel="nosublink"> | |
| 590 | + 사랑/우정/감동 | |
| 591 | + </a> | |
| 592 | + | |
| 593 | + <a href="#none" value="201200" rel="nosublink"> | |
| 594 | + 좋은글/명언 | |
| 595 | + </a> | |
| 596 | + | |
| 597 | + <a href="#none" value="201300" rel="nosublink"> | |
| 598 | + 유머/코믹 | |
| 599 | + </a> | |
| 600 | + | |
| 601 | + <a href="#none" value="201400" rel="nosublink"> | |
| 602 | + 선거 | |
| 603 | + </a> | |
| 604 | + | |
| 605 | + <a href="#none" value="201500" rel="nosublink"> | |
| 606 | + 종교 | |
| 607 | + </a> | |
| 608 | + | |
| 609 | + </div> | |
| 610 | + <div class="tab_depth3 tab_other tDep3_cateCode" style="display: none;"> | |
| 611 | + <a href="#none" value="best" class="on" rel="nosublink">BEST</a> | |
| 612 | + | |
| 613 | + <a href="#none" value="11100" rel="nosublink"> | |
| 614 | + 선거 | |
| 615 | + </a> | |
| 616 | + | |
| 617 | + <a href="#none" value="11200" rel="nosublink"> | |
| 618 | + 부고/조문 | |
| 619 | + </a> | |
| 620 | + | |
| 621 | + <a href="#none" value="112600" rel="nosublink"> | |
| 622 | + 결혼 | |
| 623 | + </a> | |
| 624 | + | |
| 625 | + <a href="#none" value="11300" rel="nosublink"> | |
| 626 | + 초대장 | |
| 627 | + </a> | |
| 628 | + | |
| 629 | + <a href="#none" value="11400" rel="nosublink"> | |
| 630 | + 감사/답례 | |
| 631 | + </a> | |
| 632 | + | |
| 633 | + <a href="#none" value="11500" rel="nosublink"> | |
| 634 | + 돌잔치 | |
| 635 | + </a> | |
| 636 | + | |
| 637 | + <a href="#none" value="11600" rel="nosublink"> | |
| 638 | + 환갑/고희연 | |
| 639 | + </a> | |
| 640 | + | |
| 641 | + <a href="#none" value="11700" rel="nosublink"> | |
| 642 | + 명절 | |
| 643 | + </a> | |
| 644 | + | |
| 645 | + <a href="#none" value="11800" rel="nosublink"> | |
| 646 | + 명함 | |
| 647 | + </a> | |
| 648 | + | |
| 649 | + <a href="#none" value="111000" rel="nosublink"> | |
| 650 | + 학교/학원 | |
| 651 | + </a> | |
| 652 | + | |
| 653 | + <a href="#none" value="111100" rel="nosublink"> | |
| 654 | + 음식점 | |
| 655 | + </a> | |
| 656 | + | |
| 657 | + <a href="#none" value="111200" rel="nosublink"> | |
| 658 | + 부동산 | |
| 659 | + </a> | |
| 660 | + | |
| 661 | + <a href="#none" value="111300" rel="nosublink"> | |
| 662 | + 쇼핑 | |
| 663 | + </a> | |
| 664 | + | |
| 665 | + <a href="#none" value="111400" rel="nosublink"> | |
| 666 | + 금융/카드/보험 | |
| 667 | + </a> | |
| 668 | + | |
| 669 | + <a href="#none" value="111500" rel="nosublink"> | |
| 670 | + 병원/동물병원 | |
| 671 | + </a> | |
| 672 | + | |
| 673 | + <a href="#none" value="11900" rel="nosublink"> | |
| 674 | + 택배/배송 | |
| 675 | + </a> | |
| 676 | + | |
| 677 | + <a href="#none" value="111700" rel="nosublink"> | |
| 678 | + 운동/골프/낚시 | |
| 679 | + </a> | |
| 680 | + | |
| 681 | + <a href="#none" value="111800" rel="nosublink"> | |
| 682 | + 여행/행사 | |
| 683 | + </a> | |
| 684 | + | |
| 685 | + <a href="#none" value="111900" rel="nosublink"> | |
| 686 | + 미용/뷰티 | |
| 687 | + </a> | |
| 688 | + | |
| 689 | + <a href="#none" value="112000" rel="nosublink"> | |
| 690 | + 식품 | |
| 691 | + </a> | |
| 692 | + | |
| 693 | + <a href="#none" value="112100" rel="nosublink"> | |
| 694 | + 대리운전 | |
| 695 | + </a> | |
| 696 | + | |
| 697 | + <a href="#none" value="112200" rel="nosublink"> | |
| 698 | + 렌터카/중고차 | |
| 699 | + </a> | |
| 700 | + | |
| 701 | + <a href="#none" value="112300" rel="nosublink"> | |
| 702 | + 퀵서비스 | |
| 703 | + </a> | |
| 704 | + | |
| 705 | + <a href="#none" value="112400" rel="nosublink"> | |
| 706 | + 꽃배달 | |
| 707 | + </a> | |
| 708 | + | |
| 709 | + <a href="#none" value="112500" rel="nosublink"> | |
| 710 | + 쿠폰 | |
| 711 | + </a> | |
| 712 | + | |
| 713 | + </div> | |
| 714 | + </div> | |
| 715 | + <div class="tab_contwrap"> | |
| 716 | + | |
| 717 | + <div id="photoLoad" style="height: 490px; display: block;"> | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + <script src="/publish/js/lazyLoad.js?date=202212071001"></script> | |
| 722 | + | |
| 723 | + <script type="text/javascript"> | |
| 724 | + $(document).ready(function () { | |
| 725 | + | |
| 726 | + // Image Lazy Loading | |
| 727 | + useLazyLoading(); | |
| 728 | + }); | |
| 729 | + </script> | |
| 730 | + | |
| 731 | + | |
| 732 | + <div class="msg_photo_wrap tab_con active"> | |
| 733 | + <div class="swiper-container msg_photo swiper-container-initialized swiper-container-horizontal"> | |
| 734 | + <div class="swiper-wrapper" style="transition-duration: 0ms; transform: translate3d(-1397px, 0px, 0px);"> | |
| 735 | + <div class="swiper-slide swiper-slide-duplicate" onclick="javascript:fnMainImgSendMsg('FILE_000000000030098', '0', '/usr/local/tomcat/file/MMS/20230327/PHO_202303271221514600.jpg'); return false;" data-swiper-slide-index="5" style="width: 279.4px;"> | |
| 736 | + <div class="slide_area"> | |
| 737 | + <div class="mask"></div> | |
| 738 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 739 | + <div class="area_img"> | |
| 740 | + | |
| 741 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000030098&fileSn=0" alt="대량 / 단체 문자 발송 샘플. 싱그러운 봄날" onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 742 | + </div> | |
| 743 | + <div class="area_img_text"> | |
| 744 | + 봄인사·봄날씨 | |
| 745 | + </div> | |
| 746 | + </div> | |
| 747 | + </div> | |
| 748 | + <div class="swiper-slide swiper-slide-duplicate" onclick="javascript:fnMainImgSendMsg('FILE_000000000027712', '0', '/usr/local/tomcat/file/MMS/20230306/PHO_202303060957322690.jpg'); return false;" data-swiper-slide-index="6" style="width: 279.4px;"> | |
| 749 | + <div class="slide_area"> | |
| 750 | + <div class="mask"></div> | |
| 751 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 752 | + <div class="area_img"> | |
| 753 | + | |
| 754 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000027712&fileSn=0" alt="단체 / 대량 문자 전송 샘플. 향기 가득한 어느 봄날." onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 755 | + </div> | |
| 756 | + <div class="area_img_text"> | |
| 757 | + 봄인사·봄날씨 | |
| 758 | + </div> | |
| 759 | + </div> | |
| 760 | + </div> | |
| 761 | + <div class="swiper-slide swiper-slide-duplicate" onclick="javascript:fnMainImgSendMsg('FILE_000000000013871', '0', '/usr/local/tomcat/file/MMS/20220510/sr000027_l.jpg'); return false;" data-swiper-slide-index="7" style="width: 279.4px;"> | |
| 762 | + <div class="slide_area"> | |
| 763 | + <div class="mask"></div> | |
| 764 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 765 | + <div class="area_img"> | |
| 766 | + | |
| 767 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000013871&fileSn=0" alt="대량 / 단체 문자 발송 샘플. 봄처럼 활짝 꽃봉오리들이 활짝 피어나듯 당신의 입가에도 웃음꽃이 피어나길" onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 768 | + </div> | |
| 769 | + <div class="area_img_text"> | |
| 770 | + 봄인사·봄날씨 | |
| 771 | + </div> | |
| 772 | + </div> | |
| 773 | + </div> | |
| 774 | + <div class="swiper-slide swiper-slide-duplicate" onclick="javascript:fnMainImgSendMsg('FILE_000000000026178', '0', '/usr/local/tomcat/file/MMS/20230216/PHO_202302160947190210.jpg'); return false;" data-swiper-slide-index="8" style="width: 279.4px;"> | |
| 775 | + <div class="slide_area"> | |
| 776 | + <div class="mask"></div> | |
| 777 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 778 | + <div class="area_img"> | |
| 779 | + | |
| 780 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000026178&fileSn=0" alt="단체 / 대량 문자 전송 샘플. 봄처럼 아름다운 너." onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 781 | + </div> | |
| 782 | + <div class="area_img_text"> | |
| 783 | + 봄인사·봄날씨 | |
| 784 | + </div> | |
| 785 | + </div> | |
| 786 | + </div> | |
| 787 | + <div class="swiper-slide swiper-slide-duplicate swiper-slide-prev" onclick="javascript:fnMainImgSendMsg('FILE_000000000028152', '1', '/usr/local/tomcat/file/MMS/20230315/PHO_202303151013172871.jpg'); return false;" data-swiper-slide-index="9" style="width: 279.4px;"> | |
| 788 | + <div class="slide_area"> | |
| 789 | + <div class="mask"></div> | |
| 790 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 791 | + <div class="area_img"> | |
| 792 | + | |
| 793 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000028152&fileSn=1" alt="대량 / 단체 문자 발송 샘플. HELLO SPRING 안녕, 나의 봄 따뜻한 햇빛에 포근해진 날씨에 마음도 따뜻해집니다. 오늘도 마음속에 봄을 가득 채워보시길 바랍니다." onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 794 | + </div> | |
| 795 | + <div class="area_img_text"> | |
| 796 | + 봄인사·봄날씨 | |
| 797 | + </div> | |
| 798 | + </div> | |
| 799 | + </div> | |
| 800 | + | |
| 801 | + | |
| 802 | + <div class="swiper-slide swiper-slide-active" onclick="javascript:fnMainImgSendMsg('FILE_000000000028357', '0', '/usr/local/tomcat/file/MMS/20230313/PHO_202303130546332990.jpg'); return false;" data-swiper-slide-index="0" style="width: 279.4px;"> | |
| 803 | + <div class="slide_area"> | |
| 804 | + <div class="mask"></div> | |
| 805 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 806 | + <div class="area_img"> | |
| 807 | + | |
| 808 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000028357&fileSn=0" alt="단체 / 대량 문자 전송 샘플. 봄을 가득담아 그대에게 드립니다." onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 809 | + </div> | |
| 810 | + <div class="area_img_text"> | |
| 811 | + 봄인사·봄날씨 | |
| 812 | + </div> | |
| 813 | + </div> | |
| 814 | + </div> | |
| 815 | + | |
| 816 | + | |
| 817 | + <div class="swiper-slide swiper-slide-next" onclick="javascript:fnMainImgSendMsg('FILE_000000000028765', '0', '/usr/local/tomcat/file/MMS/20230315/PHO_202303150421202720.jpg'); return false;" data-swiper-slide-index="1" style="width: 279.4px;"> | |
| 818 | + <div class="slide_area"> | |
| 819 | + <div class="mask"></div> | |
| 820 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 821 | + <div class="area_img"> | |
| 822 | + | |
| 823 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000028765&fileSn=0" alt="대량 / 단체 문자 발송 샘플. 행복한 봄 웃음꽃 피어나는 봄이 왔어요. 따스한 햇살 맞으며 건강하고, 행복한 하루 보내세요." onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 824 | + </div> | |
| 825 | + <div class="area_img_text"> | |
| 826 | + 봄인사·봄날씨 | |
| 827 | + </div> | |
| 828 | + </div> | |
| 829 | + </div> | |
| 830 | + | |
| 831 | + | |
| 832 | + <div class="swiper-slide" onclick="javascript:fnMainImgSendMsg('FILE_000000000027134', '0', '/usr/local/tomcat/file/MMS/20230227/PHO_202302270944590900.jpg'); return false;" data-swiper-slide-index="2" style="width: 279.4px;"> | |
| 833 | + <div class="slide_area"> | |
| 834 | + <div class="mask"></div> | |
| 835 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 836 | + <div class="area_img"> | |
| 837 | + | |
| 838 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000027134&fileSn=0" alt="단체 / 대량 문자 전송 샘플. Hello Spring. Happy time with you." onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 839 | + </div> | |
| 840 | + <div class="area_img_text"> | |
| 841 | + 봄인사·봄날씨 | |
| 842 | + </div> | |
| 843 | + </div> | |
| 844 | + </div> | |
| 845 | + | |
| 846 | + | |
| 847 | + <div class="swiper-slide" onclick="javascript:fnMainImgSendMsg('FILE_000000000028471', '0', '/usr/local/tomcat/file/MMS/20230314/PHO_202303140526356130.jpg'); return false;" data-swiper-slide-index="3" style="width: 279.4px;"> | |
| 848 | + <div class="slide_area"> | |
| 849 | + <div class="mask"></div> | |
| 850 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 851 | + <div class="area_img"> | |
| 852 | + | |
| 853 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000028471&fileSn=0" alt="대량 / 단체 문자 발송 샘플. 꽃향 가득한 봄" onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 854 | + </div> | |
| 855 | + <div class="area_img_text"> | |
| 856 | + 봄인사·봄날씨 | |
| 857 | + </div> | |
| 858 | + </div> | |
| 859 | + </div> | |
| 860 | + | |
| 861 | + | |
| 862 | + <div class="swiper-slide" onclick="javascript:fnMainImgSendMsg('FILE_000000000026177', '0', '/usr/local/tomcat/file/MMS/20230216/PHO_202302160946454730.jpg'); return false;" data-swiper-slide-index="4" style="width: 279.4px;"> | |
| 863 | + <div class="slide_area"> | |
| 864 | + <div class="mask"></div> | |
| 865 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 866 | + <div class="area_img"> | |
| 867 | + | |
| 868 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000026177&fileSn=0" alt="단체 / 대량 문자 전송 샘플. Hello Spring." onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 869 | + </div> | |
| 870 | + <div class="area_img_text"> | |
| 871 | + 봄인사·봄날씨 | |
| 872 | + </div> | |
| 873 | + </div> | |
| 874 | + </div> | |
| 875 | + | |
| 876 | + | |
| 877 | + <div class="swiper-slide" onclick="javascript:fnMainImgSendMsg('FILE_000000000030098', '0', '/usr/local/tomcat/file/MMS/20230327/PHO_202303271221514600.jpg'); return false;" data-swiper-slide-index="5" style="width: 279.4px;"> | |
| 878 | + <div class="slide_area"> | |
| 879 | + <div class="mask"></div> | |
| 880 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 881 | + <div class="area_img"> | |
| 882 | + | |
| 883 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000030098&fileSn=0" alt="대량 / 단체 문자 발송 샘플. 싱그러운 봄날" onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 884 | + </div> | |
| 885 | + <div class="area_img_text"> | |
| 886 | + 봄인사·봄날씨 | |
| 887 | + </div> | |
| 888 | + </div> | |
| 889 | + </div> | |
| 890 | + | |
| 891 | + | |
| 892 | + <div class="swiper-slide" onclick="javascript:fnMainImgSendMsg('FILE_000000000027712', '0', '/usr/local/tomcat/file/MMS/20230306/PHO_202303060957322690.jpg'); return false;" data-swiper-slide-index="6" style="width: 279.4px;"> | |
| 893 | + <div class="slide_area"> | |
| 894 | + <div class="mask"></div> | |
| 895 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 896 | + <div class="area_img"> | |
| 897 | + | |
| 898 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000027712&fileSn=0" alt="단체 / 대량 문자 전송 샘플. 향기 가득한 어느 봄날." onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 899 | + </div> | |
| 900 | + <div class="area_img_text"> | |
| 901 | + 봄인사·봄날씨 | |
| 902 | + </div> | |
| 903 | + </div> | |
| 904 | + </div> | |
| 905 | + | |
| 906 | + | |
| 907 | + <div class="swiper-slide" onclick="javascript:fnMainImgSendMsg('FILE_000000000013871', '0', '/usr/local/tomcat/file/MMS/20220510/sr000027_l.jpg'); return false;" data-swiper-slide-index="7" style="width: 279.4px;"> | |
| 908 | + <div class="slide_area"> | |
| 909 | + <div class="mask"></div> | |
| 910 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 911 | + <div class="area_img"> | |
| 912 | + | |
| 913 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000013871&fileSn=0" alt="대량 / 단체 문자 발송 샘플. 봄처럼 활짝 꽃봉오리들이 활짝 피어나듯 당신의 입가에도 웃음꽃이 피어나길" onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 914 | + </div> | |
| 915 | + <div class="area_img_text"> | |
| 916 | + 봄인사·봄날씨 | |
| 917 | + </div> | |
| 918 | + </div> | |
| 919 | + </div> | |
| 920 | + | |
| 921 | + | |
| 922 | + <div class="swiper-slide" onclick="javascript:fnMainImgSendMsg('FILE_000000000026178', '0', '/usr/local/tomcat/file/MMS/20230216/PHO_202302160947190210.jpg'); return false;" data-swiper-slide-index="8" style="width: 279.4px;"> | |
| 923 | + <div class="slide_area"> | |
| 924 | + <div class="mask"></div> | |
| 925 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 926 | + <div class="area_img"> | |
| 927 | + | |
| 928 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000026178&fileSn=0" alt="단체 / 대량 문자 전송 샘플. 봄처럼 아름다운 너." onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 929 | + </div> | |
| 930 | + <div class="area_img_text"> | |
| 931 | + 봄인사·봄날씨 | |
| 932 | + </div> | |
| 933 | + </div> | |
| 934 | + </div> | |
| 935 | + | |
| 936 | + | |
| 937 | + <div class="swiper-slide swiper-slide-duplicate-prev" onclick="javascript:fnMainImgSendMsg('FILE_000000000028152', '1', '/usr/local/tomcat/file/MMS/20230315/PHO_202303151013172871.jpg'); return false;" data-swiper-slide-index="9" style="width: 279.4px;"> | |
| 938 | + <div class="slide_area"> | |
| 939 | + <div class="mask"></div> | |
| 940 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 941 | + <div class="area_img"> | |
| 942 | + | |
| 943 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000028152&fileSn=1" alt="대량 / 단체 문자 발송 샘플. HELLO SPRING 안녕, 나의 봄 따뜻한 햇빛에 포근해진 날씨에 마음도 따뜻해집니다. 오늘도 마음속에 봄을 가득 채워보시길 바랍니다." onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 944 | + </div> | |
| 945 | + <div class="area_img_text"> | |
| 946 | + 봄인사·봄날씨 | |
| 947 | + </div> | |
| 948 | + </div> | |
| 949 | + </div> | |
| 950 | + | |
| 951 | + <div class="swiper-slide swiper-slide-duplicate swiper-slide-duplicate-active" onclick="javascript:fnMainImgSendMsg('FILE_000000000028357', '0', '/usr/local/tomcat/file/MMS/20230313/PHO_202303130546332990.jpg'); return false;" data-swiper-slide-index="0" style="width: 279.4px;"> | |
| 952 | + <div class="slide_area"> | |
| 953 | + <div class="mask"></div> | |
| 954 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 955 | + <div class="area_img"> | |
| 956 | + | |
| 957 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000028357&fileSn=0" alt="단체 / 대량 문자 전송 샘플. 봄을 가득담아 그대에게 드립니다." onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 958 | + </div> | |
| 959 | + <div class="area_img_text"> | |
| 960 | + 봄인사·봄날씨 | |
| 961 | + </div> | |
| 962 | + </div> | |
| 963 | + </div> | |
| 964 | + <div class="swiper-slide swiper-slide-duplicate swiper-slide-duplicate-next" onclick="javascript:fnMainImgSendMsg('FILE_000000000028765', '0', '/usr/local/tomcat/file/MMS/20230315/PHO_202303150421202720.jpg'); return false;" data-swiper-slide-index="1" style="width: 279.4px;"> | |
| 965 | + <div class="slide_area"> | |
| 966 | + <div class="mask"></div> | |
| 967 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 968 | + <div class="area_img"> | |
| 969 | + | |
| 970 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000028765&fileSn=0" alt="대량 / 단체 문자 발송 샘플. 행복한 봄 웃음꽃 피어나는 봄이 왔어요. 따스한 햇살 맞으며 건강하고, 행복한 하루 보내세요." onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 971 | + </div> | |
| 972 | + <div class="area_img_text"> | |
| 973 | + 봄인사·봄날씨 | |
| 974 | + </div> | |
| 975 | + </div> | |
| 976 | + </div> | |
| 977 | + <div class="swiper-slide swiper-slide-duplicate" onclick="javascript:fnMainImgSendMsg('FILE_000000000027134', '0', '/usr/local/tomcat/file/MMS/20230227/PHO_202302270944590900.jpg'); return false;" data-swiper-slide-index="2" style="width: 279.4px;"> | |
| 978 | + <div class="slide_area"> | |
| 979 | + <div class="mask"></div> | |
| 980 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 981 | + <div class="area_img"> | |
| 982 | + | |
| 983 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000027134&fileSn=0" alt="단체 / 대량 문자 전송 샘플. Hello Spring. Happy time with you." onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 984 | + </div> | |
| 985 | + <div class="area_img_text"> | |
| 986 | + 봄인사·봄날씨 | |
| 987 | + </div> | |
| 988 | + </div> | |
| 989 | + </div> | |
| 990 | + <div class="swiper-slide swiper-slide-duplicate" onclick="javascript:fnMainImgSendMsg('FILE_000000000028471', '0', '/usr/local/tomcat/file/MMS/20230314/PHO_202303140526356130.jpg'); return false;" data-swiper-slide-index="3" style="width: 279.4px;"> | |
| 991 | + <div class="slide_area"> | |
| 992 | + <div class="mask"></div> | |
| 993 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 994 | + <div class="area_img"> | |
| 995 | + | |
| 996 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000028471&fileSn=0" alt="대량 / 단체 문자 발송 샘플. 꽃향 가득한 봄" onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 997 | + </div> | |
| 998 | + <div class="area_img_text"> | |
| 999 | + 봄인사·봄날씨 | |
| 1000 | + </div> | |
| 1001 | + </div> | |
| 1002 | + </div> | |
| 1003 | + <div class="swiper-slide swiper-slide-duplicate" onclick="javascript:fnMainImgSendMsg('FILE_000000000026177', '0', '/usr/local/tomcat/file/MMS/20230216/PHO_202302160946454730.jpg'); return false;" data-swiper-slide-index="4" style="width: 279.4px;"> | |
| 1004 | + <div class="slide_area"> | |
| 1005 | + <div class="mask"></div> | |
| 1006 | + <div class="btn_more"><img src="/publish/images/main/btn_more01.png" alt=""></div> | |
| 1007 | + <div class="area_img"> | |
| 1008 | + | |
| 1009 | + <img class="lazy" data-src="/cmm/fms/getImage2.do?atchFileId=FILE_000000000026177&fileSn=0" alt="단체 / 대량 문자 전송 샘플. Hello Spring." onerror="this.src='/publish/images/main/template02.jpg';"> | |
| 1010 | + </div> | |
| 1011 | + <div class="area_img_text"> | |
| 1012 | + 봄인사·봄날씨 | |
| 1013 | + </div> | |
| 1014 | + </div> | |
| 1015 | + </div> | |
| 1016 | + </div> | |
| 1017 | + <span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span> | |
| 1018 | + </div> | |
| 1019 | + <!-- 버튼 --> | |
| 1020 | + <div class="swiper-button-next btn_next" tabindex="0" role="button" aria-label="Next slide"></div> | |
| 1021 | + <div class="swiper-button-prev btn_prev" tabindex="0" role="button" aria-label="Previous slide"></div> | |
| 1022 | + </div> | |
| 1023 | + | |
| 1024 | + | |
| 1025 | + </div> | |
| 1026 | + | |
| 1027 | + <div id="letterLoad" style="height: 441px; display: none;"></div> | |
| 1028 | + | |
| 1029 | + </div> | |
| 1030 | + <button type="button" class="btn_more" onclick="javascript:fnMoreSampleView(); return false;">더 많은 샘플보기</button> | |
| 1031 | + </div> | |
| 1032 | + </div> | |
| 1033 | + </form> | |
| 1034 | + <!-- content3 영역 --> | |
| 1035 | + <div class="main_cont3"> | |
| 1036 | + <div class="inner" style="height: auto;"> | |
| 1037 | + <div class="main_service"> | |
| 1038 | + <div class="title"> | |
| 1039 | + <span class="text_deco"></span>자주찾는 서비스 | |
| 1040 | + </div> | |
| 1041 | + <ul> | |
| 1042 | + <li><a href="/web/pay/PayGuide.do" rel="nosublink"><i></i><span>요금안내</span></a></li> | |
| 1043 | + <li><a href="/web/pay/PayGuide.do?tabType=2" rel="nosublink"><i></i><span>견적내기</span></a></li> | |
| 1044 | + <li><a href="/web/member/pay/PayView.do" rel="nosublink"><i></i><span>충전하기</span></a></li> | |
| 1045 | + <li><a href="#" data-tooltip="popup04" rel="nosublink" onclick="popScrSetting();"><i></i><span>포인트교환</span></a></li> | |
| 1046 | + <li><a href="/web/user/sendNumberManage.do" rel="nosublink"><i></i><span>발신번호 등록</span></a></li> | |
| 1047 | + <!-- <li><a href="/web/member/pay/BillPub.do" rel="nosublink"><i></i><span>계산서/영수증</span></a></li> --> | |
| 1048 | + <li><a href="/web/member/pay/BillPub.do" rel="nosublink"><i></i><span>세금계산서</span></a></li> | |
| 1049 | + </ul> | |
| 1050 | + </div> | |
| 1051 | + <div class="main_notice"> | |
| 1052 | + <div class="title"> | |
| 1053 | + <span class="text_deco"></span>공지사항 | |
| 1054 | + </div> | |
| 1055 | + <button class="plus_btn" onclick="location.href='/web/cop/bbs/NoticeList.do'"> | |
| 1056 | + </button> | |
| 1057 | + <ul> | |
| 1058 | + | |
| 1059 | + <li> | |
| 1060 | + <a href="#" onclick="fn_egov_inqire_notice('BBSMSTR_000000000762', '215'); return false;" title="페이지 이동" rel="nosublink"> <span class="text_deco2"></span> [문자온] 대량문자사이트 선택 방법 안내 | |
| 1061 | + </a> | |
| 1062 | + </li> | |
| 1063 | + | |
| 1064 | + <li> | |
| 1065 | + <a href="#" onclick="fn_egov_inqire_notice('BBSMSTR_000000000762', '210'); return false;" title="페이지 이동" rel="nosublink"> <span class="text_deco2"></span> [문자온] 단체 문자 발송하는 방법 | |
| 1066 | + </a> | |
| 1067 | + </li> | |
| 1068 | + | |
| 1069 | + <li> | |
| 1070 | + <a href="#" onclick="fn_egov_inqire_notice('BBSMSTR_000000000762', '177'); return false;" title="페이지 이동" rel="nosublink"> <span class="text_deco2"></span> 번호도용 문자차단 서비스 안내 | |
| 1071 | + </a> | |
| 1072 | + </li> | |
| 1073 | + | |
| 1074 | + <li> | |
| 1075 | + <a href="#" onclick="fn_egov_inqire_notice('BBSMSTR_000000000762', '176'); return false;" title="페이지 이동" rel="nosublink"> <span class="text_deco2"></span> 이동통신사별 스팸차단 서비스 안내 | |
| 1076 | + </a> | |
| 1077 | + </li> | |
| 1078 | + | |
| 1079 | + <li> | |
| 1080 | + <a href="#" onclick="fn_egov_inqire_notice('BBSMSTR_000000000762', '175'); return false;" title="페이지 이동" rel="nosublink"> <span class="text_deco2"></span> 주소록 입력 대행 안내 | |
| 1081 | + </a> | |
| 1082 | + </li> | |
| 1083 | + | |
| 1084 | + <li> | |
| 1085 | + <a href="#" onclick="fn_egov_inqire_notice('BBSMSTR_000000000762', '174'); return false;" title="페이지 이동" rel="nosublink"> <span class="text_deco2"></span> 주소록을 통한 회원 관리 | |
| 1086 | + </a> | |
| 1087 | + </li> | |
| 1088 | + | |
| 1089 | + <li> | |
| 1090 | + <a href="#" onclick="fn_egov_inqire_notice('BBSMSTR_000000000762', '173'); return false;" title="페이지 이동" rel="nosublink"> <span class="text_deco2"></span> 선거문자 관련 법규 안내 | |
| 1091 | + </a> | |
| 1092 | + </li> | |
| 1093 | + | |
| 1094 | + </ul> | |
| 1095 | + </div> | |
| 1096 | + <div class="service_center"> | |
| 1097 | + <div class="title"> | |
| 1098 | + <span class="text_deco"></span>고객센터 | |
| 1099 | + </div> | |
| 1100 | + <div class="tablet table"> | |
| 1101 | + <div class="table_cell"> | |
| 1102 | + <div class="service_center_title"> | |
| 1103 | + <p>010-8432-9333<br>010-2290-4786</p> | |
| 1104 | + <span>E-mail : help@iten.co.kr</span> | |
| 1105 | + </div> | |
| 1106 | + <div class="serive_info"> | |
| 1107 | + <p>월~금 : 09:30 ~ 18:30 / 점심시간 : 13:00 ~ 14:00<br>토, 일요일 및 법정공휴일 휴무</p> | |
| 1108 | + </div> | |
| 1109 | + <ul class="serive_btn"> | |
| 1110 | + <li class="kakao"><a href="http://pf.kakao.com/_PxoTtb/chat" target="_blank" rel="nosublink">카톡 상담</a></li> | |
| 1111 | + <li class="remote"><a href="javascript:void(0);" onclick="remotePop('https://939.co.kr/munjaon/');" rel="nosublink">원격지원</a></li> | |
| 1112 | + <li class="qnabtn"><a href="/web/cop/bbs/QnaList.do" rel="nosublink">1:1 문의</a></li> | |
| 1113 | + </ul> | |
| 1114 | + </div> | |
| 1115 | + </div> | |
| 1116 | + </div> | |
| 1117 | + </div> | |
| 1118 | + </div> | |
| 1119 | + | |
| 1120 | + <div class="main_cont4 adv_wrap"> | |
| 1121 | + <div class="inner"> | |
| 1122 | + <ul class="adv_list"> | |
| 1123 | + <li><a href="http://www.one-keeper.co.kr/" target="_blank"><img src="/publish/images/adv/adv_onekeeper.png" alt="중요한 개인정보! 안전하게 보호하고 싶다면!"></a></li> | |
| 1124 | + <li><a href="http://ganpandaum.co.kr/" target="_blank"><img src="/publish/images/adv/adv_ganpandaum.png" alt="간판다움 간판|인테리어|썬팅|네온|어닝"></a></li> | |
| 1125 | + <li><a href="https://www.nordictools.co.kr/index.html" target="_blank"><img src="/publish/images/adv/adv_nordictools.png" alt="NORDIC TOOLS"></a></li> | |
| 1126 | + <li><a href="http://www.plusphone.co.kr/web/main/mainPage.do" target="_blank"><img src="/publish/images/adv/adv_phoneplus.png" alt="폰더하기 내폰사기|내폰팔기|휴대폰수리"></a></li> | |
| 1127 | + <!-- <li><a href="https://dawonchangho.modoo.at/" target="_blank"><img src="/publish/images/adv/adv_dawon.png" alt="다원창호 유리|샷시|방충망"></a></li> --> | |
| 1128 | + </ul> | |
| 1129 | + </div> | |
| 1130 | + </div> | |
| 1131 | + | |
| 1132 | + | |
| 1133 | + <!--// content3 영역 --> | |
| 1134 | + <div class="serv_content" style="overflow:hidden;left:-9999em;top:-9999em;width:0;height:0;visibility:hidden;"> | |
| 1135 | + 단체문자 대량문자발송 인터넷 웹문자 사이트 - 문자온 | |
| 1136 | + | |
| 1137 | + | |
| 1138 | + <div class="list_cont qna_cont" id="listTab_1"> | |
| 1139 | + <ul class="qna"> | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + <li> | |
| 1143 | + <button type="button" onclick="qnaList(this)" title="닫힘"> | |
| 1144 | + <p class="question_text">Q.</p> | |
| 1145 | + <p> | |
| 1146 | + <span>[결제]</span> | |
| 1147 | + "첫결제 이벤트" 결제 후 잔액이 남아 있는데 문자 발송이 안되는 경우는 왜 그런건가요? | |
| 1148 | + </p> | |
| 1149 | + </button> | |
| 1150 | + <div class="qna_answer"> | |
| 1151 | + <p class="answer_text">A.</p> | |
| 1152 | + <p class="answer_cont"> | |
| 1153 | + 첫결제 이벤트 잔액이 남아 있더라도 1회 발송 문자수량 및 금액이 이벤트 잔액보다 큰 경우 문자가 발송되지 않으며, 이 경우 이벤트 잔액 이하의 금액으로 문자 수량을 조정해야 문자가 정상 발송됩니다. | |
| 1154 | + </p> | |
| 1155 | + | |
| 1156 | + </div> | |
| 1157 | + </li> | |
| 1158 | + | |
| 1159 | + <li> | |
| 1160 | + <button type="button" onclick="qnaList(this)" title="닫힘"> | |
| 1161 | + <p class="question_text">Q.</p> | |
| 1162 | + <p> | |
| 1163 | + <span>[결제]</span> | |
| 1164 | + 첫결제 이벤트 후 추가 결제를 진행하였는데 잔액 부족으로 문자 발송이 안되는 경우는 왜 그런건가요? | |
| 1165 | + </p> | |
| 1166 | + </button> | |
| 1167 | + <div class="qna_answer"> | |
| 1168 | + <p class="answer_text">A.</p> | |
| 1169 | + <p class="answer_cont"> | |
| 1170 | + 첫결제 이벤트 캐시가 남아 있는 경우에는 이벤트 캐시 전액 소진 후 추가결제에 따른 일반캐시 이용이 가능합니다. 이벤트 캐시 잔액만큼 문자를 선 발송하여 이벤트 캐시 전액 소진 후 자동 전환된 일반캐시를 사용하거나, 문자온 고객센터(010-8432-9333)로 문의주시면 즉시 처리 도와드리겠습니다. | |
| 1171 | + </p> | |
| 1172 | + | |
| 1173 | + </div> | |
| 1174 | + </li> | |
| 1175 | + | |
| 1176 | + <li> | |
| 1177 | + <button type="button" onclick="qnaList(this)" title="닫힘"> | |
| 1178 | + <p class="question_text">Q.</p> | |
| 1179 | + <p> | |
| 1180 | + <span>[장문·단문·그림문자]</span> | |
| 1181 | + 한 번 보낸 문자를 저장해서 계속 보낼 수 있나요? | |
| 1182 | + </p> | |
| 1183 | + </button> | |
| 1184 | + <div class="qna_answer"> | |
| 1185 | + <p class="answer_text">A.</p> | |
| 1186 | + <p class="answer_cont"> | |
| 1187 | + 문자온은 “내문자함” 기능을 제공하기 때문에 한 번 보낸 문자를 저장해서 계속 보낼 수 있습니다.<br>문자전송 페이지에서 문자내용 작성 후 [문자저장] 버튼을 클릭하면 해당 문자가 [내문자함]에 보관되어 언제든지 자유롭게 재발송이 가능합니다. | |
| 1188 | + </p> | |
| 1189 | + | |
| 1190 | + </div> | |
| 1191 | + </li> | |
| 1192 | + | |
| 1193 | + <li> | |
| 1194 | + <button type="button" onclick="qnaList(this)" title="닫힘"> | |
| 1195 | + <p class="question_text">Q.</p> | |
| 1196 | + <p> | |
| 1197 | + <span>[장문·단문·그림문자]</span> | |
| 1198 | + 그림문자 발송 시 첨부 이미지 위치나 순서를 지정할 수 있나요? | |
| 1199 | + </p> | |
| 1200 | + </button> | |
| 1201 | + <div class="qna_answer"> | |
| 1202 | + <p class="answer_text">A.</p> | |
| 1203 | + <p class="answer_cont"> | |
| 1204 | + 그림문자 발송 시 텍스트 내용과 이미지의 노출 순서는 이동통신사 및 단말기의 설정에 따라 달라지기 때문에 임의적인 이미지 위치나 순서 지정이 불가합니다. | |
| 1205 | + </p> | |
| 1206 | + | |
| 1207 | + </div> | |
| 1208 | + </li> | |
| 1209 | + | |
| 1210 | + <li> | |
| 1211 | + <button type="button" onclick="qnaList(this)" title="닫힘"> | |
| 1212 | + <p class="question_text">Q.</p> | |
| 1213 | + <p> | |
| 1214 | + <span>[장문·단문·그림문자]</span> | |
| 1215 | + 그림문자 발송 시 정해진 용량이 있나요? | |
| 1216 | + </p> | |
| 1217 | + </button> | |
| 1218 | + <div class="qna_answer"> | |
| 1219 | + <p class="answer_text">A.</p> | |
| 1220 | + <p class="answer_cont"> | |
| 1221 | + 문자온 그림문자는 JPG, JPEG, PNG, GIF 파일 형식을 지원하며, 최대 10mb까지 발송 가능하나, 300kb에 최적화 되어 있기 때문에 300kb보다 용량이 크거나 이미지 내 텍스트가 많은 경우 해상도가 저하될 수 있습니다. 용량이 크거나 텍스트가 많은 이미지의 경우 반드시 사전 테스트 발송 후 대량 발송을 권장드립니다. | |
| 1222 | + </p> | |
| 1223 | + | |
| 1224 | + </div> | |
| 1225 | + </li> | |
| 1226 | + | |
| 1227 | + <li> | |
| 1228 | + <button type="button" onclick="qnaList(this)" title="닫힘"> | |
| 1229 | + <p class="question_text">Q.</p> | |
| 1230 | + <p> | |
| 1231 | + <span>[기타]</span> | |
| 1232 | + 위임장은 어떻게 작성하나요? | |
| 1233 | + </p> | |
| 1234 | + </button> | |
| 1235 | + <div class="qna_answer"> | |
| 1236 | + <p class="answer_text">A.</p> | |
| 1237 | + <p class="answer_cont"> | |
| 1238 | + 위임장 양식은 [마이페이지] → [발신번호 관리]에서 다운로드 가능하며 발신번호 명의자를 위임자, 문자온 이용자를 수임자(대리인)로 작성하여 제출해주시면 됩니다. | |
| 1239 | + </p> | |
| 1240 | + | |
| 1241 | + </div> | |
| 1242 | + </li> | |
| 1243 | + | |
| 1244 | + <li> | |
| 1245 | + <button type="button" onclick="qnaList(this)" title="닫힘"> | |
| 1246 | + <p class="question_text">Q.</p> | |
| 1247 | + <p> | |
| 1248 | + <span>[기타]</span> | |
| 1249 | + 문자온 이용 중 버튼이 안눌러지는 등 장애나 오류가 발생한 경우에는 어떻게 해야 하나요? | |
| 1250 | + </p> | |
| 1251 | + </button> | |
| 1252 | + <div class="qna_answer"> | |
| 1253 | + <p class="answer_text">A.</p> | |
| 1254 | + <p class="answer_cont"> | |
| 1255 | + 문자온은 크롬, 엣지, 네이버 웨일 등의 웹브라우저에 최적화되어 있으며, 인터넷 익스플로러를 지원하지 않습니다.(마이크로소프트사 인터넷 익스플로러 서비스 종료)<br>만약 인터넷 익스플로러 이외의 브라우저 사용 중 장애 발생 시 문자온 고객센터(010-8432-9333)로 연락주시면 빠른 처리 도와드리겠습니다. | |
| 1256 | + </p> | |
| 1257 | + | |
| 1258 | + </div> | |
| 1259 | + </li> | |
| 1260 | + | |
| 1261 | + <li> | |
| 1262 | + <button type="button" onclick="qnaList(this)" title="닫힘"> | |
| 1263 | + <p class="question_text">Q.</p> | |
| 1264 | + <p> | |
| 1265 | + <span>[기타]</span> | |
| 1266 | + 투넘버 또는 투폰 이용 시 발신번호 등록이 가능한가요? | |
| 1267 | + </p> | |
| 1268 | + </button> | |
| 1269 | + <div class="qna_answer"> | |
| 1270 | + <p class="answer_text">A.</p> | |
| 1271 | + <p class="answer_cont"> | |
| 1272 | + 투넘버 및 투폰 번호의 경우 두 번째 번호는 가상의 번호인 관계로 이동통신사 및 가입 유형에 따라 본인 인증이 불가할 수 있습니다. 이 경우 고객님께서 가입하신 통신사를 통해 본인 인증 가능여부 확인 후 등록 신청을 진행해주시기 바랍니다. | |
| 1273 | + </p> | |
| 1274 | + | |
| 1275 | + </div> | |
| 1276 | + </li> | |
| 1277 | + | |
| 1278 | + <li> | |
| 1279 | + <button type="button" onclick="qnaList(this)" title="닫힘"> | |
| 1280 | + <p class="question_text">Q.</p> | |
| 1281 | + <p> | |
| 1282 | + <span>[기타]</span> | |
| 1283 | + 세금계산서 발행은 어디서 어떻게 신청하나요? | |
| 1284 | + </p> | |
| 1285 | + </button> | |
| 1286 | + <div class="qna_answer"> | |
| 1287 | + <p class="answer_text">A.</p> | |
| 1288 | + <p class="answer_cont"> | |
| 1289 | + 세금계산서는 즉시이체나 전용계좌를 통해 결제한 경우에만 발행되며, 문자온 사이트 상단 메뉴 중 [결제관리]→[요금 결제내역]→[결제수단/전용계좌 또는 즉시이체 선택]→[증빙서류 발행 신청] 버튼을 통해 신청 가능하며, 매주 수요일 일괄 발행됩니다.<br>세금계산서 자동 발행을 희망하는 경우, [결제관리]→[세금계산서 발행 등록] 메뉴를 통해 편리하게 이용하실 수 있습니다. | |
| 1290 | + </p> | |
| 1291 | + | |
| 1292 | + </div> | |
| 1293 | + </li> | |
| 1294 | + | |
| 1295 | + <li> | |
| 1296 | + <button type="button" onclick="qnaList(this)" title="닫힘"> | |
| 1297 | + <p class="question_text">Q.</p> | |
| 1298 | + <p> | |
| 1299 | + <span>[장문·단문·그림문자]</span> | |
| 1300 | + 문자 발송이 안되는데(발송결과 : 수신거부 등) 어떻게 해야 하나요? | |
| 1301 | + </p> | |
| 1302 | + </button> | |
| 1303 | + <div class="qna_answer"> | |
| 1304 | + <p class="answer_text">A.</p> | |
| 1305 | + <p class="answer_cont"> | |
| 1306 | + 문자온 문자 발송 결과가 “수신거부”로 나타나는 경우, 고객님의 휴대폰 번호가 '번호도용 문자 차단서비스'에 가입되어 있을 확률이 매우 높습니다. 먼저, 고객님의 휴대폰 가입 통신사(SKT, KT, LG 등)에 문의하시어 '번호도용 문자 차단서비스’ 해지 후 재발송하시면 정상 이용 가능합니다.<br>※ 이동통신사 번호도용 문자 차단서비스 : 웹에서 발송되는 스팸, 스미싱 문자 등에 내 번호가 회신번호로 악용되는 것을 방지해주는 서비스(서비스 해지 후 문자 정상 발송까지 3~7일 소요) | |
| 1307 | + </p> | |
| 1308 | + </div> | |
| 1309 | + </li> | |
| 1310 | + </ul> | |
| 1311 | + </div> | |
| 1312 | + </div> | |
| 1313 | + </div> | |
| 1314 | + <footer id="footer" class="footer"> | |
| 1315 | + <div class="footer_top"> | |
| 1316 | + <div class="inner table"> | |
| 1317 | + <ul class="table_cell"> | |
| 1318 | + <li class="about"><a href="http://iten.co.kr/" target="_blank" rel="nosublink">회사소개</a></li> | |
| 1319 | + <li class="SortLine"><a href="/web/cop/bbs/TermsList.do?menuNm=02" rel="nosublink">이용약관</a></li> | |
| 1320 | + <li class="SortLine"><a href="/web/cop/bbs/TermsList.do?menuNm=03" rel="nosublink">개인정보처리방침</a></li> | |
| 1321 | + <li class="SortLine"><a href="/web/cop/bbs/TermsList.do?menuNm=04" rel="nosublink">불법스팸방지정책</a></li> | |
| 1322 | + </ul> | |
| 1323 | + </div> | |
| 1324 | + </div> | |
| 1325 | + <div class="footer_body"> | |
| 1326 | + <div class="inner table"> | |
| 1327 | + <div class="table_cell"> | |
| 1328 | + <a href="/" class="footer_logo" rel="nosublink"><img src="/publish/images/CI_white.png" alt="문자온 CI"></a> | |
| 1329 | + <div class="footer_info"> | |
| 1330 | + <p>주소 : (12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스) | 기업명 : 주식회사 아이티앤</p> | |
| 1331 | + <p>사업자번호 : 653-87-00858 | 대표 : 유인식 | 특수한 유형의 부가통신사업자 등록번호 : 제3-01-21-0054호 | 통신판매등록번호 : 제2021-다산-0422호</p> | |
| 1332 | + <p>Copyright 2022 ⓒ MUNJAON co. Ltd, All rights reserved.</p> | |
| 1333 | + </div> | |
| 1334 | + <dl class="footer_service_center"> | |
| 1335 | + <dt>고객센터</dt> | |
| 1336 | + <dd> | |
| 1337 | + <p>010-8432-9333<br>010-2290-4786</p> | |
| 1338 | + <span>E-mail : help@iten.co.kr</span> | |
| 1339 | + </dd> | |
| 1340 | + </dl> | |
| 1341 | + </div> | |
| 1342 | + </div> | |
| 1343 | + </div> | |
| 1344 | + </footer> | |
| 1345 | + <!--// footer 영역 --> | |
| 1346 | + | |
| 1347 | +</body> | |
| 1348 | + | |
| 1349 | +</html>(No newline at end of file) |
--- src/main/webapp/publish/js/content.js
+++ src/main/webapp/publish/js/content.js
... | ... | @@ -390,10 +390,10 @@ |
| 390 | 390 |
|
| 391 | 391 |
// 번호추가 ? 호버 시 팝업 |
| 392 | 392 |
$(".btn_add_number .qmMark").mouseover(function(){
|
| 393 |
- $(this).parents(".btnType").next().next(".send_hover_cont").addClass("on");
|
|
| 393 |
+ $(this).parents(".btnType").siblings(".send_hover_cont").addClass("on");
|
|
| 394 | 394 |
}) |
| 395 | 395 |
$(".btn_add_number .qmMark").mouseleave(function(){
|
| 396 |
- $(this).parents(".btnType").next().next(".send_hover_cont").removeClass("on");
|
|
| 396 |
+ $(this).parents(".btnType").siblings(".send_hover_cont").removeClass("on");
|
|
| 397 | 397 |
}) |
| 398 | 398 |
|
| 399 | 399 |
|
--- src/main/webapp/publish/js/popupLayer.js
+++ src/main/webapp/publish/js/popupLayer.js
... | ... | @@ -116,6 +116,19 @@ |
| 116 | 116 |
$("body").find(".mask").addClass("on");
|
| 117 | 117 |
$("body").css("overflow","hidden");
|
| 118 | 118 |
wrapWindowByMask(popName); |
| 119 |
+ |
|
| 120 |
+ if($(e.target).closest(".popup-com").is(".popup-com") == true){
|
|
| 121 |
+ $(".mask").attr("style","z-index:101;");
|
|
| 122 |
+ $("."+popName).closest(".tooltip-wrap").attr("style","z-index:105;");
|
|
| 123 |
+ } |
|
| 124 |
+ |
|
| 125 |
+ // 엑셀 불러오기 > 주소록 상세결과 팝업 마스크 오류 예외처리 |
|
| 126 |
+ if($("[data-tooltip-con="+popName+"]").is(".adr_detail_result")){
|
|
| 127 |
+ $(".mask").removeClass("on");
|
|
| 128 |
+ $(".adr_detail_result").before('<div class="mask on"></div>');
|
|
| 129 |
+ $("body").css("overflow","hidden");
|
|
| 130 |
+ $(".adr_detail_result").closest(".tooltip-wrap").attr("style","z-index:120;");
|
|
| 131 |
+ } |
|
| 119 | 132 |
|
| 120 | 133 |
/* 주소록 대량등록, 주소롟 불러오기 팝업에 있는 테이블 스크롤바 꾸미기 */ |
| 121 | 134 |
$(".adr_pop_list2 .adr_bd_wrap").mCustomScrollbar({
|
... | ... | @@ -148,17 +161,32 @@ |
| 148 | 161 |
/* 상세보기 버튼 클릭 시 레이어팝업*/ |
| 149 | 162 |
// 팝업이 보이고 있으면 마스크 노출/미노출 |
| 150 | 163 |
// 레이어 팝업 2개 뜰 경우 |
| 151 |
- if($(".popup-com:visible").length <= 1){
|
|
| 164 |
+ if($(".popup-com:visible").length < 1){
|
|
| 152 | 165 |
$(".mask").removeClass("on");
|
| 153 |
- }else{}
|
|
| 166 |
+ }else{
|
|
| 167 |
+ $(".mask").attr("style","z-index:99;");
|
|
| 168 |
+ $(".mask").addClass("on");
|
|
| 169 |
+ $("body").css("overflow","hidden");
|
|
| 170 |
+ } |
|
| 154 | 171 |
|
| 155 | 172 |
if($(this).closest(".adr_layer").is(".adr_popup14") == true){
|
| 156 | 173 |
$(".mask").addClass("on");
|
| 174 |
+ $("body").css("overflow","hidden");
|
|
| 157 | 175 |
}else{}
|
| 176 |
+ |
|
| 158 | 177 |
// 결과상세에서 레이어팝업 2개 뜰 경우 |
| 159 |
- if($(this).closest(".adr_layer").is(".rev_popup02") == true){
|
|
| 178 |
+ if($(this).closest(".adr_layer").is(".rev_popup02") == true && $(this).closest(".adr_layer").is(".add_adr_popup") == false){
|
|
| 160 | 179 |
$(".mask").addClass("on");
|
| 161 |
- }else{}
|
|
| 180 |
+ $("body").css("overflow","hidden");
|
|
| 181 |
+ } |
|
| 182 |
+ else{}
|
|
| 183 |
+ |
|
| 184 |
+ // 엑셀 불러오기 > 주소록 상세결과 팝업 마스크 오류 예외처리 |
|
| 185 |
+ if($(this).closest(".adr_layer").is(".adr_detail_result")){
|
|
| 186 |
+ $(".mask").removeClass("off");
|
|
| 187 |
+ $(".adr_detail_result").siblings(".mask").remove();
|
|
| 188 |
+ } |
|
| 189 |
+ |
|
| 162 | 190 |
}) |
| 163 | 191 |
} |
| 164 | 192 |
|
--- src/main/webapp/publish/textingmsg_2025_detail.html
+++ src/main/webapp/publish/textingmsg_2025_detail.html
... | ... | @@ -244,7 +244,7 @@ |
| 244 | 244 |
|
| 245 | 245 |
<!-- 발송대상리스트 팝업 --> |
| 246 | 246 |
<div class="tooltip-wrap"> |
| 247 |
- <div class="popup-com ad_layer rev_popup04" tabindex="0" data-tooltip-con="rev_popup04" data-focus="rev_popup04" data-focus-prev="rev_popup04-close" style="width:530px;"> |
|
| 247 |
+ <div class="popup-com ad_layer rev_popup04 transmit_list_popup" tabindex="0" data-tooltip-con="rev_popup04" data-focus="rev_popup04" data-focus-prev="rev_popup04-close" style="width:530px;"> |
|
| 248 | 248 |
<div class="popup_heading"> |
| 249 | 249 |
<p>발송대상 리스트</p> |
| 250 | 250 |
<button type="button" class="tooltip-close" data-focus="rev_popup04-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button> |
... | ... | @@ -335,7 +335,7 @@ |
| 335 | 335 |
<div class="table_btn clearfix"> |
| 336 | 336 |
<div class="table_btn_left"> |
| 337 | 337 |
<button type="button" class="excel_btn btnType"><i class="downroad"></i>엑셀 다운로드</button> |
| 338 |
- <button type="button" data-tooltip="rev_popup02" class="btnType btnType14"><i class="add_img"></i>주소록 등록</button> |
|
| 338 |
+ <button type="button" data-tooltip="rev_popup02" class="btnType btnType14 btn_adr_add"><i class="add_img"></i>주소록 등록</button> |
|
| 339 | 339 |
</div> |
| 340 | 340 |
</div> |
| 341 | 341 |
|
... | ... | @@ -542,7 +542,7 @@ |
| 542 | 542 |
|
| 543 | 543 |
<!-- 주소록에 등록 팝업 --> |
| 544 | 544 |
<div class="tooltip-wrap"> |
| 545 |
- <div class="popup-com adr_layer rev_popup02" tabindex="0" data-tooltip-con="rev_popup02" data-focus="rev_popup02" data-focus-prev="rev_popup02-close" style="width: 510px;"> |
|
| 545 |
+ <div class="popup-com adr_layer rev_popup02 add_adr_popup" tabindex="0" data-tooltip-con="rev_popup02" data-focus="rev_popup02" data-focus-prev="rev_popup02-close" style="width: 510px;"> |
|
| 546 | 546 |
<div class="popup_heading"> |
| 547 | 547 |
<p>주소록에 등록</p> |
| 548 | 548 |
<button type="button" class="tooltip-close" data-focus="rev_popup02-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button> |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?