From 415392d64b9b3190998c32041bd339625b4e8b6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=A4=80=EC=8B=9D=28PJS=29?= Date: Fri, 20 Feb 2026 16:46:20 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A0=84=ED=9B=84=EC=82=AC=EC=A7=84=20?= =?UTF-8?q?=EB=94=94=EC=9E=90=EC=9D=B8=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=A0=95=EC=83=81=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../webphotodiet/WebPhotoDietController.java | 298 ++++---- .../web/webphotodiet/WebPhotoDietService.java | 16 +- .../impl/WebPhotoDietServiceImpl.java | 607 ++++++++-------- .../resources/mappers/WebPhotoDietSqlMap.xml | 4 +- .../static/css/web/webPhotoDietSelectList.css | 645 +++++++++++++++--- .../js/web/webphotodiet/webPhotoDietInsert.js | 262 +++---- .../webphotodiet/webPhotoDietSelectList.js | 505 +++++--------- .../js/web/webphotodiet/webPhotoDietUpdate.js | 149 ++-- .../web/webphotodiet/webPhotoDietInsert.html | 162 +++-- .../webphotodiet/webPhotoDietSelectList.html | 73 +- .../web/webphotodiet/webPhotoDietUpdate.html | 167 +++-- 11 files changed, 1617 insertions(+), 1271 deletions(-) diff --git a/src/main/java/com/madeu/controller/web/webphotodiet/WebPhotoDietController.java b/src/main/java/com/madeu/controller/web/webphotodiet/WebPhotoDietController.java index 713ba36..0fdddbf 100644 --- a/src/main/java/com/madeu/controller/web/webphotodiet/WebPhotoDietController.java +++ b/src/main/java/com/madeu/controller/web/webphotodiet/WebPhotoDietController.java @@ -39,18 +39,18 @@ public class WebPhotoDietController extends ManagerDraftAction { * @param response * @return */ - @RequestMapping(value="/webphotodiet/selectListWebPhotoDietIntro.do") - public String selectListWebPhotoDietIntro(HttpSession session, HttpServletRequest request, HttpServletResponse response, Model model) { + @RequestMapping(value = "/webphotodiet/selectListWebPhotoDietIntro.do") + public String selectListWebPhotoDietIntro(HttpSession session, HttpServletRequest request, + HttpServletResponse response, Model model) { log.debug("WebPhotoDietController selectListWebPhotoDietIntro START"); HashMap paramMap = HttpUtil.getParameterMap(request); HashMap map = new HashMap(); - try{ - if(!webCheckLogin(session)){ + try { + if (!webCheckLogin(session)) { return "/web/login/logout"; - } - else { + } else { paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId"))); map = webPhotoDietService.selectListWebPhotoDietIntro(paramMap); @@ -60,8 +60,7 @@ public class WebPhotoDietController extends ManagerDraftAction { model.addAttribute("deleteUseYn", map.get("deleteUseYn")); model.addAttribute("downloadUseYn", map.get("downloadUseYn")); } - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); return "/web/login/logout"; } @@ -76,35 +75,32 @@ public class WebPhotoDietController extends ManagerDraftAction { * @param response * @return */ - @RequestMapping(value="/webphotodiet/selectListWebPhotoDiet.do") - public ModelAndView selectListWebPhotoDiet(HttpSession session, HttpServletRequest request, HttpServletResponse response) { + @RequestMapping(value = "/webphotodiet/selectListWebPhotoDiet.do") + public ModelAndView selectListWebPhotoDiet(HttpSession session, HttpServletRequest request, + HttpServletResponse response) { log.debug("WebPhotoDietController selectListWebPhotoDiet START"); HashMap paramMap = HttpUtil.getParameterMap(request); HashMap map = new HashMap(); - try{ - if(!webCheckLogin(session)){ + try { + if (!webCheckLogin(session)) { return null; - } - else{ + } else { paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId"))); map = webPhotoDietService.selectListWebPhotoDiet(paramMap); } - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); return null; - } - finally { - if(Constants.OK == map.get("msgCode")) { + } finally { + if (Constants.OK == map.get("msgCode")) { - } - else{ + } else { map.put("msgCode", Constants.FAIL); map.put("success", false); - if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) { - map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다."); + if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) { + map.put("msgDesc", "정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다."); } } } @@ -119,35 +115,32 @@ public class WebPhotoDietController extends ManagerDraftAction { * @param response * @return */ - @RequestMapping(value="/webphotodiet/selectWebPhotoDiet.do") - public ModelAndView selectWebPhotoDiet(HttpSession session,HttpServletRequest request, HttpServletResponse response) { + @RequestMapping(value = "/webphotodiet/selectWebPhotoDiet.do") + public ModelAndView selectWebPhotoDiet(HttpSession session, HttpServletRequest request, + HttpServletResponse response) { log.debug("WebPhotoDietController selectWebPhotoDiet START"); HashMap paramMap = HttpUtil.getParameterMap(request); HashMap map = new HashMap(); - try{ - if(!webCheckLogin(session)){ + try { + if (!webCheckLogin(session)) { return null; - } - else{ + } else { paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId"))); map = webPhotoDietService.selectWebPhotoDiet(paramMap); } - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); return null; - } - finally { - if(Constants.OK == map.get("msgCode")) { + } finally { + if (Constants.OK == map.get("msgCode")) { - } - else{ + } else { map.put("msgCode", Constants.FAIL); map.put("success", false); - if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) { - map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다."); + if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) { + map.put("msgDesc", "정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다."); } } } @@ -155,6 +148,44 @@ public class WebPhotoDietController extends ManagerDraftAction { return HttpUtil.makeHashToJsonModelAndView(map); } + /** + * 카테고리 목록 조회 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/webphotodiet/getCategoryList.do") + public ModelAndView getCategoryList(HttpSession session, HttpServletRequest request, + HttpServletResponse response) { + + HashMap paramMap = HttpUtil.getParameterMap(request); + HashMap map = new HashMap(); + + try { + if (!webCheckLogin(session)) { + return null; + } else { + map = webPhotoDietService.getCategoryList(paramMap); + } + } catch (Exception e) { + e.printStackTrace(); + return null; + } finally { + if (Constants.OK == map.get("msgCode")) { + + } else { + map.put("msgCode", Constants.FAIL); + map.put("success", false); + if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) { + map.put("msgDesc", "정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다."); + } + } + } + log.debug("WebPhotoDietController getCategoryList END"); + return HttpUtil.makeHashToJsonModelAndView(map); + } + /** * 홈페이지 전후사진(다이어트) 상세 이미지 파일 저장 * @@ -162,8 +193,9 @@ public class WebPhotoDietController extends ManagerDraftAction { * @param response * @return */ - @RequestMapping(value="/webphotodiet/uploadFile.do") - public ModelAndView uploadFile(HttpSession session,HttpServletRequest request, HttpServletResponse response,@RequestParam(value = "file", required = false) MultipartFile file) { + @RequestMapping(value = "/webphotodiet/uploadFile.do") + public ModelAndView uploadFile(HttpSession session, HttpServletRequest request, HttpServletResponse response, + @RequestParam(value = "file", required = false) MultipartFile file) { log.debug("WebPhotoDietController uploadFile START"); HashMap paramMap = HttpUtil.getParameterMap(request); @@ -171,30 +203,26 @@ public class WebPhotoDietController extends ManagerDraftAction { StringBuffer errorMsg = new StringBuffer(); - try{ - if(!webCheckLogin(session)){ + try { + if (!webCheckLogin(session)) { return null; - } - else{ + } else { paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("regId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("modId", String.valueOf(session.getAttribute("loginMemberId"))); - map = webPhotoDietService.uploadFile(paramMap,file); + map = webPhotoDietService.uploadFile(paramMap, file); } - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); errorMsg.append(e); - } - finally { - if(Constants.OK == map.get("msgCode")) { + } finally { + if (Constants.OK == map.get("msgCode")) { - } - else{ + } else { map.put("msgCode", Constants.FAIL); map.put("success", false); - if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) { - map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다."); + if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) { + map.put("msgDesc", "정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다."); } } @@ -210,25 +238,24 @@ public class WebPhotoDietController extends ManagerDraftAction { insertMap.put("requestValue", String.valueOf(paramMap)); insertMap.put("responseValue", String.valueOf(map)); insertMap.put("tId", map.get("tId")); - if((String.valueOf(errorMsg)).equals("") || (String.valueOf(errorMsg) == null) || String.valueOf(errorMsg).length() == 0){ + if ((String.valueOf(errorMsg)).equals("") || (String.valueOf(errorMsg) == null) + || String.valueOf(errorMsg).length() == 0) { insertMap.put("resultCode", "SUCCESS"); - } - else{ + } else { insertMap.put("resultCode", "ERROR"); } insertMap.put("resultMsg", String.valueOf(errorMsg)); insertMap.put("muMemberId", paramMap.get("loginMemberId")); webLogHistoryService.insertLogHistory(insertMap, visitLogParamMap); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); } } log.debug("WebPhotoDietController uploadFile END"); return HttpUtil.makeHashToJsonModelAndView(map); } - + /** * 홈페이지 전후사진(다이어트) 등록 화면으로 이동. * @@ -236,18 +263,18 @@ public class WebPhotoDietController extends ManagerDraftAction { * @param response * @return */ - @RequestMapping(value="/webphotodiet/insertWebPhotoDietIntro.do") - public String insertWebPhotoDietIntro(HttpSession session, HttpServletRequest request, HttpServletResponse response, Model model) { + @RequestMapping(value = "/webphotodiet/insertWebPhotoDietIntro.do") + public String insertWebPhotoDietIntro(HttpSession session, HttpServletRequest request, HttpServletResponse response, + Model model) { log.debug("WebPhotoDietController insertWebPhotoDietIntro START"); HashMap paramMap = HttpUtil.getParameterMap(request); HashMap map = new HashMap(); - try{ - if(!webCheckLogin(session)){ + try { + if (!webCheckLogin(session)) { return "/web/login/logout"; - } - else { + } else { paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId"))); map = webPhotoDietService.insertWebPhotoDietIntro(paramMap); @@ -258,8 +285,7 @@ public class WebPhotoDietController extends ManagerDraftAction { model.addAttribute("downloadUseYn", map.get("downloadUseYn")); model.addAttribute("categorylist", map.get("categorylist")); } - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); return "/web/login/logout"; } @@ -274,10 +300,11 @@ public class WebPhotoDietController extends ManagerDraftAction { * @param response * @return */ - @RequestMapping(value="/webphotodiet/insertWebPhotoDiet.do") - public ModelAndView insertWebPhotoDiet(HttpSession session, HttpServletRequest request, HttpServletResponse response, - @RequestParam(value = "beforeFile", required = false) MultipartFile beforeFile, - @RequestParam(value = "afterFile", required = false) MultipartFile afterFile) { + @RequestMapping(value = "/webphotodiet/insertWebPhotoDiet.do") + public ModelAndView insertWebPhotoDiet(HttpSession session, HttpServletRequest request, + HttpServletResponse response, + @RequestParam(value = "beforeFile", required = false) MultipartFile beforeFile, + @RequestParam(value = "afterFile", required = false) MultipartFile afterFile) { log.debug("WebPhotoDietController insertWebPhotoDiet START"); HashMap paramMap = HttpUtil.getParameterMap(request); @@ -285,33 +312,29 @@ public class WebPhotoDietController extends ManagerDraftAction { StringBuffer errorMsg = new StringBuffer(); - try{ - if(!webCheckLogin(session)){ + try { + if (!webCheckLogin(session)) { return null; - } - else{ + } else { paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("regId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("modId", String.valueOf(session.getAttribute("loginMemberId"))); List files = new ArrayList<>(); files.add(beforeFile); files.add(afterFile); - map = ((WebPhotoDietService)webPhotoDietService).insertWebPhotoDiet(paramMap, files); + map = ((WebPhotoDietService) webPhotoDietService).insertWebPhotoDiet(paramMap, files); } - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); errorMsg.append(e); - } - finally { - if(Constants.OK == map.get("msgCode")) { + } finally { + if (Constants.OK == map.get("msgCode")) { - } - else{ + } else { map.put("msgCode", Constants.FAIL); map.put("success", false); - if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) { - map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다."); + if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) { + map.put("msgDesc", "정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다."); } } @@ -327,18 +350,17 @@ public class WebPhotoDietController extends ManagerDraftAction { insertMap.put("requestValue", String.valueOf(paramMap)); insertMap.put("responseValue", String.valueOf(map)); insertMap.put("tId", map.get("tId")); - if((String.valueOf(errorMsg)).equals("") || (String.valueOf(errorMsg) == null) || String.valueOf(errorMsg).length() == 0){ + if ((String.valueOf(errorMsg)).equals("") || (String.valueOf(errorMsg) == null) + || String.valueOf(errorMsg).length() == 0) { insertMap.put("resultCode", "SUCCESS"); - } - else{ + } else { insertMap.put("resultCode", "ERROR"); } insertMap.put("resultMsg", String.valueOf(errorMsg)); insertMap.put("muMemberId", paramMap.get("loginMemberId")); webLogHistoryService.insertLogHistory(insertMap, visitLogParamMap); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); } } @@ -353,18 +375,18 @@ public class WebPhotoDietController extends ManagerDraftAction { * @param response * @return */ - @RequestMapping(value="/webphotodiet/updateWebPhotoDietIntro.do") - public String updateWebPhotoDietIntro(HttpSession session, HttpServletRequest request, HttpServletResponse response, Model model) { + @RequestMapping(value = "/webphotodiet/updateWebPhotoDietIntro.do") + public String updateWebPhotoDietIntro(HttpSession session, HttpServletRequest request, HttpServletResponse response, + Model model) { log.debug("WebPhotoDietController updateWebPhotoDietIntro START"); HashMap paramMap = HttpUtil.getParameterMap(request); HashMap map = new HashMap(); - try{ - if(!webCheckLogin(session)){ + try { + if (!webCheckLogin(session)) { return "/web/login/logout"; - } - else { + } else { paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId"))); map = webPhotoDietService.updateWebPhotoDietIntro(paramMap); @@ -375,8 +397,7 @@ public class WebPhotoDietController extends ManagerDraftAction { model.addAttribute("downloadUseYn", map.get("downloadUseYn")); model.addAttribute("categorylist", map.get("categorylist")); } - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); return "/web/login/logout"; } @@ -391,10 +412,11 @@ public class WebPhotoDietController extends ManagerDraftAction { * @param response * @return */ - @RequestMapping(value="/webphotodiet/updateWebPhotoDiet.do") - public ModelAndView updateWebPhotoDiet(HttpSession session, HttpServletRequest request, HttpServletResponse response, - @RequestParam(value = "beforeFile", required = false) MultipartFile beforeFile, - @RequestParam(value = "afterFile", required = false) MultipartFile afterFile) { + @RequestMapping(value = "/webphotodiet/updateWebPhotoDiet.do") + public ModelAndView updateWebPhotoDiet(HttpSession session, HttpServletRequest request, + HttpServletResponse response, + @RequestParam(value = "beforeFile", required = false) MultipartFile beforeFile, + @RequestParam(value = "afterFile", required = false) MultipartFile afterFile) { log.debug("WebPhotoDietController updateWebPhotoDiet START"); HashMap paramMap = HttpUtil.getParameterMap(request); @@ -402,11 +424,10 @@ public class WebPhotoDietController extends ManagerDraftAction { StringBuffer errorMsg = new StringBuffer(); - try{ - if(!webCheckLogin(session)){ + try { + if (!webCheckLogin(session)) { return null; - } - else{ + } else { paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("regId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("modId", String.valueOf(session.getAttribute("loginMemberId"))); @@ -415,20 +436,17 @@ public class WebPhotoDietController extends ManagerDraftAction { files.add(afterFile); map = webPhotoDietService.updateWebPhotoDiet(paramMap, files); } - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); errorMsg.append(e); - } - finally { - if(Constants.OK == map.get("msgCode")) { + } finally { + if (Constants.OK == map.get("msgCode")) { - } - else{ + } else { map.put("msgCode", Constants.FAIL); map.put("success", false); - if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) { - map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다."); + if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) { + map.put("msgDesc", "정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다."); } } @@ -444,18 +462,17 @@ public class WebPhotoDietController extends ManagerDraftAction { insertMap.put("requestValue", String.valueOf(paramMap)); insertMap.put("responseValue", String.valueOf(map)); insertMap.put("tId", map.get("tId")); - if((String.valueOf(errorMsg)).equals("") || (String.valueOf(errorMsg) == null) || String.valueOf(errorMsg).length() == 0){ + if ((String.valueOf(errorMsg)).equals("") || (String.valueOf(errorMsg) == null) + || String.valueOf(errorMsg).length() == 0) { insertMap.put("resultCode", "SUCCESS"); - } - else{ + } else { insertMap.put("resultCode", "ERROR"); } insertMap.put("resultMsg", String.valueOf(errorMsg)); insertMap.put("muMemberId", paramMap.get("loginMemberId")); webLogHistoryService.insertLogHistory(insertMap, visitLogParamMap); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); } } @@ -463,7 +480,6 @@ public class WebPhotoDietController extends ManagerDraftAction { return HttpUtil.makeHashToJsonModelAndView(map); } - /** * 홈페이지 전후사진(다이어트) 정보 삭제 * @@ -471,8 +487,9 @@ public class WebPhotoDietController extends ManagerDraftAction { * @param response * @return */ - @RequestMapping(value="/webphotodiet/deleteWebPhotoDiet.do") - public ModelAndView deleteWebPhotoDiet(HttpSession session,HttpServletRequest request, HttpServletResponse response) { + @RequestMapping(value = "/webphotodiet/deleteWebPhotoDiet.do") + public ModelAndView deleteWebPhotoDiet(HttpSession session, HttpServletRequest request, + HttpServletResponse response) { log.debug("WebPhotoDietController deleteWebPhotoDiet START"); HashMap paramMap = HttpUtil.getParameterMap(request); @@ -480,30 +497,26 @@ public class WebPhotoDietController extends ManagerDraftAction { StringBuffer errorMsg = new StringBuffer(); - try{ - if(!webCheckLogin(session)){ + try { + if (!webCheckLogin(session)) { return null; - } - else{ + } else { paramMap.put("loginMemberId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("regId", String.valueOf(session.getAttribute("loginMemberId"))); paramMap.put("modId", String.valueOf(session.getAttribute("loginMemberId"))); map = webPhotoDietService.deleteWebPhotoDiet(paramMap); } - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); errorMsg.append(e); - } - finally { - if(Constants.OK == map.get("msgCode")) { + } finally { + if (Constants.OK == map.get("msgCode")) { - } - else{ + } else { map.put("msgCode", Constants.FAIL); map.put("success", false); - if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) { - map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다."); + if (null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) { + map.put("msgDesc", "정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다."); } } @@ -519,22 +532,21 @@ public class WebPhotoDietController extends ManagerDraftAction { insertMap.put("requestValue", String.valueOf(paramMap)); insertMap.put("responseValue", String.valueOf(map)); insertMap.put("tId", map.get("tId")); - if((String.valueOf(errorMsg)).equals("") || (String.valueOf(errorMsg) == null) || String.valueOf(errorMsg).length() == 0){ + if ((String.valueOf(errorMsg)).equals("") || (String.valueOf(errorMsg) == null) + || String.valueOf(errorMsg).length() == 0) { insertMap.put("resultCode", "SUCCESS"); - } - else{ + } else { insertMap.put("resultCode", "ERROR"); } insertMap.put("resultMsg", String.valueOf(errorMsg)); insertMap.put("muMemberId", paramMap.get("loginMemberId")); webLogHistoryService.insertLogHistory(insertMap, visitLogParamMap); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); } } log.debug("WebPhotoDietController deleteWebPhotoDiet END"); return HttpUtil.makeHashToJsonModelAndView(map); } -} +} diff --git a/src/main/java/com/madeu/service/web/webphotodiet/WebPhotoDietService.java b/src/main/java/com/madeu/service/web/webphotodiet/WebPhotoDietService.java index 8861916..bdea839 100644 --- a/src/main/java/com/madeu/service/web/webphotodiet/WebPhotoDietService.java +++ b/src/main/java/com/madeu/service/web/webphotodiet/WebPhotoDietService.java @@ -7,12 +7,24 @@ import java.util.List; public interface WebPhotoDietService { public HashMap selectListWebPhotoDietIntro(HashMap paramMap) throws Exception; + public HashMap selectListWebPhotoDiet(HashMap paramMap) throws Exception; + public HashMap selectWebPhotoDiet(HashMap paramMap) throws Exception; + public HashMap uploadFile(HashMap paramMap, MultipartFile file) throws Exception; + public HashMap insertWebPhotoDietIntro(HashMap paramMap) throws Exception; - public HashMap insertWebPhotoDiet(HashMap paramMap, List file) throws Exception; + + public HashMap insertWebPhotoDiet(HashMap paramMap, List file) + throws Exception; + public HashMap updateWebPhotoDietIntro(HashMap paramMap) throws Exception; - public HashMap updateWebPhotoDiet(HashMap paramMap, List file) throws Exception; + + public HashMap updateWebPhotoDiet(HashMap paramMap, List file) + throws Exception; + public HashMap deleteWebPhotoDiet(HashMap paramMap) throws Exception; + + public HashMap getCategoryList(HashMap paramMap) throws Exception; } diff --git a/src/main/java/com/madeu/service/web/webphotodiet/impl/WebPhotoDietServiceImpl.java b/src/main/java/com/madeu/service/web/webphotodiet/impl/WebPhotoDietServiceImpl.java index ab934d9..d674215 100644 --- a/src/main/java/com/madeu/service/web/webphotodiet/impl/WebPhotoDietServiceImpl.java +++ b/src/main/java/com/madeu/service/web/webphotodiet/impl/WebPhotoDietServiceImpl.java @@ -34,8 +34,8 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService { @Autowired private FileService fileService; - @Value("${url.cdn}") - String CDN_URL; + @Value("${url.cdn}") + String CDN_URL; /** * 홈페이지 전후사진(다이어트) 리스트 화면으로 이동. @@ -52,62 +52,60 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService { HashMap map = new HashMap(); - log.debug("loginMemberId :"+paramMap.get("loginMemberId")); + log.debug("loginMemberId :" + paramMap.get("loginMemberId")); - log.debug("menuClass :"+paramMap.get("menuClass")); + log.debug("menuClass :" + paramMap.get("menuClass")); - try{ - boolean check = true; + try { + boolean check = true; - String menuClass = String.valueOf(paramMap.get("menuClass")); + String menuClass = String.valueOf(paramMap.get("menuClass")); // 정렬 - if(true != ValidationCheckUtil.emptyCheck(menuClass)){ + if (true != ValidationCheckUtil.emptyCheck(menuClass)) { check = false; map.put("msgCode", Constants.FAIL); - map.put("msgDesc","메뉴 정보가 없습니다."); + map.put("msgDesc", "메뉴 정보가 없습니다."); } - if(true == check){ + if (true == check) { // 사용자 확인 List> userListMap = webMemberSqlMapDAO.checkMember(paramMap); int userListMapSize = userListMap.size(); - if(1==userListMapSize){ + if (1 == userListMapSize) { paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId")); - } - else { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "사용자 정보가 올바르지 않습니다."); } } - if(true == check){ + if (true == check) { // 권한 조회 HashMap authCheckParamMap = new HashMap(); - authCheckParamMap.put("menuClass",paramMap.get("menuClass")); - authCheckParamMap.put("muAuthId",paramMap.get("menuClassAuthId")); - List> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap); + authCheckParamMap.put("menuClass", paramMap.get("menuClass")); + authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId")); + List> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO + .selectAuthMenuRelation(authCheckParamMap); int authMenuRelationlistMapSize = authMenuRelationlistMap.size(); - if(1==authMenuRelationlistMapSize){ + if (1 == authMenuRelationlistMapSize) { map.put("msgCode", Constants.OK); - map.put("success","true"); + map.put("success", "true"); map.put("selectUseYn", authMenuRelationlistMap.get(0).get("selectUseYn")); map.put("insertUseYn", authMenuRelationlistMap.get(0).get("insertUseYn")); map.put("updateUseYn", authMenuRelationlistMap.get(0).get("updateUseYn")); map.put("deleteUseYn", authMenuRelationlistMap.get(0).get("deleteUseYn")); map.put("downloadUseYn", authMenuRelationlistMap.get(0).get("downloadUseYn")); - } - else { + } else { map.put("msgCode", Constants.FAIL); map.put("msgDesc", "권한 정보가 없습니다."); } } - } - catch(Exception e){ + } catch (Exception e) { e.printStackTrace(); throw e; } @@ -130,101 +128,96 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService { HashMap map = new HashMap(); - log.debug("loginMemberId :"+paramMap.get("loginMemberId")); + log.debug("loginMemberId :" + paramMap.get("loginMemberId")); - log.debug("menuClass :"+paramMap.get("menuClass")); + log.debug("menuClass :" + paramMap.get("menuClass")); - log.debug("webPhotoDietSearchKeywordParam :"+paramMap.get("webPhotoDietSearchKeywordParam")); - log.debug("webPhotoDietSort :"+paramMap.get("webPhotoDietSort")); - log.debug("webPhotoDietStart :"+paramMap.get("webPhotoDietStart")); - log.debug("webPhotoDietLimit :"+paramMap.get("webPhotoDietLimit")); - log.debug("webPhotoDietSort :"+paramMap.get("webPhotoDietSort")); - log.debug("webPhotoDietDir :"+paramMap.get("webPhotoDietDir")); - log.debug("webPhotoDietCurrentPage :"+paramMap.get("webPhotoDietCurrentPage")); + log.debug("webPhotoDietSearchKeywordParam :" + paramMap.get("webPhotoDietSearchKeywordParam")); + log.debug("webPhotoDietSort :" + paramMap.get("webPhotoDietSort")); + log.debug("webPhotoDietStart :" + paramMap.get("webPhotoDietStart")); + log.debug("webPhotoDietLimit :" + paramMap.get("webPhotoDietLimit")); + log.debug("webPhotoDietSort :" + paramMap.get("webPhotoDietSort")); + log.debug("webPhotoDietDir :" + paramMap.get("webPhotoDietDir")); + log.debug("webPhotoDietCurrentPage :" + paramMap.get("webPhotoDietCurrentPage")); - log.debug("webPhotoDietSearchStartDate :"+paramMap.get("webPhotoDietSearchStartDate")); - log.debug("webPhotoDietSearchEndDate :"+paramMap.get("webPhotoDietSearchEndDate")); + log.debug("webPhotoDietSearchStartDate :" + paramMap.get("webPhotoDietSearchStartDate")); + log.debug("webPhotoDietSearchEndDate :" + paramMap.get("webPhotoDietSearchEndDate")); - List> listMap = new ArrayList>(); + List> listMap = new ArrayList>(); - try{ - boolean check = true; + try { + boolean check = true; - if(true == check){ + if (true == check) { // 사용자 확인 List> userListMap = webMemberSqlMapDAO.checkMember(paramMap); int userListMapSize = userListMap.size(); - if(1==userListMapSize){ + if (1 == userListMapSize) { paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId")); - } - else { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "사용자 정보가 올바르지 않습니다."); } } - if(true == check){ + if (true == check) { // 권한 조회 HashMap authCheckParamMap = new HashMap(); - authCheckParamMap.put("menuClass",paramMap.get("menuClass")); - authCheckParamMap.put("muAuthId",paramMap.get("menuClassAuthId")); - List> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap); + authCheckParamMap.put("menuClass", paramMap.get("menuClass")); + authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId")); + List> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO + .selectAuthMenuRelation(authCheckParamMap); - if(1==authMenuRelationlistMap.size()){ + if (1 == authMenuRelationlistMap.size()) { - if(("Y").equals(authMenuRelationlistMap.get(0).get("selectUseYn"))) { + if (("Y").equals(authMenuRelationlistMap.get(0).get("selectUseYn"))) { - } - else { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "조회 권한 정보가 없습니다."); } - } - else { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "권한 정보가 없습니다."); } } - if(true == check){ - // 정렬 - if(null==paramMap.get("webPhotoDietDir")||("").equals(paramMap.get("webPhotoDietDir"))){ + if (true == check) { + // 정렬 + if (null == paramMap.get("webPhotoDietDir") || ("").equals(paramMap.get("webPhotoDietDir"))) { - } - else{ + } else { String dir = String.valueOf(paramMap.get("webPhotoDietDir")); - if(("A").equals(dir)){ + if (("A").equals(dir)) { paramMap.put("webPhotoDietDir", "DESC"); - } - else if(("B").equals(dir)){ + } else if (("B").equals(dir)) { paramMap.put("webPhotoDietDir", "ASC"); - } - else { + } else { paramMap.put("webPhotoDietDir", "DESC"); } } paramMap.put("useYn", "Y"); - List> totalCountListMap = webPhotoDietSqlMapDAO.selectTotalWebPhotoDietCount(paramMap); + List> totalCountListMap = webPhotoDietSqlMapDAO + .selectTotalWebPhotoDietCount(paramMap); int totalCount = Integer.parseInt(String.valueOf(totalCountListMap.get(0).get("totalCount"))); - if(0 < totalCount) { + if (0 < totalCount) { // 리스트 조회 listMap = webPhotoDietSqlMapDAO.selectListWebPhotoDiet(paramMap); } map.put("msgCode", Constants.OK); - map.put("success","true"); + map.put("success", "true"); map.put("totalCount", totalCount); - map.put("rows",listMap); + map.put("rows", listMap); } - } - catch(Exception e){ + } catch (Exception e) { e.printStackTrace(); throw e; } @@ -247,72 +240,69 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService { HashMap map = new HashMap(); - log.debug("loginMemberId :"+paramMap.get("loginMemberId")); + log.debug("loginMemberId :" + paramMap.get("loginMemberId")); - log.debug("menuClass :"+paramMap.get("menuClass")); + log.debug("menuClass :" + paramMap.get("menuClass")); - log.debug("muWebPhotoDietId :"+paramMap.get("muWebPhotoDietId")); + log.debug("muWebPhotoDietId :" + paramMap.get("muWebPhotoDietId")); - try{ - boolean check = true; - String muWebPhotoDietId = String.valueOf(paramMap.get("muWebPhotoDietId")); + try { + boolean check = true; + String muWebPhotoDietId = String.valueOf(paramMap.get("muWebPhotoDietId")); // 정렬 - if(true != ValidationCheckUtil.emptyCheck(muWebPhotoDietId)){ + if (true != ValidationCheckUtil.emptyCheck(muWebPhotoDietId)) { check = false; map.put("msgCode", Constants.FAIL); - map.put("msgDesc","전후사진(다이어트)정보가 없습니다."); + map.put("msgDesc", "전후사진(다이어트)정보가 없습니다."); } - if(true == check){ + if (true == check) { // 사용자 확인 List> userListMap = webMemberSqlMapDAO.checkMember(paramMap); int userListMapSize = userListMap.size(); - if(1==userListMapSize){ + if (1 == userListMapSize) { paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId")); - } - else { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "사용자 정보가 올바르지 않습니다."); } } - if(true == check){ + if (true == check) { // 권한 조회 HashMap authCheckParamMap = new HashMap(); - authCheckParamMap.put("menuClass",paramMap.get("menuClass")); - authCheckParamMap.put("muAuthId",paramMap.get("menuClassAuthId")); - List> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap); + authCheckParamMap.put("menuClass", paramMap.get("menuClass")); + authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId")); + List> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO + .selectAuthMenuRelation(authCheckParamMap); - if(1==authMenuRelationlistMap.size()){ + if (1 == authMenuRelationlistMap.size()) { - if(("Y").equals(authMenuRelationlistMap.get(0).get("selectUseYn"))) { + if (("Y").equals(authMenuRelationlistMap.get(0).get("selectUseYn"))) { - } - else { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "조회 권한 정보가 없습니다."); } - } - else { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "권한 정보가 없습니다."); } } - if(true == check){ + if (true == check) { List> listMap = webPhotoDietSqlMapDAO.selectWebPhotoDiet(paramMap); map.put("msgCode", Constants.OK); - map.put("success","true"); - map.put("rows",listMap); + map.put("success", "true"); + map.put("rows", listMap); } - } - catch(Exception e){ + } catch (Exception e) { e.printStackTrace(); throw e; } @@ -328,74 +318,72 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService { * @throws Exception */ @Override - @Transactional(rollbackFor={Exception.class}, propagation = Propagation.REQUIRES_NEW) + @Transactional(rollbackFor = { Exception.class }, propagation = Propagation.REQUIRES_NEW) public HashMap uploadFile( - HashMap paramMap, MultipartFile file) throws Exception{ + HashMap paramMap, MultipartFile file) throws Exception { log.debug("WebPhotoDietServiceImpl uploadFile START"); HashMap map = new HashMap(); - log.debug("loginMemberId :"+paramMap.get("loginMemberId")); + log.debug("loginMemberId :" + paramMap.get("loginMemberId")); - log.debug("menuClass :"+paramMap.get("menuClass")); + log.debug("menuClass :" + paramMap.get("menuClass")); - log.debug("file :"+file); + log.debug("file :" + file); - try{ - boolean check = true; + try { + boolean check = true; String tId = String.valueOf(System.currentTimeMillis()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar c1 = Calendar.getInstance(); String tDate = sdf.format(c1.getTime()); - if(null==file|| file.isEmpty()){ + if (null == file || file.isEmpty()) { check = false; map.put("msgCode", Constants.FAIL); - map.put("msgDesc","이미지 정보가 없습니다."); + map.put("msgDesc", "이미지 정보가 없습니다."); } - if(true == check){ + if (true == check) { // 사용자 확인 List> userListMap = webMemberSqlMapDAO.checkMember(paramMap); int userListMapSize = userListMap.size(); - if(1==userListMapSize){ + if (1 == userListMapSize) { paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId")); - } - else { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "사용자 정보가 올바르지 않습니다."); } } - if(true == check){ + if (true == check) { // 권한 조회 HashMap authCheckParamMap = new HashMap(); - authCheckParamMap.put("menuClass",paramMap.get("menuClass")); - authCheckParamMap.put("muAuthId",paramMap.get("menuClassAuthId")); - List> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap); + authCheckParamMap.put("menuClass", paramMap.get("menuClass")); + authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId")); + List> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO + .selectAuthMenuRelation(authCheckParamMap); int authMenuRelationlistMapSize = authMenuRelationlistMap.size(); - if(1==authMenuRelationlistMapSize){ + if (1 == authMenuRelationlistMapSize) { - if(("Y").equals(authMenuRelationlistMap.get(0).get("insertUseYn"))) { + if (("Y").equals(authMenuRelationlistMap.get(0).get("insertUseYn"))) { - } - else { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "등록 권한 정보가 없습니다."); } - } - else { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "권한 정보가 없습니다."); } } - if(true == check){ + if (true == check) { if (null != file && !file.isEmpty()) { HashMap uploadFileMap = new HashMap(); @@ -403,10 +391,10 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService { uploadFileMap.put("fileType", "P"); uploadFileMap.put("fileName", file.getOriginalFilename()); HashMap fileMap = fileService.uploadFile(uploadFileMap, file); - String cdnUrl = String.valueOf(fileMap.get("cdnUrl")); - String filePath = String.valueOf(fileMap.get("filePath")); - String fileName = String.valueOf(fileMap.get("fileName")); - String chgFileName = file.getOriginalFilename(); + String cdnUrl = String.valueOf(fileMap.get("cdnUrl")); + String filePath = String.valueOf(fileMap.get("filePath")); + String fileName = String.valueOf(fileMap.get("fileName")); + String chgFileName = file.getOriginalFilename(); paramMap.put("cdnUrl", cdnUrl); paramMap.put("filePath", (CDN_URL).concat(filePath)); paramMap.put("fileName", fileName); @@ -415,12 +403,11 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService { paramMap.put("tDate", tDate); paramMap.put("tId", tId); - map.put("rows",paramMap); + map.put("rows", paramMap); map.put("msgCode", Constants.OK); map.put("msgDesc", "등록되었습니다."); } - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); throw e; } @@ -443,64 +430,63 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService { HashMap map = new HashMap(); - log.debug("loginMemberId :"+paramMap.get("loginMemberId")); + log.debug("loginMemberId :" + paramMap.get("loginMemberId")); - log.debug("menuClass :"+paramMap.get("menuClass")); + log.debug("menuClass :" + paramMap.get("menuClass")); - try{ - boolean check = true; + try { + boolean check = true; - String menuClass = String.valueOf(paramMap.get("menuClass")); + String menuClass = String.valueOf(paramMap.get("menuClass")); // 정렬 - if(true != ValidationCheckUtil.emptyCheck(menuClass)){ + if (true != ValidationCheckUtil.emptyCheck(menuClass)) { check = false; map.put("msgCode", Constants.FAIL); - map.put("msgDesc","메뉴 정보가 없습니다."); + map.put("msgDesc", "메뉴 정보가 없습니다."); } - if(true == check){ + if (true == check) { // 사용자 확인 List> userListMap = webMemberSqlMapDAO.checkMember(paramMap); int userListMapSize = userListMap.size(); - if(1==userListMapSize){ + if (1 == userListMapSize) { paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId")); - } - else { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "사용자 정보가 올바르지 않습니다."); } } - if(true == check){ + if (true == check) { // 권한 조회 HashMap authCheckParamMap = new HashMap(); - authCheckParamMap.put("menuClass",paramMap.get("menuClass")); - authCheckParamMap.put("muAuthId",paramMap.get("menuClassAuthId")); - List> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap); + authCheckParamMap.put("menuClass", paramMap.get("menuClass")); + authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId")); + List> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO + .selectAuthMenuRelation(authCheckParamMap); int authMenuRelationlistMapSize = authMenuRelationlistMap.size(); - if(1==authMenuRelationlistMapSize){ + if (1 == authMenuRelationlistMapSize) { map.put("msgCode", Constants.OK); - map.put("success","true"); + map.put("success", "true"); map.put("selectUseYn", authMenuRelationlistMap.get(0).get("selectUseYn")); map.put("insertUseYn", authMenuRelationlistMap.get(0).get("insertUseYn")); map.put("updateUseYn", authMenuRelationlistMap.get(0).get("updateUseYn")); map.put("deleteUseYn", authMenuRelationlistMap.get(0).get("deleteUseYn")); map.put("downloadUseYn", authMenuRelationlistMap.get(0).get("downloadUseYn")); - } - else { + } else { map.put("msgCode", Constants.FAIL); map.put("msgDesc", "권한 정보가 없습니다."); } } + paramMap.put("categoryDivCd", "05"); List> listMap = webPhotoDietSqlMapDAO.selectListPhotoCategory(paramMap); map.put("categorylist", listMap); - } - catch(Exception e){ + } catch (Exception e) { e.printStackTrace(); throw e; } @@ -516,100 +502,103 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService { * @throws Exception */ @Override - @Transactional(rollbackFor={Exception.class}, propagation = Propagation.REQUIRES_NEW) + @Transactional(rollbackFor = { Exception.class }, propagation = Propagation.REQUIRES_NEW) public HashMap insertWebPhotoDiet( - HashMap paramMap, List files) throws Exception{ + HashMap paramMap, List files) throws Exception { log.debug("WebPhotoDietServiceImpl insertPhotoDiet START"); HashMap map = new HashMap(); - log.debug("loginMemberId :"+paramMap.get("loginMemberId")); - log.debug("menuClass :"+paramMap.get("menuClass")); - log.debug("title :"+paramMap.get("title")); - log.debug("content :"+paramMap.get("content")); - log.debug("files :"+files); + log.debug("loginMemberId :" + paramMap.get("loginMemberId")); + log.debug("menuClass :" + paramMap.get("menuClass")); + log.debug("title :" + paramMap.get("title")); + log.debug("content :" + paramMap.get("content")); + log.debug("files :" + files); - try{ - boolean check = true; + try { + boolean check = true; String tId = String.valueOf(System.currentTimeMillis()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar c1 = Calendar.getInstance(); String tDate = sdf.format(c1.getTime()); - String title = String.valueOf(paramMap.get("title")); - String content = String.valueOf(paramMap.get("content")); - - if(true != ValidationCheckUtil.emptyCheck(title)){ + String title = String.valueOf(paramMap.get("title")); + String content = String.valueOf(paramMap.get("content")); + + if (true != ValidationCheckUtil.emptyCheck(title)) { check = false; map.put("msgCode", Constants.FAIL); - map.put("msgDesc","제목 정보가 없습니다."); + map.put("msgDesc", "제목 정보가 없습니다."); } - if(true != ValidationCheckUtil.emptyCheck(content)){ + if (true != ValidationCheckUtil.emptyCheck(content)) { check = false; map.put("msgCode", Constants.FAIL); - map.put("msgDesc","전후사진(다이어트) 상세 정보가 없습니다."); + map.put("msgDesc", "전후사진(다이어트) 상세 정보가 없습니다."); } - if(files == null || files.size() < 2 || files.get(0) == null || files.get(1) == null || files.get(0).isEmpty() || files.get(1).isEmpty()){ + if (files == null || files.size() < 2 || files.get(0) == null || files.get(1) == null + || files.get(0).isEmpty() || files.get(1).isEmpty()) { check = false; map.put("msgCode", Constants.FAIL); - map.put("msgDesc","Before/After 이미지 정보가 없습니다."); + map.put("msgDesc", "Before/After 이미지 정보가 없습니다."); } - if(true == check){ + if (true == check) { // 사용자 확인 List> userListMap = webMemberSqlMapDAO.checkMember(paramMap); int userListMapSize = userListMap.size(); - if(1==userListMapSize){ + if (1 == userListMapSize) { paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId")); - } - else { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "사용자 정보가 올바르지 않습니다."); } } - if(true == check){ + if (true == check) { // 권한 조회 HashMap authCheckParamMap = new HashMap(); - authCheckParamMap.put("menuClass",paramMap.get("menuClass")); - authCheckParamMap.put("muAuthId",paramMap.get("menuClassAuthId")); - List> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap); + authCheckParamMap.put("menuClass", paramMap.get("menuClass")); + authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId")); + List> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO + .selectAuthMenuRelation(authCheckParamMap); int authMenuRelationlistMapSize = authMenuRelationlistMap.size(); - if(1==authMenuRelationlistMapSize){ - if(("Y").equals(authMenuRelationlistMap.get(0).get("insertUseYn"))) { - } - else { + if (1 == authMenuRelationlistMapSize) { + if (("Y").equals(authMenuRelationlistMap.get(0).get("insertUseYn"))) { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "등록 권한 정보가 없습니다."); } - } - else { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "권한 정보가 없습니다."); } } - if(true == check){ + if (true == check && files != null && files.size() >= 2) { // Before/After 파일 업로드 MultipartFile beforeFile = files.get(0); MultipartFile afterFile = files.get(1); - HashMap beforeFileMap = fileService.uploadFile(new HashMap() {{ - put("type", "WE"); - put("fileType", "P"); - put("fileName", beforeFile.getOriginalFilename()); - }}, beforeFile); - HashMap afterFileMap = fileService.uploadFile(new HashMap() {{ - put("type", "WE"); - put("fileType", "P"); - put("fileName", afterFile.getOriginalFilename()); - }}, afterFile); + HashMap beforeFileMap = fileService.uploadFile(new HashMap() { + { + put("type", "WE"); + put("fileType", "P"); + put("fileName", beforeFile.getOriginalFilename()); + } + }, beforeFile); + HashMap afterFileMap = fileService.uploadFile(new HashMap() { + { + put("type", "WE"); + put("fileType", "P"); + put("fileName", afterFile.getOriginalFilename()); + } + }, afterFile); paramMap.put("beforeFilePath", beforeFileMap.get("filePath")); paramMap.put("beforeFileName", beforeFileMap.get("fileName")); paramMap.put("beforeOriginalFileName", beforeFile.getOriginalFilename()); @@ -618,29 +607,28 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService { paramMap.put("afterOriginalFileName", afterFile.getOriginalFilename()); paramMap.put("title", title); paramMap.put("content", content); - + webPhotoDietSqlMapDAO.insertWebPhotoDietBeforeFile(paramMap); - log.debug("beforeId :"+paramMap.get("beforeId")); + log.debug("beforeId :" + paramMap.get("beforeId")); paramMap.put("beforeId", paramMap.get("beforeId")); webPhotoDietSqlMapDAO.insertWebPhotoDietAfterFile(paramMap); - log.debug("afterId :"+paramMap.get("afterId")); + log.debug("afterId :" + paramMap.get("afterId")); paramMap.put("afterId", paramMap.get("afterId")); } - if(true == check){ + if (true == check) { paramMap.put("tDate", tDate); paramMap.put("tId", tId); String muWebPhotoDietId = ("E").concat(String.valueOf(System.currentTimeMillis())); - paramMap.put("muWebPhotoDietId",muWebPhotoDietId); + paramMap.put("muWebPhotoDietId", muWebPhotoDietId); paramMap.put("muMemberId", paramMap.get("loginMemberId")); webPhotoDietSqlMapDAO.insertWebPhotoDiet(paramMap); - log.debug("muWebPhotoDietId :"+paramMap.get("id")); + log.debug("muWebPhotoDietId :" + paramMap.get("id")); paramMap.put("muWebPhotoDietId", paramMap.get("id")); map.put("muWebPhotoDietId", paramMap.get("muWebPhotoDietId")); map.put("msgCode", Constants.OK); map.put("msgDesc", "등록되었습니다."); } - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); throw e; } @@ -663,64 +651,63 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService { HashMap map = new HashMap(); - log.debug("loginMemberId :"+paramMap.get("loginMemberId")); + log.debug("loginMemberId :" + paramMap.get("loginMemberId")); - log.debug("menuClass :"+paramMap.get("menuClass")); + log.debug("menuClass :" + paramMap.get("menuClass")); - try{ - boolean check = true; + try { + boolean check = true; - String menuClass = String.valueOf(paramMap.get("menuClass")); + String menuClass = String.valueOf(paramMap.get("menuClass")); // 정렬 - if(true != ValidationCheckUtil.emptyCheck(menuClass)){ + if (true != ValidationCheckUtil.emptyCheck(menuClass)) { check = false; map.put("msgCode", Constants.FAIL); - map.put("msgDesc","메뉴 정보가 없습니다."); + map.put("msgDesc", "메뉴 정보가 없습니다."); } - if(true == check){ + if (true == check) { // 사용자 확인 List> userListMap = webMemberSqlMapDAO.checkMember(paramMap); int userListMapSize = userListMap.size(); - if(1==userListMapSize){ + if (1 == userListMapSize) { paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId")); - } - else { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "사용자 정보가 올바르지 않습니다."); } } - if(true == check){ + if (true == check) { // 권한 조회 HashMap authCheckParamMap = new HashMap(); - authCheckParamMap.put("menuClass",paramMap.get("menuClass")); - authCheckParamMap.put("muAuthId",paramMap.get("menuClassAuthId")); - List> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap); + authCheckParamMap.put("menuClass", paramMap.get("menuClass")); + authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId")); + List> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO + .selectAuthMenuRelation(authCheckParamMap); int authMenuRelationlistMapSize = authMenuRelationlistMap.size(); - if(1==authMenuRelationlistMapSize){ + if (1 == authMenuRelationlistMapSize) { map.put("msgCode", Constants.OK); - map.put("success","true"); + map.put("success", "true"); map.put("selectUseYn", authMenuRelationlistMap.get(0).get("selectUseYn")); map.put("insertUseYn", authMenuRelationlistMap.get(0).get("insertUseYn")); map.put("updateUseYn", authMenuRelationlistMap.get(0).get("updateUseYn")); map.put("deleteUseYn", authMenuRelationlistMap.get(0).get("deleteUseYn")); map.put("downloadUseYn", authMenuRelationlistMap.get(0).get("downloadUseYn")); - } - else { + } else { map.put("msgCode", Constants.FAIL); map.put("msgDesc", "권한 정보가 없습니다."); } } + paramMap.put("categoryDivCd", "05"); List> listMap = webPhotoDietSqlMapDAO.selectListPhotoCategory(paramMap); map.put("categorylist", listMap); - } - catch(Exception e){ + } catch (Exception e) { e.printStackTrace(); throw e; } @@ -736,129 +723,132 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService { * @throws Exception */ @Override - @Transactional(rollbackFor={Exception.class}, propagation = Propagation.REQUIRES_NEW) + @Transactional(rollbackFor = { Exception.class }, propagation = Propagation.REQUIRES_NEW) public HashMap updateWebPhotoDiet( - HashMap paramMap, List files) throws Exception{ + HashMap paramMap, List files) throws Exception { log.debug("WebPhotoDietServiceImpl updateWebPhotoDiet START"); HashMap map = new HashMap(); - log.debug("loginMemberId :"+paramMap.get("loginMemberId")); - log.debug("menuClass :"+paramMap.get("menuClass")); - log.debug("muWebPhotoDietId :"+paramMap.get("muWebPhotoDietId")); - log.debug("title :"+paramMap.get("title")); - log.debug("content :"+paramMap.get("content")); - log.debug("files :"+files); + log.debug("loginMemberId :" + paramMap.get("loginMemberId")); + log.debug("menuClass :" + paramMap.get("menuClass")); + log.debug("muWebPhotoDietId :" + paramMap.get("muWebPhotoDietId")); + log.debug("title :" + paramMap.get("title")); + log.debug("content :" + paramMap.get("content")); + log.debug("files :" + files); - try{ - boolean check = true; + try { + boolean check = true; - String muWebPhotoDietId = String.valueOf(paramMap.get("muWebPhotoDietId")); - String title = String.valueOf(paramMap.get("title")); - String content = String.valueOf(paramMap.get("content")); + String muWebPhotoDietId = String.valueOf(paramMap.get("muWebPhotoDietId")); + String title = String.valueOf(paramMap.get("title")); + String content = String.valueOf(paramMap.get("content")); - if(true != ValidationCheckUtil.emptyCheck(muWebPhotoDietId)){ + if (true != ValidationCheckUtil.emptyCheck(muWebPhotoDietId)) { check = false; map.put("msgCode", Constants.FAIL); - map.put("msgDesc","전후사진(다이어트)식별자 정보가 없습니다."); + map.put("msgDesc", "전후사진(다이어트)식별자 정보가 없습니다."); } - if(true != ValidationCheckUtil.emptyCheck(title)){ + if (true != ValidationCheckUtil.emptyCheck(title)) { check = false; map.put("msgCode", Constants.FAIL); - map.put("msgDesc","제목 정보가 없습니다."); + map.put("msgDesc", "제목 정보가 없습니다."); } - if(true != ValidationCheckUtil.emptyCheck(content)){ + if (true != ValidationCheckUtil.emptyCheck(content)) { check = false; map.put("msgCode", Constants.FAIL); - map.put("msgDesc","전후사진(다이어트) 상세 정보가 없습니다."); + map.put("msgDesc", "전후사진(다이어트) 상세 정보가 없습니다."); } - if(true == check){ + if (true == check) { // 사용자 확인 List> userListMap = webMemberSqlMapDAO.checkMember(paramMap); int userListMapSize = userListMap.size(); - if(1==userListMapSize){ + if (1 == userListMapSize) { paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId")); - } - else { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "사용자 정보가 올바르지 않습니다."); } } - if(true == check){ + if (true == check) { // 권한 조회 HashMap authCheckParamMap = new HashMap(); - authCheckParamMap.put("menuClass",paramMap.get("menuClass")); - authCheckParamMap.put("muAuthId",paramMap.get("menuClassAuthId")); - List> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap); + authCheckParamMap.put("menuClass", paramMap.get("menuClass")); + authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId")); + List> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO + .selectAuthMenuRelation(authCheckParamMap); int authMenuRelationlistMapSize = authMenuRelationlistMap.size(); - if(1==authMenuRelationlistMapSize){ + if (1 == authMenuRelationlistMapSize) { - if(("Y").equals(authMenuRelationlistMap.get(0).get("updateUseYn"))) { - } - else { + if (("Y").equals(authMenuRelationlistMap.get(0).get("updateUseYn"))) { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "수정 권한 정보가 없습니다."); } - } - else { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "권한 정보가 없습니다."); } } - if(true == check){ + if (true == check) { // Before/After 파일 업로드 분기 처리 MultipartFile beforeFile = files != null && files.size() > 0 ? files.get(0) : null; MultipartFile afterFile = files != null && files.size() > 1 ? files.get(1) : null; if (beforeFile != null && !beforeFile.isEmpty()) { - HashMap beforeFileMap = fileService.uploadFile(new HashMap() {{ - put("type", "WE"); - put("fileType", "P"); - put("fileName", beforeFile.getOriginalFilename()); - }}, beforeFile); + HashMap beforeFileMap = fileService.uploadFile(new HashMap() { + { + put("type", "WE"); + put("fileType", "P"); + put("fileName", beforeFile.getOriginalFilename()); + } + }, beforeFile); paramMap.put("beforeFilePath", beforeFileMap.get("filePath")); paramMap.put("beforeFileName", beforeFileMap.get("fileName")); paramMap.put("beforeOriginalFileName", beforeFile.getOriginalFilename()); webPhotoDietSqlMapDAO.insertWebPhotoDietBeforeFile(paramMap); - log.debug("beforeId :"+paramMap.get("beforeId")); + log.debug("beforeId :" + paramMap.get("beforeId")); paramMap.put("beforeId", paramMap.get("beforeId")); } if (afterFile != null && !afterFile.isEmpty()) { - HashMap afterFileMap = fileService.uploadFile(new HashMap() {{ - put("type", "WE"); - put("fileType", "P"); - put("fileName", afterFile.getOriginalFilename()); - }}, afterFile); + HashMap afterFileMap = fileService.uploadFile(new HashMap() { + { + put("type", "WE"); + put("fileType", "P"); + put("fileName", afterFile.getOriginalFilename()); + } + }, afterFile); paramMap.put("afterFilePath", afterFileMap.get("filePath")); paramMap.put("afterFileName", afterFileMap.get("fileName")); paramMap.put("afterOriginalFileName", afterFile.getOriginalFilename()); webPhotoDietSqlMapDAO.insertWebPhotoDietAfterFile(paramMap); - log.debug("afterId :"+paramMap.get("afterId")); + log.debug("afterId :" + paramMap.get("afterId")); paramMap.put("afterId", paramMap.get("afterId")); } paramMap.put("title", title); paramMap.put("content", content); } - if(true == check){ - paramMap.put("muWebPhotoDietId",muWebPhotoDietId); + if (true == check) + + { + paramMap.put("muWebPhotoDietId", muWebPhotoDietId); paramMap.put("muMemberId", paramMap.get("loginMemberId")); webPhotoDietSqlMapDAO.updateWebPhotoDiet(paramMap); map.put("muWebPhotoDietId", paramMap.get("muWebPhotoDietId")); map.put("msgCode", Constants.OK); map.put("msgDesc", "수정되었습니다."); } - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); throw e; } @@ -874,78 +864,76 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService { * @throws Exception */ @Override - @Transactional(rollbackFor={Exception.class}, propagation = Propagation.REQUIRES_NEW) + @Transactional(rollbackFor = { Exception.class }, propagation = Propagation.REQUIRES_NEW) public HashMap deleteWebPhotoDiet( - HashMap paramMap) throws Exception{ + HashMap paramMap) throws Exception { log.debug("WebPhotoDietServiceImpl deleteWebPhotoDiet START"); HashMap map = new HashMap(); - log.debug("loginMemberId :"+paramMap.get("loginMemberId")); + log.debug("loginMemberId :" + paramMap.get("loginMemberId")); - log.debug("menuClass :"+paramMap.get("menuClass")); + log.debug("menuClass :" + paramMap.get("menuClass")); // ,로 구분 - log.debug("selectId :"+paramMap.get("selectId")); - log.debug("categoryno :"+paramMap.get("categoryno")); // categoryno 로그 추가 + log.debug("selectId :" + paramMap.get("selectId")); + log.debug("categoryno :" + paramMap.get("categoryno")); // categoryno 로그 추가 - try{ - boolean check = true; + try { + boolean check = true; - if(null== paramMap.get("selectId") || ("").equals(paramMap.get("selectId"))){ + if (null == paramMap.get("selectId") || ("").equals(paramMap.get("selectId"))) { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "삭제 대상이 없습니다."); } - if(true == check){ + if (true == check) { // 사용자 확인 List> userListMap = webMemberSqlMapDAO.checkMember(paramMap); int userListMapSize = userListMap.size(); - if(1==userListMapSize){ + if (1 == userListMapSize) { paramMap.put("menuClassAuthId", userListMap.get(0).get("muAuthId")); - } - else { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "사용자 정보가 올바르지 않습니다."); } } - if(true == check){ + if (true == check) { // 권한 조회 HashMap authCheckParamMap = new HashMap(); - authCheckParamMap.put("menuClass",paramMap.get("menuClass")); - authCheckParamMap.put("muAuthId",paramMap.get("menuClassAuthId")); - List> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO.selectAuthMenuRelation(authCheckParamMap); + authCheckParamMap.put("menuClass", paramMap.get("menuClass")); + authCheckParamMap.put("muAuthId", paramMap.get("menuClassAuthId")); + List> authMenuRelationlistMap = webAuthMenuRelationSqlMapDAO + .selectAuthMenuRelation(authCheckParamMap); int authMenuRelationlistMapSize = authMenuRelationlistMap.size(); - if(1==authMenuRelationlistMapSize){ + if (1 == authMenuRelationlistMapSize) { - if(("Y").equals(authMenuRelationlistMap.get(0).get("deleteUseYn"))) { + if (("Y").equals(authMenuRelationlistMap.get(0).get("deleteUseYn"))) { - } - else { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "삭제 권한 정보가 없습니다."); } - } - else { + } else { check = false; map.put("msgCode", Constants.FAIL); map.put("msgDesc", "권한 정보가 없습니다."); } } - if(true == check){ + if (true == check) { String selectId = String.valueOf(paramMap.get("selectId")); String categoryno = String.valueOf(paramMap.get("categoryno")); // categoryno 값 받기 log.debug("deleteWebPhotoDiet selectId: " + selectId + ", categoryno: " + categoryno); // categoryno를 활용하려면 아래에서 사용 StringTokenizer selectData = new StringTokenizer(selectId, ","); StringTokenizer categoryData = new StringTokenizer(categoryno != null ? categoryno : "", ","); - while(selectData.hasMoreTokens()){//토큰이 계속 있을때 까지 + while (selectData.hasMoreTokens()) {// 토큰이 계속 있을때 까지 String muWebPhotoDietId = selectData.nextToken(); String catNo = categoryData.hasMoreTokens() ? categoryData.nextToken() : null; @@ -961,8 +949,7 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService { map.put("msgCode", Constants.OK); map.put("msgDesc", "삭제 되었습니다."); } - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); throw e; } @@ -970,4 +957,32 @@ public class WebPhotoDietServiceImpl implements WebPhotoDietService { log.debug("WebPhotoDietServiceImpl deleteWebPhotoDiet END"); return map; } -} + + /** + * 카테고리 목록 조회 + * + * @param paramMap + * @return + * @throws Exception + */ + @Override + public HashMap getCategoryList(HashMap paramMap) throws Exception { + log.debug("WebPhotoDietServiceImpl getCategoryList START"); + + HashMap map = new HashMap(); + + try { + List> listMap = webPhotoDietSqlMapDAO.selectListPhotoCategory(paramMap); + + map.put("msgCode", Constants.OK); + map.put("success", "true"); + map.put("rows", listMap); + } catch (Exception e) { + e.printStackTrace(); + map.put("msgCode", Constants.FAIL); + map.put("msgDesc", "카테고리 목록 조회 중 오류가 발생하였습니다."); + } + log.debug("WebPhotoDietServiceImpl getCategoryList END"); + return map; + } +} diff --git a/src/main/resources/mappers/WebPhotoDietSqlMap.xml b/src/main/resources/mappers/WebPhotoDietSqlMap.xml index fed757c..cf3dd07 100644 --- a/src/main/resources/mappers/WebPhotoDietSqlMap.xml +++ b/src/main/resources/mappers/WebPhotoDietSqlMap.xml @@ -127,7 +127,7 @@ ,POST_NO ,TITLE ,CONTENT - ,BEFORE_PHOTO_ATTACHFILE_ID + ,BEFORE_PHOTO_ATTACHFILE_ID ,AFTER_PHOTO_ATTACHFILE_ID ,HASHTAG ,USE_YN @@ -245,7 +245,7 @@ ,HC.CATEGORY_NM AS "categoryNm" FROM HP_CATEGORY AS HC WHERE HC.USE_YN = 'Y' - AND HC.CATEGORY_DIV_CD = '05' + AND HC.CATEGORY_DIV_CD = #{categoryDivCd} ORDER BY HC.CATEGORY_NO ASC \ No newline at end of file diff --git a/src/main/resources/static/css/web/webPhotoDietSelectList.css b/src/main/resources/static/css/web/webPhotoDietSelectList.css index 3d31d5d..ee9b4a9 100644 --- a/src/main/resources/static/css/web/webPhotoDietSelectList.css +++ b/src/main/resources/static/css/web/webPhotoDietSelectList.css @@ -1,107 +1,584 @@ -.project_wrap {width:100%; min-width:1080px; margin:0 auto;} +.project_wrap { + width: 100%; + min-width: 1080px; + margin: 0 auto; +} /*오른쪽영역*/ -.project_wrap .content_section {margin-top:50px; width:100%; min-width:1080px; display:table;} -.project_wrap .content_section .hospital_wrap {width: calc(100% - 72px); min-width:calc(1080px - 72px); height:calc(100vh - 50px); float:left; position:relative;} +.project_wrap .content_section { + margin-top: 50px; + width: 100%; + min-width: 1080px; + display: table; +} + +.project_wrap .content_section .hospital_wrap { + width: calc(100% - 72px); + min-width: calc(1080px - 72px); + height: calc(100vh - 50px); + float: left; + position: relative; +} /* 왼쪽_메뉴 영역 */ -.project_wrap .content_section .hospital_wrap .left_box {position:absolute; width:240px; height:calc(100vh - 50px); overflow:auto; padding:10px 20px;} -.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list {width:100%;} -.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list .title_menu {width:100%; height:auto; margin:20px 0 10px 0; padding:0; font-size:14px; font-weight:700;} -.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list .title_menu.first {margin-top:0;} -.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list a {width:100%; height:100%; display:block; margin-bottom:8px; padding:8px; font-size:14px; text-align:left; border-radius:5px;} -.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list a.on {background:#3985EA; border:none;} -.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list li {width:100%; height:36px; margin-bottom:8px;} -.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list li a.on {color:#fff;} +.project_wrap .content_section .hospital_wrap .left_box { + position: absolute; + width: 240px; + height: calc(100vh - 50px); + overflow: auto; + padding: 10px 20px; +} + +.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list { + width: 100%; +} + +.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list .title_menu { + width: 100%; + height: auto; + margin: 20px 0 10px 0; + padding: 0; + font-size: 14px; + font-weight: 700; +} + +.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list .title_menu.first { + margin-top: 0; +} + +.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list a { + width: 100%; + height: 100%; + display: block; + margin-bottom: 8px; + padding: 8px; + font-size: 14px; + text-align: left; + border-radius: 5px; +} + +.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list a.on { + background: #3985EA; + border: none; +} + +.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list li { + width: 100%; + height: 36px; + margin-bottom: 8px; +} + +.project_wrap .content_section .hospital_wrap .left_box .sub_menu_list li a.on { + color: #fff; +} /* 센터쪽 */ -.project_wrap .content_section .hospital_wrap .center_box {width:calc(100% - 240px); height:calc(100vh - 50px); position:absolute; left:240px; padding:10px 10px 10px 0;} -.project_wrap .content_section .hospital_wrap .center_box .page_title {min-width:90px; padding-left:10px; font-size:18px; font-weight:700; line-height:50px; float:left;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box {display:table; width:100%; padding:20px 0;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box {width:140px; height:36px; margin-left:10px; border:1px solid #E9ECF0; border-radius:5px; background:url(/image/web/select_arrow.svg) no-repeat 95% 55%/20px auto #fff;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box.first { width:100px; margin-left:0; float:left; } -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .slash {width:6px; font-size:14px; font-weight:400; color:#000; line-height:36px; margin:0 12px; display:block; float:left;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list_box { margin-left:10px; } -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box.active {z-index:10;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .label {width:100%; height:100%; padding:0 10px; outline:none; font-size:14px; font-weight:400; text-align:left; color: #494E53; cursor:pointer; background:none;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .select_option_list {min-width:100%; border-radius:5px; transition:.4s ease-in; border:Solid 1px #E9ECF0; padding:10px; } -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .select_option_list .option_list_item {width:100%; line-height:30px; transition:.1s; position:relative; display:table; font-size:14px; color:#494E53;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .select_option_list .option_list_item label {width:100%; line-height:30px; margin-bottom:0px; clear:both; font-weight:400;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box {border-radius:8px; float:left; position:relative;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box {position:relative; width:140px; height:36px; float:left; margin-left:10px;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box.last {margin-left:0;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box img {position:absolute; top:50%; transform:translateY(-50%); left:10px; z-index:1; width:22px;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box .date_picker {line-height:34px; display:block; margin-right:20px; width:100%; font-size:14px; padding:0 12px; padding-left:40px; outline:none; border:1px solid #E9ECF0; border-radius:5px;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box input[type="date"]::-webkit-calendar-picker-indicator {display:none;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box .date_picker {-webkit-appearance:none; -moz-appearance:none; appearance:none; position:absolute; cursor:pointer;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .slash {color:#000; font-size:14px; font-weight:400; line-height:36px; margin:0 5px; width:6px; display:block; float:left;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list {float:left; position:relative; margin-left:10px;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box {width:150px; float:left; height:36px; position:relative;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box img {position:absolute; top:50%; transform:translateY(-50%); left:5px; z-index:1;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box input {width:100%; height:36px; border:1px solid #E9ECF0; border-radius:5px; background:none; position:absolute; left:0; padding:0 10px 0 30px; font-size:14px; background:#fff;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box input::placeholder {color:#B5BDC4;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box .search_list {position:absolute; top:40px; left:0; width:150px; background:#fff; color:#fff; border-radius:5px; transition:.4s ease-in; z-index:1; border:solid 1px #E9ECF0; display:none; margin:0; padding:10px;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_btn {background:#3985EA; border-radius:5px; color:#fff; margin-left:5px;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box {float:right;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box .treatmentdiet_btn {background:#3985EA; color:#fff; border-radius:5px; float:left;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box .treatmentdiet_btn img {position:relative; top:-2px; width:20px; margin-right:5px;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box .delete_btn {background:#FF2222; color:#fff; border-radius:5px; margin-left:10px;} -.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box .delete_btn img {position:relative; top:-2px; width:20px; margin-right:5px;} +.project_wrap .content_section .hospital_wrap .center_box { + width: calc(100% - 240px); + height: calc(100vh - 50px); + position: absolute; + left: 240px; + padding: 10px 10px 10px 0; +} + +.project_wrap .content_section .hospital_wrap .center_box .page_title { + min-width: 90px; + padding-left: 10px; + font-size: 18px; + font-weight: 700; + line-height: 50px; + float: left; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box { + display: table; + width: 100%; + padding: 20px 0; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box { + width: 140px; + height: 36px; + margin-left: 10px; + border: 1px solid #E9ECF0; + border-radius: 5px; + background: url(/image/web/select_arrow.svg) no-repeat 95% 55%/20px auto #fff; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box.first { + width: 100px; + margin-left: 0; + float: left; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .slash { + width: 6px; + font-size: 14px; + font-weight: 400; + color: #000; + line-height: 36px; + margin: 0 12px; + display: block; + float: left; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list_box { + margin-left: 10px; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box.active { + z-index: 10; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .label { + width: 100%; + height: 100%; + padding: 0 10px; + outline: none; + font-size: 14px; + font-weight: 400; + text-align: left; + color: #494E53; + cursor: pointer; + background: none; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .select_option_list { + min-width: 100%; + border-radius: 5px; + transition: .4s ease-in; + border: Solid 1px #E9ECF0; + padding: 10px; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .select_option_list .option_list_item { + width: 100%; + line-height: 30px; + transition: .1s; + position: relative; + display: table; + font-size: 14px; + color: #494E53; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .select_option_list .option_list_item label { + width: 100%; + line-height: 30px; + margin-bottom: 0px; + clear: both; + font-weight: 400; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box { + border-radius: 8px; + float: left; + position: relative; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box { + position: relative; + width: 140px; + height: 36px; + float: left; + margin-left: 10px; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box.last { + margin-left: 0; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box img { + position: absolute; + top: 50%; + transform: translateY(-50%); + left: 10px; + z-index: 1; + width: 22px; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box .date_picker { + line-height: 34px; + display: block; + margin-right: 20px; + width: 100%; + font-size: 14px; + padding: 0 12px; + padding-left: 40px; + outline: none; + border: 1px solid #E9ECF0; + border-radius: 5px; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box input[type="date"]::-webkit-calendar-picker-indicator { + display: none; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box .date_picker { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + position: absolute; + cursor: pointer; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .slash { + color: #000; + font-size: 14px; + font-weight: 400; + line-height: 36px; + margin: 0 5px; + width: 6px; + display: block; + float: left; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list { + float: left; + position: relative; + margin-left: 10px; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box { + width: 150px; + float: left; + height: 36px; + position: relative; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box img { + position: absolute; + top: 50%; + transform: translateY(-50%); + left: 5px; + z-index: 1; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box input { + width: 100%; + height: 36px; + border: 1px solid #E9ECF0; + border-radius: 5px; + background: none; + position: absolute; + left: 0; + padding: 0 10px 0 30px; + font-size: 14px; + background: #fff; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box input::placeholder { + color: #B5BDC4; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box .search_list { + position: absolute; + top: 40px; + left: 0; + width: 150px; + background: #fff; + color: #fff; + border-radius: 5px; + transition: .4s ease-in; + z-index: 1; + border: solid 1px #E9ECF0; + display: none; + margin: 0; + padding: 10px; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_btn { + background: #3985EA; + border-radius: 5px; + color: #fff; + margin-left: 5px; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box { + float: right; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box .treatmentdiet_btn { + background: #3985EA; + color: #fff; + border-radius: 5px; + float: left; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box .treatmentdiet_btn img { + position: relative; + top: -2px; + width: 20px; + margin-right: 5px; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box .delete_btn { + background: #FF2222; + color: #fff; + border-radius: 5px; + margin-left: 10px; +} + +.project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .right_btn_box .delete_btn img { + position: relative; + top: -2px; + width: 20px; + margin-right: 5px; +} /* table_box */ -.project_wrap .content_section .hospital_wrap .center_box .table_box {width:100%; height:calc(100% - 180px); overflow:auto; background:#fff; border:solid 1px #E9ECF0; border-radius:5px;} +.project_wrap .content_section .hospital_wrap .center_box .table_box { + width: 100%; + height: calc(100% - 180px); + overflow: auto; + background: #fff; + border: solid 1px #E9ECF0; + border-radius: 5px; +} /* 페이지게이션 */ -.project_wrap .content_section .hospital_wrap .center_box .page_box {position:absolute; bottom:20px; width:100%; height:24px;} -.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation {height:24px;} -.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination {margin:0 auto; display:table;} -.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li {display:inline-block; padding:0} -.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:first-child a, .project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a {position:relative; width:24px; height:24px; background:none;} -.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:first-child a:hover, .project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a:hover {background:none;} -.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:first-child a img {position:absolute; top:50%; left:50%; transform:translate3d(-50%, -50%, 0); width:10px;} -.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a img {position:absolute; top:50%; left:50%; transform:translate3d(-50%, -50%, 0) rotate(180deg); width:10px;} -.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li a {width:24px; height:24px; padding:0; border:none; text-align:center; line-height:22px; font-size:14px; font-weight:500; background:#FFF; font-size:14px;} -.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li a:hover, .project_wrap .content_section .hospital_wrap .center_box .right_note .page_box .navigation .pagination li a:focus {background:#3985EA; color:#fff; font-weight:700;} -.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li.active a {background:#3985EA; color:#fff;} +.project_wrap .content_section .hospital_wrap .center_box .page_box { + position: absolute; + bottom: 20px; + width: 100%; + height: 24px; +} + +.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation { + height: 24px; +} + +.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination { + margin: 0 auto; + display: table; +} + +.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li { + display: inline-block; + padding: 0 +} + +.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:first-child a, +.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a { + position: relative; + width: 24px; + height: 24px; + background: none; +} + +.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:first-child a:hover, +.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a:hover { + background: none; +} + +.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:first-child a img { + position: absolute; + top: 50%; + left: 50%; + transform: translate3d(-50%, -50%, 0); + width: 10px; +} + +.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a img { + position: absolute; + top: 50%; + left: 50%; + transform: translate3d(-50%, -50%, 0) rotate(180deg); + width: 10px; +} + +.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li a { + width: 24px; + height: 24px; + padding: 0; + border: none; + text-align: center; + line-height: 22px; + font-size: 14px; + font-weight: 500; + background: #FFF; + font-size: 14px; +} + +.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li a:hover, +.project_wrap .content_section .hospital_wrap .center_box .right_note .page_box .navigation .pagination li a:focus { + background: #3985EA; + color: #fff; + font-weight: 700; +} + +.project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li.active a { + background: #3985EA; + color: #fff; +} + +/* Style for select boxes in the search area */ +.search_box select { + width: 100%; + height: 36px; + padding: 0 10px; + border: 1px solid #E9ECF0; + border-radius: 5px; + background: #fff url('/image/web/select_arrow.svg') no-repeat right 10px center; + background-size: 12px; + /* Adjust as needed */ + appearance: none; + font-size: 14px; + color: #333; + transition: border-color 0.2s; +} + +.search_box select:focus, +.search_box select:hover { + border-color: #3985EA; + outline: none; +} /*반응형 View*/ @media only screen and (max-width:1500px) { - .project_wrap .content_section .hospital_wrap .left_box { width:160px; padding:10px 15px; } - .project_wrap .content_section .hospital_wrap .center_box { width:calc(100% - 160px); left:160px; } + .project_wrap .content_section .hospital_wrap .left_box { + width: 160px; + padding: 10px 15px; + } + + .project_wrap .content_section .hospital_wrap .center_box { + width: calc(100% - 160px); + left: 160px; + } } @media only screen and (max-width:1280px) { - .project_wrap .content_section .hospital_wrap { width:calc(100% - 60px); } - .project_wrap .content_section .hospital_wrap .left_box .sub_menu_list .title_menu { font-size:12px; } - .project_wrap .content_section .hospital_wrap .left_box .sub_menu_list li { height:32px; margin-bottom:5px; } - .project_wrap .content_section .hospital_wrap .left_box .sub_menu_list li a { font-size:12px; } - .project_wrap .content_section .hospital_wrap .center_box .page_title { min-width:80px; height:40px; font-size:16px; line-height:40px; } - .project_wrap .content_section .hospital_wrap .center_box .total { font-size:12px; line-height:40px; } - .project_wrap .content_section .hospital_wrap .center_box .filter_box { padding:15px 0; } - .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box { width:120px; height:32px; background-size:18px; } - .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .label { padding:0 10px; font-size:12px; } - .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .select_option_list .option_list_item { font-size:12px; } - .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box { width:120px; height:32px; } - .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box img { width:20px; } - .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box .date_picker { height:32px; padding-left:35px; font-size:12px; line-height:32px; } - .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .slash { line-height:32px; } - .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box { width:120px; height:32px; } - .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box img { width:22px; } - .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box input { height:32px; padding-left:35px; font-size:12px; } - .project_wrap .content_section .hospital_wrap .center_box .filter_box .right_btn_box .download_btn { margin-left:5px; padding-left:10px; } - .project_wrap .content_section .hospital_wrap .center_box .filter_box .right_btn_box .download_btn p { display:none; } - .project_wrap .content_section .hospital_wrap .center_box .filter_box .right_btn_box .download_btn img { width:12px; margin-top:-3px; position:static; transform:none; } - .project_wrap .content_section .hospital_wrap .center_box .page_box { height:23px; } - .project_wrap .content_section .hospital_wrap .center_box .page_box .navigation { height:23px; } - .project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li a { width:23px; height:23px; font-size:12px; } + .project_wrap .content_section .hospital_wrap { + width: calc(100% - 60px); + } + + .project_wrap .content_section .hospital_wrap .left_box .sub_menu_list .title_menu { + font-size: 12px; + } + + .project_wrap .content_section .hospital_wrap .left_box .sub_menu_list li { + height: 32px; + margin-bottom: 5px; + } + + .project_wrap .content_section .hospital_wrap .left_box .sub_menu_list li a { + font-size: 12px; + } + + .project_wrap .content_section .hospital_wrap .center_box .page_title { + min-width: 80px; + height: 40px; + font-size: 16px; + line-height: 40px; + } + + .project_wrap .content_section .hospital_wrap .center_box .total { + font-size: 12px; + line-height: 40px; + } + + .project_wrap .content_section .hospital_wrap .center_box .filter_box { + padding: 15px 0; + } + + .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box { + width: 120px; + height: 32px; + background-size: 18px; + } + + .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .label { + padding: 0 10px; + font-size: 12px; + } + + .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .select_box .select_option_list .option_list_item { + font-size: 12px; + } + + .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box { + width: 120px; + height: 32px; + } + + .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box img { + width: 20px; + } + + .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .date_box .date_picker { + height: 32px; + padding-left: 35px; + font-size: 12px; + line-height: 32px; + } + + .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .calendar_box .slash { + line-height: 32px; + } + + .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box { + width: 120px; + height: 32px; + } + + .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box img { + width: 22px; + } + + .project_wrap .content_section .hospital_wrap .center_box .filter_box .form_box .search_list .search_box input { + height: 32px; + padding-left: 35px; + font-size: 12px; + } + + .project_wrap .content_section .hospital_wrap .center_box .filter_box .right_btn_box .download_btn { + margin-left: 5px; + padding-left: 10px; + } + + .project_wrap .content_section .hospital_wrap .center_box .filter_box .right_btn_box .download_btn p { + display: none; + } + + .project_wrap .content_section .hospital_wrap .center_box .filter_box .right_btn_box .download_btn img { + width: 12px; + margin-top: -3px; + position: static; + transform: none; + } + + .project_wrap .content_section .hospital_wrap .center_box .page_box { + height: 23px; + } + + .project_wrap .content_section .hospital_wrap .center_box .page_box .navigation { + height: 23px; + } + + .project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li a { + width: 23px; + height: 23px; + font-size: 12px; + } + .project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:first-child a, - .project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a { width:23px; height:23px; } + .project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a { + width: 23px; + height: 23px; + } + .project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:first-child a img, - .project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a img { width:9px; } - .project_wrap .content_section .hospital_wrap .center_box .table_box { height:calc(100% - 155px); } + .project_wrap .content_section .hospital_wrap .center_box .page_box .navigation .pagination li:last-child a img { + width: 9px; + } + + .project_wrap .content_section .hospital_wrap .center_box .table_box { + height: calc(100% - 155px); + } } @media only screen and (max-width:1080px) { - .project_wrap .content_section .hospital_wrap { width:calc(100% - 50px); } + .project_wrap .content_section .hospital_wrap { + width: calc(100% - 50px); + } } \ No newline at end of file diff --git a/src/main/resources/static/js/web/webphotodiet/webPhotoDietInsert.js b/src/main/resources/static/js/web/webphotodiet/webPhotoDietInsert.js index b4012f3..5be0c02 100644 --- a/src/main/resources/static/js/web/webphotodiet/webPhotoDietInsert.js +++ b/src/main/resources/static/js/web/webphotodiet/webPhotoDietInsert.js @@ -1,47 +1,47 @@ /**************************************************************************** * 전후사진 등록 ****************************************************************************/ -function fn_insertWebPhoto(){ - if("Y"!=insertUseYn){ +function fn_insertWebPhoto() { + if ("Y" != insertUseYn) { modalEvent.warning("", "등록 권한이 없습니다."); return false; } - let title = $("#title").val(); - let content = $("#content").val(); - let hashtag = $("#hashtag").val(); - let categoryno = $("select[name=categorylist]").val(); - + let title = $("#title").val(); + let content = $("#content").val(); + let hashtag = $("#hashtag").val(); + let categoryno = $("select[name=categorylist]").val(); + let beforeFile = $("#before_file")[0].files[0]; let afterFile = $("#after_file")[0].files[0]; - if(true != fn_emptyCheck(categoryno)) { + if (true != fn_emptyCheck(categoryno)) { modalEvent.warning("등록", "카테고리를 입력하세요."); return; } - if(true != fn_emptyCheck(title)) { + if (true != fn_emptyCheck(title)) { modalEvent.warning("등록", "제목을 입력하세요."); return; } - if(true != fn_emptyCheck(content)) { + if (true != fn_emptyCheck(content)) { modalEvent.warning("등록", "내용을 입력하세요."); return; } - if(true != fn_emptyCheck(hashtag)) { + if (true != fn_emptyCheck(hashtag)) { modalEvent.warning("등록", "해시태그를 입력하세요."); return; } - - if(true != fn_emptyCheck(beforeFile)) { + + if (true != fn_emptyCheck(beforeFile)) { modalEvent.warning("등록", "Before 사진을 첨부하세요."); return; } - if(true != fn_emptyCheck(afterFile)) { + if (true != fn_emptyCheck(afterFile)) { modalEvent.warning("등록", "After 사진을 첨부하세요."); return; } - modalEvent.info("등록", "전후사진(다이어트) 정보를 등록하시겠습니까?", function(){ + modalEvent.info("등록", "전후사진(다이어트) 정보를 등록하시겠습니까?", function () { let formData = new FormData(); formData.append("menuClass", menuClass); formData.append("categoryno", categoryno); @@ -59,152 +59,91 @@ function fn_insertWebPhoto(){ contentType: false, type: 'POST', async: true, - success: function(data){ - if('0'==data.msgCode){ - modalEvent.success("등록 성공", data.msgDesc, function(){ + success: function (data) { + if ('0' == data.msgCode) { + modalEvent.success("등록 성공", data.msgDesc, function () { fn_selectListWebPhotoDietIntro(); }); } - else{ + else { modalEvent.danger("등록 오류", data.msgDesc); } }, - error : function(xhr, status, error) { + error: function (xhr, status, error) { modalEvent.danger("등록 오류", "등록 중 오류가 발생하였습니다. 잠시후 다시시도하십시오."); }, - beforeSend:function(){ + beforeSend: function () { }, - complete:function(){ + complete: function () { } }); }); } -/**************************************************************************** - * html 에디터 이미지 업로드시 - ****************************************************************************/ -function uploadSummernoteImageFileNoticeInsert(files, editor){ - Object.values(files).forEach(file => { - let formData = new FormData(); - formData.append('menuClass', menuClass); - formData.append('file', file); - $.ajax({ - url: encodeURI('/webphotodiet/uploadFile.do'), - data: formData, - dataType: "json", - processData: false, - contentType: false, - type: 'POST', - async: true, - success: function (data) { - if ('0' == data.msgCode) { - $(editor).summernote('insertImage', data.rows.filePath, function ($image) { - }); - } - }, - error: function (xhr, status, error) { - modalEvent.danger('오류', '이미지 업로드 중 오류가 발생했습니다.'); - }, - beforeSend: function () { - // 로딩열기 - $(".loading-image-layer").show(); - }, - complete: function () { - // 로딩닫기 - $(".loading-image-layer").hide(); - } - }); - }) -} -/**************************************************************************** - * 배너 이미지 미리보기 - ****************************************************************************/ -function fn_filePreview(){ - const file = $("#file")[0].files[0]; - if(file){ - $('.img_box').html(''); - const reader = new FileReader(); - - reader.onload = function (e) { - // 이미지 요소를 생성하고 미리보기 추가 - const img = document.createElement('img'); - img.src = e.target.result; - img.style.width = '600px'; // 원하는 크기로 조정 - img.style.height = '350px'; - $('.img_box').append(img); - }; - - // 파일을 읽기 시작 - reader.readAsDataURL(file); - } -} -/**************************************************************************** - * 배너 이미지 삭제 - ****************************************************************************/ -function fn_removePreview(){ - $("#file").val(''); - $('.img_box').html(''); -} /**************************************************************************** * 배너 이미지 미리보기 ****************************************************************************/ -function fn_beforeFilePreview(){ - const file = $("#before_file")[0].files[0]; - if(file){ - $('#before_img_box').html(''); - const reader = new FileReader(); +function fn_beforeFilePreview() { + const file = $("#before_file")[0].files[0]; + if (file) { + $('#before_img_box').html(''); + const reader = new FileReader(); - reader.onload = function (e) { - // 이미지 요소를 생성하고 미리보기 추가 - const img = document.createElement('img'); - img.src = e.target.result; - img.style.width = '600px'; // 원하는 크기로 조정 - img.style.height = '350px'; - $('#before_img_box').append(img); - }; + reader.onload = function (e) { + // 이미지 요소를 생성하고 미리보기 추가 + const img = document.createElement('img'); + img.src = e.target.result; + img.style.width = '100%'; + img.style.height = '100%'; + img.style.objectFit = 'cover'; + img.style.display = 'block'; + $('#before_img_box').append(img); + }; - // 파일을 읽기 시작 - reader.readAsDataURL(file); - } + // 파일을 읽기 시작 + reader.readAsDataURL(file); + } } /**************************************************************************** * 배너 이미지 삭제 ****************************************************************************/ -function fn_removeBeforePreview(){ +function fn_removeBeforePreview() { $("#before_file").val(''); $('#before_img_box').html(''); } /**************************************************************************** * 배너 이미지 미리보기 ****************************************************************************/ -function fn_afterFilePreview(){ - const file = $("#after_file")[0].files[0]; - if(file){ - $('#after_img_box').html(''); - const reader = new FileReader(); +function fn_afterFilePreview() { + const file = $("#after_file")[0].files[0]; + if (file) { + $('#after_img_box').html(''); + const reader = new FileReader(); - reader.onload = function (e) { - // 이미지 요소를 생성하고 미리보기 추가 - const img = document.createElement('img'); - img.src = e.target.result; - img.style.width = '600px'; // 원하는 크기로 조정 - img.style.height = '350px'; - $('#after_img_box').append(img); - }; + reader.onload = function (e) { + // 이미지 요소를 생성하고 미리보기 추가 + const img = document.createElement('img'); + img.src = e.target.result; + img.style.width = '100%'; + img.style.height = '100%'; + img.style.objectFit = 'cover'; + img.style.display = 'block'; + $('#after_img_box').append(img); + }; - // 파일을 읽기 시작 - reader.readAsDataURL(file); - } + // 파일을 읽기 시작 + reader.readAsDataURL(file); + } } /**************************************************************************** * 배너 이미지 삭제 ****************************************************************************/ -function fn_removeAfterPreview(){ +function fn_removeAfterPreview() { $("#after_file").val(''); $('#after_img_box').html(''); } @@ -212,11 +151,11 @@ function fn_removeAfterPreview(){ /**************************************************************************** * 리스트 화면으로 이동. ****************************************************************************/ -function fn_selectListWebPhotoDietIntro(){ - if("Y"==selectUseYn){ - let pagingParam = "?menuClass="+menuClass; - fn_leftFormAction("/webphotodiet/selectListWebPhotoDietIntro.do"+pagingParam); - }else{ +function fn_selectListWebPhotoDietIntro() { + if ("Y" == selectUseYn) { + let pagingParam = "?menuClass=" + menuClass; + fn_leftFormAction("/webphotodiet/selectListWebPhotoDietIntro.do" + pagingParam); + } else { modalEvent.warning("", "조회 권한이 없습니다."); return false; } @@ -225,48 +164,33 @@ function fn_selectListWebPhotoDietIntro(){ /**************************************************************************** * 페이지 init ****************************************************************************/ -function fn_pageInit(){ +function fn_pageInit() { // 날짜 datepicker fn_searchDatePicker("#eventStartDate", "#eventEndDate"); - - $('#summernote').summernote({ - height: 540, - callbacks: { //여기 부분이 이미지를 첨부하는 부분 - onImageUpload : function(files) { - uploadSummernoteImageFileNoticeInsert(files, this); - } - }, - }); } /**************************************************************************** * 페이지 event ****************************************************************************/ -function fn_pagePhoto(){ +function fn_pagePhoto() { // 검색 input - $('.btnCancle').on("click", function(){ + $('.btnCancle').on("click", function () { fn_selectListWebPhotoDietIntro(); }); - $('.btnSave').on("click", function(){ + $('.btnSave').on("click", function () { fn_insertWebPhoto(); }); - $('#delete_btn').on("click", function(){ - fn_removePreview(); - }); - $('#file').on('change', function(e) { - fn_filePreview(); - }) - $('#before_delete_btn').on("click", function(){ + $('#before_delete_btn').on("click", function () { fn_removeBeforePreview(); }); - $('#before_file').on('change', function(e) { + $('#before_file').on('change', function (e) { fn_beforeFilePreview(); }); - $('#after_delete_btn').on("click", function(){ + $('#after_delete_btn').on("click", function () { fn_removeAfterPreview(); }); - $('#after_file').on('change', function(e) { + $('#after_file').on('change', function (e) { fn_afterFilePreview(); }); } @@ -274,34 +198,34 @@ function fn_pagePhoto(){ /**************************************************************************** * 시술 목록 팝업 ****************************************************************************/ -function listOpen(){ +function listOpen() { let reqParam = {}; photoSelectModal.popup(function (obj, reqParam) { - const childDivCount = $("#photolist > div").length; - if($("#" + obj.photoProcedureId).length > 0){ - modalEvent.warning("", "이미 시술정보가 있습니다."); - return; - } - var htmlstring = `
- - - - + const childDivCount = $("#photolist > div").length; + if ($("#" + obj.photoProcedureId).length > 0) { + modalEvent.warning("", "이미 시술정보가 있습니다."); + return; + } + var htmlstring = `
+ + + +
`; - $('#photolist').append(htmlstring); + $('#photolist').append(htmlstring); }, reqParam); } -function fn_removeRow(){ -  $('input:checkbox[name="photo"]').each(function() {      - if(this.checked){//checked 처리된 항목의 값            - $(this).parent().remove();    - }  - }); - +function fn_removeRow() { + $('input:checkbox[name="photo"]').each(function () { + if (this.checked) {//checked 처리된 항목의 값            + $(this).parent().remove(); + } + }); + } -$(function(){ +$(function () { // 페이지 init fn_pageInit(); diff --git a/src/main/resources/static/js/web/webphotodiet/webPhotoDietSelectList.js b/src/main/resources/static/js/web/webphotodiet/webPhotoDietSelectList.js index fb3cc67..cd6a457 100644 --- a/src/main/resources/static/js/web/webphotodiet/webPhotoDietSelectList.js +++ b/src/main/resources/static/js/web/webphotodiet/webPhotoDietSelectList.js @@ -1,6 +1,6 @@ /* 페이징 관련 변수 */ -let webPhotoDietTotalCount = 0; -let webPhotoDietTotalPages = 0; +let webPhotoDietTotalCount = 0; +let webPhotoDietTotalPages = 0; /*aggird*/ let webPhotoDietAgGridData = []; @@ -8,199 +8,18 @@ let webPhotoDietAgGridData = []; let webPhotoDietSelectId = ""; let webPhotoDietSelectCategoryNo = ""; -/**************************************************************************** - * 검색 날짜 설정 - //(A:오늘, B:3일, C:7일, D:최근30일, E:최근90일, F:이번달, G:올해, H:지난주, I:지난달) - ****************************************************************************/ -function fn_webPhotoDietSetDate(param){ - if("A"==param){ - // 오늘 - let toDate = new Date(); - let year = toDate.getFullYear(); - let month = toDate.getMonth() + 1; - let day = toDate.getDate(); - - if(month < 10) month = "0" + month; - if(day < 10) day = "0" + day; - - webPhotoDietSearchStartDate = year+'-'+month+'-'+day; - webPhotoDietSearchEndDate = year+'-'+month+'-'+day; - } - else if("B"==param){ - // 3일 - // 검색 종료일자 - let toDate = new Date(); - let year = toDate.getFullYear(); - let month = toDate.getMonth() + 1; - let day = toDate.getDate(); - - if(month < 10) month = "0" + month; - if(day < 10) day = "0" + day; - - webPhotoDietSearchEndDate = year+'-'+month+'-'+day; - - // 검색 시작일자 - toDate.setDate(toDate.getDate() - 3); - year = toDate.getFullYear(); - month = toDate.getMonth() + 1; - day = toDate.getDate(); - - if(month < 10) month = "0" + month; - if(day < 10) day = "0" + day; - - webPhotoDietSearchStartDate = year+'-'+month+'-'+day; - } - else if("C"==param){ - // 이번주 - // 검색 종료일자 - let toDate = new Date(); - let year = toDate.getFullYear(); - let month = toDate.getMonth() + 1; - let day = toDate.getDate(); - - if(month < 10) month = "0" + month; - if(day < 10) day = "0" + day; - - webPhotoDietSearchEndDate = year+'-'+month+'-'+day; - - // 검색 시작일자 - toDate.setDate(toDate.getDate() - 7); - year = toDate.getFullYear(); - month = toDate.getMonth() + 1; - day = toDate.getDate(); - - if(month < 10) month = "0" + month; - if(day < 10) day = "0" + day; - - webPhotoDietSearchStartDate = year+'-'+month+'-'+day; - } - else if("D"==param){ - // 최근30일 - let toDate = new Date(); - let year = toDate.getFullYear(); - let month = toDate.getMonth() + 1; - let day = toDate.getDate(); - - if(month < 10) month = "0" + month; - if(day < 10) day = "0" + day; - - //최근30일 - toDate.setDate(toDate.getDate() - 30); - startYear = toDate.getFullYear(); - startMonth = toDate.getMonth() + 1; - startDay = toDate.getDate(); - - if(startMonth < 10) startMonth = "0" + startMonth; - if(startDay < 10) startDay = "0" + startDay; - - webPhotoDietSearchStartDate = startYear+'-'+startMonth+'-'+startDay; - webPhotoDietSearchEndDate = year+'-'+month+'-'+day; - - } - else if("E"==param){ - // 최근90일 - // 검색 종료일자 - let toDate = new Date(); - let year = toDate.getFullYear(); - let month = toDate.getMonth() + 1; - let day = toDate.getDate(); - - if(month < 10) month = "0" + month; - if(day < 10) day = "0" + day; - - webPhotoDietSearchEndDate = year+'-'+month+'-'+day; - - // 검색 시작일자 - toDate.setDate(toDate.getDate() - 90); - year = toDate.getFullYear(); - month = toDate.getMonth() + 1; - day = toDate.getDate(); - - if(month < 10) month = "0" + month; - if(day < 10) day = "0" + day; - - webPhotoDietSearchStartDate = year+'-'+month+'-'+day; - } - else if("F"==param){ - //F:이번달 - // 검색 종료일자 - let toDate = new Date(); - let year = toDate.getFullYear(); - let month = toDate.getMonth() + 1; - let day = toDate.getDate(); - - if(month < 10) month = "0" + month; - if(day < 10) day = "0" + day; - - webPhotoDietSearchEndDate = year+'-'+month+'-'+day; - - // 검색 시작일자 - webPhotoDietSearchStartDate = year+'-'+month+'-01'; - } - else if("G"==param){ - // G:올해 - // 검색 종료일자 - let toDate = new Date(); - let year = toDate.getFullYear(); - let month = toDate.getMonth() + 1; - let day = toDate.getDate(); - - if(month < 10) month = "0" + month; - if(day < 10) day = "0" + day; - - webPhotoDietSearchEndDate = year+'-'+month+'-'+day; - - // 검색 시작일자 - webPhotoDietSearchStartDate = year+'-01-01'; - } - else if("H"==param){ - // H:지난주, I:지난달 - // 검색 종료일자 - let toDate = new Date(); - let year = toDate.getFullYear(); - let month = toDate.getMonth() + 1; - let day = toDate.getDate(); - - if(month < 10) month = "0" + month; - if(day < 10) day = "0" + day; - - webPhotoDietSearchEndDate = year+'-'+month+'-'+day; - - // 검색 시작일자 - webPhotoDietSearchStartDate = year+'-01-01'; - } - else if("I"==param){ - // I:지난달 - // 검색 종료일자 - let toDate = new Date(); - let year = toDate.getFullYear(); - let month = toDate.getMonth() + 1; - let day = toDate.getDate(); - - if(month < 10) month = "0" + month; - if(day < 10) day = "0" + day; - - webPhotoDietSearchEndDate = year+'-'+month+'-'+day; - - // 검색 시작일자 - webPhotoDietSearchStartDate = year+'-01-01'; - } - - $("#webPhotoDietSearchStartDate").val(webPhotoDietSearchStartDate).trigger("change"); - $("#webPhotoDietSearchEndDate").val(webPhotoDietSearchEndDate).trigger("change"); -} /**************************************************************************** * 전후 사진(다이어트) 정보 리스트 조회 ****************************************************************************/ -function fn_selectListWebPhotoDietJson(){ +function fn_selectListWebPhotoDietJson() { let formData = new FormData(); formData.append("menuClass", menuClass); formData.append("webPhotoDietSearchKeywordParam0", webPhotoDietSearchKeywordParam0); - formData.append("webPhotoDietSearchKeywordParam1", webPhotoDietSearchKeywordParam1); - formData.append("webPhotoDietSearchKeywordParam2", webPhotoDietSearchKeywordParam2); - formData.append("webPhotoDietSearchKeywordParam3", webPhotoDietSearchKeywordParam3); + formData.append("webPhotoDietSearchKeywordParam1", webPhotoDietSearchKeywordParam1); + formData.append("webPhotoDietSearchKeywordParam2", webPhotoDietSearchKeywordParam2); + formData.append("webPhotoDietSearchKeywordParam3", webPhotoDietSearchKeywordParam3); formData.append("webPhotoDietSort", webPhotoDietSort); formData.append("webPhotoDietDir", webPhotoDietDir); formData.append("webPhotoDietStart", webPhotoDietStart); @@ -217,29 +36,29 @@ function fn_selectListWebPhotoDietJson(){ contentType: false, type: 'POST', async: true, - success: function(data){ - if('0'==data.msgCode){ + success: function (data) { + if ('0' == data.msgCode) { // 페이징 처리 - webPhotoDietTotalCount = data.totalCount; + webPhotoDietTotalCount = data.totalCount; //$("#txt_noticeTotalCount").text(noticeTotalCount); - webPhotoDietTotalPages = Math.ceil(webPhotoDietTotalCount/webPhotoDietLimit); + webPhotoDietTotalPages = Math.ceil(webPhotoDietTotalCount / webPhotoDietLimit); // 리스트 조회 webPhotoDietAgGridData = data.rows; webPhotoDietGridOptions.api.setRowData(webPhotoDietAgGridData); - if(0', - next : 'next', - first : '', - last : '', + prev: 'prev', + next: 'next', + first: '', + last: '', onPageClick: function (photodiet, page) { fn_webPhotoDietPagination(page); } @@ -247,22 +66,22 @@ function fn_selectListWebPhotoDietJson(){ //console.info(page + ' (from photodiet listening)'); }); } - else{ + else { } } - else{ + else { modalEvent.danger("조회 오류", data.msgDesc); } }, - error : function(xhr, status, error) { + error: function (xhr, status, error) { modalEvent.danger("조회 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오."); }, - beforeSend:function(){ + beforeSend: function () { // 로딩열기 webPhotoDietGridOptions.api.showLoadingOverlay(); }, - complete:function(){ + complete: function () { } }); @@ -271,8 +90,8 @@ function fn_selectListWebPhotoDietJson(){ /**************************************************************************** * 검색하기 ****************************************************************************/ -function fn_webPhotoDietSearch(param){ - if("A"!=param && "Y"!=selectUseYn){ +function fn_webPhotoDietSearch(param) { + if ("A" != param && "Y" != selectUseYn) { modalEvent.warning("", "조회 권한이 없습니다."); return false; } @@ -280,13 +99,13 @@ function fn_webPhotoDietSearch(param){ fn_webPhotoDietPaginReset(); webPhotoDietSearchKeywordParam0 = $("#webPhotoDietSearchKeyword0").val(); - webPhotoDietSearchKeywordParam1 = $("#webPhotoDietSearchKeyword1").val(); - webPhotoDietSearchKeywordParam2 = $("#webPhotoDietSearchKeyword2").val(); - webPhotoDietSearchKeywordParam3 = $("#webPhotoDietSearchKeywordParam3").val(); + webPhotoDietSearchKeywordParam1 = $("#webPhotoDietSearchKeyword1").val(); + webPhotoDietSearchKeywordParam2 = ""; // 작성자 검색 제거 + webPhotoDietSearchKeywordParam3 = $("#webPhotoDietSearchKeywordParam3").val(); - webPhotoDietSearchDateType = $("#webPhotoDietSearchDateType").val(); + webPhotoDietSearchDateType = $("#webPhotoDietSearchDateType").val(); webPhotoDietSearchStartDate = $("#webPhotoDietSearchStartDate").val(); - webPhotoDietSearchEndDate = $("#webPhotoDietSearchEndDate").val(); + webPhotoDietSearchEndDate = $("#webPhotoDietSearchEndDate").val(); fn_selectListWebPhotoDietJson(); } @@ -295,14 +114,11 @@ function fn_webPhotoDietSearch(param){ /**************************************************************************** * 초기화하기 ****************************************************************************/ -function fn_webPhotoDietReset(){ - fn_webPhotoDietSetDate('D'); - $("#webPhotoDietSearchDateType option:eq(0)").prop("selected", true); - +function fn_webPhotoDietReset() { $("#webPhotoDietSearchKeyword0").val(""); - $("#webPhotoDietSearchKeyword1").val(""); - $("#webPhotoDietSearchKeyword2").val(""); - $("#webPhotoDietSearchKeyword3").val(""); + $("#webPhotoDietSearchKeyword1").val(""); + $("#webPhotoDietSearchKeyword2").val(""); + $("#webPhotoDietSearchKeyword3").val(""); fn_webPhotoDietSearch(); } @@ -310,8 +126,8 @@ function fn_webPhotoDietReset(){ /**************************************************************************** * 페이징 처리 ****************************************************************************/ -function fn_webPhotoDietPagination(param){ - webPhotoDietStart = (parseInt(param)-1)*webPhotoDietLimit; +function fn_webPhotoDietPagination(param) { + webPhotoDietStart = (parseInt(param) - 1) * webPhotoDietLimit; fn_selectListWebPhotoDietJson(); } @@ -319,19 +135,19 @@ function fn_webPhotoDietPagination(param){ /**************************************************************************** * 페이징 리셋 ****************************************************************************/ -function fn_webPhotoDietPaginReset(){ +function fn_webPhotoDietPaginReset() { webPhotoDietSearchKeywordParam0 = ''; - webPhotoDietSearchKeywordParam1 = ''; - webPhotoDietSearchKeywordParam2 = ''; - webPhotoDietSearchKeywordParam3 = ''; + webPhotoDietSearchKeywordParam1 = ''; + webPhotoDietSearchKeywordParam2 = ''; + webPhotoDietSearchKeywordParam3 = ''; - webPhotoDietStart = 0; - webPhotoDietLimit = 100; - webPhotoDietTotalCount = 0; - webPhotoDietTotalPages = 0; + webPhotoDietStart = 0; + webPhotoDietLimit = 100; + webPhotoDietTotalCount = 0; + webPhotoDietTotalPages = 0; //페이징 초기화 - if($("#webPhotoDietPagination").data("twbs-pagination")){ + if ($("#webPhotoDietPagination").data("twbs-pagination")) { $("#webPhotoDietPagination").twbsPagination("destroy"); } } @@ -339,22 +155,22 @@ function fn_webPhotoDietPaginReset(){ /**************************************************************************** * 전후 사진(다이어트) 삭제 ****************************************************************************/ -function fn_deleteWebPhotoDiet(){ - if("Y"!=deleteUseYn){ +function fn_deleteWebPhotoDiet() { + if ("Y" != deleteUseYn) { modalEvent.warning("", "삭제 권한이 없습니다."); return false; } - if(!webPhotoDietSelectId){ + if (!webPhotoDietSelectId) { modalEvent.warning("", "삭제할 대상을 선택하세요."); return false; } // categoryno 값 가져오기 (여러 개일 수 있음) let selectRows = webPhotoDietGridOptions.api.getSelectedRows(); - let categoryNos = selectRows.map(function(row) { return row.categoryno; }).join(","); + let categoryNos = selectRows.map(function (row) { return row.categoryno; }).join(","); - modalEvent.info("삭제", "선택한 전후 사진(다이어트) 정보를 삭제하시겠습니까?", function(){ + modalEvent.info("삭제", "선택한 전후 사진(다이어트) 정보를 삭제하시겠습니까?", function () { let formData = new FormData(); formData.append("menuClass", menuClass); formData.append("selectId", webPhotoDietSelectId); @@ -368,23 +184,23 @@ function fn_deleteWebPhotoDiet(){ contentType: false, type: 'POST', async: true, - success: function(data){ - if('0'==data.msgCode){ - modalEvent.success("삭제 성공", data.msgDesc, function(){ + success: function (data) { + if ('0' == data.msgCode) { + modalEvent.success("삭제 성공", data.msgDesc, function () { fn_webPhotoDietOk(); }); } - else{ + else { modalEvent.danger("삭제 오류", data.msgDesc); } }, - error : function(xhr, status, error) { + error: function (xhr, status, error) { modalEvent.danger("삭제 오류", "삭제 중 오류가 발생하였습니다. 잠시후 다시시도하십시오."); }, - beforeSend:function(){ + beforeSend: function () { }, - complete:function(){ + complete: function () { } }); @@ -394,17 +210,17 @@ function fn_deleteWebPhotoDiet(){ /**************************************************************************** * 검색 엔터 전후 사진(다이어트) ****************************************************************************/ -function fn_webPhotoDietEnter(e){ - if(e.which){ +function fn_webPhotoDietEnter(e) { + if (e.which) { // 파이어폭스 - if(13 == e.which) { + if (13 == e.which) { //로그인 액션 스크립트 fn_webPhotoDietSearch(); } } - else{ + else { // 윈도우, 사파리, 크롬 - if(13 == photodiet.keyCode) { + if (13 == photodiet.keyCode) { //로그인 액션 스크립트 fn_webPhotoDietSearch(); } @@ -414,50 +230,41 @@ function fn_webPhotoDietEnter(e){ /**************************************************************************** * 정렬 전후 사진(다이어트) ****************************************************************************/ -function fn_alignPhotoDiet(param, param2){ +function fn_alignPhotoDiet(param, param2) { let align = ""; - if("A"==param){ + if ("A" == param) { align = "오늘"; - fn_webPhotoDietSetDate('A'); } - else if("B"==param){ + else if ("B" == param) { align = "최근30일"; - - fn_webPhotoDietSetDate('D'); } - else if("C"==param){ + else if ("C" == param) { align = "최근90일"; - fn_webPhotoDietSetDate('E'); } - else if("D"==param){ + else if ("D" == param) { align = "이번주"; - fn_webPhotoDietSetDate('C'); } - else if("E"==param){ + else if ("E" == param) { align = "이번달"; - fn_webPhotoDietSetDate('F'); } - else if("F"==param){ + else if ("F" == param) { align = "올해"; - fn_webPhotoDietSetDate('G'); } - else if("G"==param){ + else if ("G" == param) { align = "지난주"; - fn_webPhotoDietSetDate('H'); } - else if("H"==param){ + else if ("H" == param) { align = "지난달"; - fn_webPhotoDietSetDate('I'); } - else{ + else { align = ""; } $("#webPhotoDietSearchDateType").val(param); @@ -467,18 +274,18 @@ function fn_alignPhotoDiet(param, param2){ /**************************************************************************** * 완료 ****************************************************************************/ -function fn_webPhotoDietOk(){ +function fn_webPhotoDietOk() { fn_webPhotoDietReset(); } /**************************************************************************** * 등록 화면으로 이동. ****************************************************************************/ -function fn_insertWebPhotoDietIntro(){ - if("Y"==insertUseYn){ - let pagingParam = "?menuClass="+menuClass; - fn_leftFormAction("/webphotodiet/insertWebPhotoDietIntro.do"+pagingParam); - }else{ +function fn_insertWebPhotoDietIntro() { + if ("Y" == insertUseYn) { + let pagingParam = "?menuClass=" + menuClass; + fn_leftFormAction("/webphotodiet/insertWebPhotoDietIntro.do" + pagingParam); + } else { modalEvent.warning("", "등록 권한이 없습니다."); return false; } @@ -488,13 +295,13 @@ function fn_insertWebPhotoDietIntro(){ /**************************************************************************** * 수정 화면으로 이동. ****************************************************************************/ -function fn_updateWebPhotoDietIntro(muWebPhotoDietId, categoryno){ - if("Y"==updateUseYn){ - let pagingParam = "?menuClass="+menuClass; - pagingParam += "&muWebPhotoDietId="+muWebPhotoDietId; - pagingParam += "&categoryno="+categoryno; - fn_leftFormAction("/webphotodiet/updateWebPhotoDietIntro.do"+pagingParam); - }else{ +function fn_updateWebPhotoDietIntro(muWebPhotoDietId, categoryno) { + if ("Y" == updateUseYn) { + let pagingParam = "?menuClass=" + menuClass; + pagingParam += "&muWebPhotoDietId=" + muWebPhotoDietId; + pagingParam += "&categoryno=" + categoryno; + fn_leftFormAction("/webphotodiet/updateWebPhotoDietIntro.do" + pagingParam); + } else { modalEvent.warning("", "수정 권한이 없습니다."); return false; } @@ -502,14 +309,14 @@ function fn_updateWebPhotoDietIntro(muWebPhotoDietId, categoryno){ let webPhotoDietColumnDefs = [ - {field: "checkbox", headerName:"", minWidth:55, maxWidth:55, headerCheckboxSelection: true, checkboxSelection: true}, - {field: "rowNum", headerName:"번호", minWidth:60, maxWidth:60,sortable: false, cellStyle:{textAlign: 'center'}}, - {field: "category", headerName:"카테고리", minWidth:60}, - {field: "title", headerName:"제목", minWidth:150, cellStyle:{cursor: 'pointer', color:'#3985EA'}}, - {field: "content", headerName:"내용요약", minWidth:150}, - {field: "hashtag", headerName:"해시태그", minWidth:150}, - {field: "writeDate", headerName:"등록일",minWidth:100, maxWidth:150}, - {field: "writeName", headerName:"작성자",minWidth:100, maxWidth:150}, + { field: "checkbox", headerName: "", minWidth: 55, maxWidth: 55, headerCheckboxSelection: true, checkboxSelection: true }, + { field: "rowNum", headerName: "번호", minWidth: 60, maxWidth: 60, sortable: false, cellStyle: { textAlign: 'center' } }, + { field: "category", headerName: "카테고리", minWidth: 60 }, + { field: "title", headerName: "제목", minWidth: 150, cellStyle: { cursor: 'pointer', color: '#3985EA' } }, + { field: "content", headerName: "내용요약", minWidth: 150 }, + { field: "hashtag", headerName: "해시태그", minWidth: 150 }, + { field: "writeDate", headerName: "등록일", minWidth: 100, maxWidth: 150 }, + { field: "writeName", headerName: "작성자", minWidth: 100, maxWidth: 150 }, ]; // let the grid know which columns and what data to use @@ -521,60 +328,60 @@ let webPhotoDietGridOptions = { sortable: true, //정렬 여부 resizable: true, //리사이즈 editable: true, // 그리드에서 데이터 수정 - cellStyle:{textAlign:'left',fontSize:'14px',padding:'0'}, + cellStyle: { textAlign: 'left', fontSize: '14px', padding: '0' }, //suppressSizeToFit:true, //자동 맞춤 //enableRowGroup: true, // 그룹 묶음 enablePivot: true, - enableValue : true + enableValue: true }, //suppressMultiSort:true, //단일솔트 true가 단일, false가 다중 shift + sort 시 - headerHeight : 41, // header 높이 - rowHeight : 41, // row 높이 - rowData : webPhotoDietAgGridData, - suppressRowClickSelection : true, // 로우 클릭시 체크박스 선택 true no, false yes - localeText : { - noRowsToShow : '조회 결과가 없습니다.' + headerHeight: 41, // header 높이 + rowHeight: 41, // row 높이 + rowData: webPhotoDietAgGridData, + suppressRowClickSelection: true, // 로우 클릭시 체크박스 선택 true no, false yes + localeText: { + noRowsToShow: '조회 결과가 없습니다.' }, //데이터 없을 시 나오는 문구 - rowSelection : 'multiple', // row 다중 선택 - debug : false, - onCellClicked: function(photodiet){ //셀 클릭 전후 사진(다이어트) + rowSelection: 'multiple', // row 다중 선택 + debug: false, + onCellClicked: function (photodiet) { //셀 클릭 전후 사진(다이어트) /* alert(photodiet.column.colId); */ - if('title'==photodiet.column.colId){ + if ('title' == photodiet.column.colId) { fn_updateWebPhotoDietIntro(photodiet.data.muWebPhotoDietId, photodiet.data.categoryno); } }, - onSelectionChanged: function(photodiet){ //체크박스 선택 + onSelectionChanged: function (photodiet) { //체크박스 선택 let selectRows = []; selectRows = photodiet.api.getSelectedRows(); webPhotoDietSelectId = ''; - for(let i=0; i' + rows[i].categoryNm + ''); + optionList.append(li); + } + } + }, + error: function (xhr, status, error) { + console.error("카테고리 목록 조회 오류", error); + } + }); +} + /**************************************************************************** * 페이지 photodiet ****************************************************************************/ -function fn_pagePhotoDiet(){ +function fn_pagePhotoDiet() { + // 검색 input - $(document).on('keypress', '#webPhotoDietSearchKeyword0', function(e) { + $(document).on('keypress', '#webPhotoDietSearchKeyword1', function (e) { fn_webPhotoDietEnter(e); }); - // 검색 input - $(document).on('keypress', '#webPhotoDietSearchKeyword1', function(e) { - fn_webPhotoDietEnter(e); - }); - // 검색 input - $(document).on('keypress', '#webPhotoDietSearchKeyword2', function(e) { - fn_webPhotoDietEnter(e); - }); - // 검색 input - $(document).on('keypress', '#webPhotoDietSearchKeyword3', function(e) { + + // 검색 input + $(document).on('keypress', '#webPhotoDietSearchKeyword3', function (e) { fn_webPhotoDietEnter(e); }); @@ -658,21 +492,18 @@ function fn_pagePhotoDiet(){ fn_deleteWebPhotoDiet(); }); - // 기간 선택 콤보 전후 사진(다이어트) - const target = $("#webPhotoDietSearchDateType").siblings("ul.select_option_list"); - target.find("li.option_list_item").click(function () { + // 카테고리 선택 콤보 + $(document).on("click", "#categoryOptionList .option_list_item", function () { let selectIdArr = $(this).prop("id").split('_'); - let selectId = selectIdArr[1]; - let selectName = $(this).text(); + let selectId = selectIdArr[1]; + let selectName = $(this).text(); $(this).parent().siblings("button").text(selectName); - $(this).parent().siblings("input").val(selectId); - - fn_alignPhotoDiet(selectId); + $("#webPhotoDietSearchKeyword0").val(selectName === "전체" ? "" : selectName); }); } -$(function(){ +$(function () { // 페이지 init fn_pageInit(); diff --git a/src/main/resources/static/js/web/webphotodiet/webPhotoDietUpdate.js b/src/main/resources/static/js/web/webphotodiet/webPhotoDietUpdate.js index 4ecda8a..991320b 100644 --- a/src/main/resources/static/js/web/webphotodiet/webPhotoDietUpdate.js +++ b/src/main/resources/static/js/web/webphotodiet/webPhotoDietUpdate.js @@ -1,12 +1,9 @@ -// Before/After 이미지 파일 변경 상태 -let isBeforeFileModified = false; -let isAfterFileModified = false; /**************************************************************************** * 전후사진 상세 조회 ****************************************************************************/ -function fn_selectWebPhotoDiet(){ - if(true != fn_emptyCheck(muWebPhotoDietId)) { +function fn_selectWebPhotoDiet() { + if (true != fn_emptyCheck(muWebPhotoDietId)) { modalEvent.warning("수정", "이벤트 정보가 없습니다."); return; } @@ -23,8 +20,8 @@ function fn_selectWebPhotoDiet(){ contentType: false, type: 'POST', async: true, - success: function(data){ - if('0'==data.msgCode){ + success: function (data) { + if ('0' == data.msgCode) { if (data.rows && data.rows.length > 0) { let photoData = data.rows[0]; $("select[name=categorylist]").val(photoData.categoryno).prop("selected", true); @@ -32,11 +29,11 @@ function fn_selectWebPhotoDiet(){ $("#content").val(photoData.content); $("#hashtag").val(photoData.hashtag); // Before/After 이미지 미리보기 - if(photoData.beforefile) { - $('#before_img_box').html(''); + if (photoData.beforefile) { + $('#before_img_box').html(''); } - if(photoData.afterfile) { - $('#after_img_box').html(''); + if (photoData.afterfile) { + $('#after_img_box').html(''); } } else { modalEvent.warning("수정", "조회된 전후사진 데이터가 없습니다."); @@ -45,7 +42,7 @@ function fn_selectWebPhotoDiet(){ alert("수정 오류: " + data.msgDesc); } }, - error : function(xhr, status, error) { + error: function (xhr, status, error) { alert("수정 오류: 수정 중 오류가 발생하였습니다. 잠시후 다시시도하십시오."); } }); @@ -54,8 +51,8 @@ function fn_selectWebPhotoDiet(){ /**************************************************************************** * 전후사진 수정 ****************************************************************************/ -function fn_updateWebPhotoDiet(){ - if("Y"!=updateUseYn){ +function fn_updateWebPhotoDiet() { + if ("Y" != updateUseYn) { modalEvent.warning("", "수정 권한이 없습니다."); return false; } @@ -64,45 +61,45 @@ function fn_updateWebPhotoDiet(){ let hashtag = $("#hashtag").val(); let categoryNo = $("select[name=categorylist]").val(); let beforeFile = $("#before_file")[0].files[0]; - let afterFile = $("#after_file")[0].files[0]; + let afterFile = $("#after_file")[0].files[0]; - if(true != fn_emptyCheck(categoryNo)) { + if (true != fn_emptyCheck(categoryNo)) { modalEvent.warning("수정", "카테고리를 입력하세요."); return; } - if(true != fn_emptyCheck(title)) { + if (true != fn_emptyCheck(title)) { modalEvent.warning("수정", "제목을 입력하세요."); return; } - if(true != fn_emptyCheck(content)) { + if (true != fn_emptyCheck(content)) { modalEvent.warning("수정", "내용을 입력하세요."); return; } - if(true != fn_emptyCheck(hashtag)) { + if (true != fn_emptyCheck(hashtag)) { modalEvent.warning("수정", "해시태그를 입력하세요."); return; } - if(!beforeFile && $("#before_img_box img").length === 0) { + if (!beforeFile && $("#before_img_box img").length === 0) { modalEvent.warning("수정", "Before 사진을 첨부하세요."); return; } - if(!afterFile && $("#after_img_box img").length === 0) { + if (!afterFile && $("#after_img_box img").length === 0) { modalEvent.warning("수정", "After 사진을 첨부하세요."); return; } - modalEvent.info("수정", "전후사진(다이어트) 정보를 수정하시겠습니까?", function(){ + modalEvent.info("수정", "전후사진(다이어트) 정보를 수정하시겠습니까?", function () { let formData = new FormData(); formData.append("menuClass", menuClass); formData.append("categoryNo", categoryNo); // 기존 카테고리 번호도 같이 전송 - if(originalCategoryNo) formData.append("originalCategoryNo", originalCategoryNo); + if (originalCategoryNo) formData.append("originalCategoryNo", originalCategoryNo); formData.append("title", title); formData.append("content", content); formData.append("hashtag", hashtag); formData.append("muWebPhotoDietId", muWebPhotoDietId); - if(beforeFile) formData.append("beforeFile", beforeFile); - if(afterFile) formData.append("afterFile", afterFile); + if (beforeFile) formData.append("beforeFile", beforeFile); + if (afterFile) formData.append("afterFile", afterFile); $.ajax({ url: encodeURI('/webphotodiet/updateWebPhotoDiet.do'), @@ -112,17 +109,17 @@ function fn_updateWebPhotoDiet(){ contentType: false, type: 'POST', async: true, - success: function(data){ - if('0'==data.msgCode){ - modalEvent.success("수정 성공", data.msgDesc, function(){ + success: function (data) { + if ('0' == data.msgCode) { + modalEvent.success("수정 성공", data.msgDesc, function () { fn_selectListWebPhotoDietIntro(); }); } - else{ + else { modalEvent.danger("수정 오류", data.msgDesc); } }, - error : function(xhr, status, error) { + error: function (xhr, status, error) { modalEvent.danger("수정 오류", "수정 중 오류가 발생하였습니다. 잠시후 다시시도하십시오."); } }); @@ -132,41 +129,45 @@ function fn_updateWebPhotoDiet(){ /**************************************************************************** * Before/After 이미지 미리보기 및 삭제 ****************************************************************************/ -function fn_beforeFilePreview(){ - const file = $("#before_file")[0].files[0]; - if(file){ - $('#before_img_box').html(''); - const reader = new FileReader(); - reader.onload = function (e) { - const img = document.createElement('img'); - img.src = e.target.result; - img.style.width = '600px'; - img.style.height = '350px'; - $('#before_img_box').append(img); - }; - reader.readAsDataURL(file); - } +function fn_beforeFilePreview() { + const file = $("#before_file")[0].files[0]; + if (file) { + $('#before_img_box').html(''); + const reader = new FileReader(); + reader.onload = function (e) { + const img = document.createElement('img'); + img.src = e.target.result; + img.style.width = '100%'; + img.style.height = '100%'; + img.style.objectFit = 'cover'; + img.style.display = 'block'; + $('#before_img_box').append(img); + }; + reader.readAsDataURL(file); + } } -function fn_removeBeforePreview(){ +function fn_removeBeforePreview() { $("#before_file").val(''); $('#before_img_box').html(''); } -function fn_afterFilePreview(){ - const file = $("#after_file")[0].files[0]; - if(file){ - $('#after_img_box').html(''); - const reader = new FileReader(); - reader.onload = function (e) { - const img = document.createElement('img'); - img.src = e.target.result; - img.style.width = '600px'; - img.style.height = '350px'; - $('#after_img_box').append(img); - }; - reader.readAsDataURL(file); - } +function fn_afterFilePreview() { + const file = $("#after_file")[0].files[0]; + if (file) { + $('#after_img_box').html(''); + const reader = new FileReader(); + reader.onload = function (e) { + const img = document.createElement('img'); + img.src = e.target.result; + img.style.width = '100%'; + img.style.height = '100%'; + img.style.objectFit = 'cover'; + img.style.display = 'block'; + $('#after_img_box').append(img); + }; + reader.readAsDataURL(file); + } } -function fn_removeAfterPreview(){ +function fn_removeAfterPreview() { $("#after_file").val(''); $('#after_img_box').html(''); } @@ -174,11 +175,11 @@ function fn_removeAfterPreview(){ /**************************************************************************** * 리스트 화면으로 이동 ****************************************************************************/ -function fn_selectListWebPhotoDietIntro(){ - if("Y"==selectUseYn){ - let pagingParam = "?menuClass="+menuClass; - fn_leftFormAction("/webphotodiet/selectListWebPhotoDietIntro.do"+pagingParam); - }else{ +function fn_selectListWebPhotoDietIntro() { + if ("Y" == selectUseYn) { + let pagingParam = "?menuClass=" + menuClass; + fn_leftFormAction("/webphotodiet/selectListWebPhotoDietIntro.do" + pagingParam); + } else { modalEvent.warning("", "조회 권한이 없습니다."); return false; } @@ -187,35 +188,35 @@ function fn_selectListWebPhotoDietIntro(){ /**************************************************************************** * 페이지 init ****************************************************************************/ -function fn_pageInit(){ +function fn_pageInit() { fn_selectWebPhotoDiet(); } /**************************************************************************** * 페이지 event ****************************************************************************/ -function fn_pageEvent(){ - $('.btnCancle').on("click", function(){ +function fn_pageEvent() { + $('.btnCancle').on("click", function () { fn_selectListWebPhotoDietIntro(); }); - $('.btnSave').on("click", function(){ + $('.btnSave').on("click", function () { fn_updateWebPhotoDiet(); }); - $('#before_delete_btn').on("click", function(){ + $('#before_delete_btn').on("click", function () { fn_removeBeforePreview(); }); - $('#before_file').on('change', function(e) { + $('#before_file').on('change', function (e) { fn_beforeFilePreview(); }); - $('#after_delete_btn').on("click", function(){ + $('#after_delete_btn').on("click", function () { fn_removeAfterPreview(); }); - $('#after_file').on('change', function(e) { + $('#after_file').on('change', function (e) { fn_afterFilePreview(); }); } -$(function(){ +$(function () { fn_pageInit(); fn_pageEvent(); }); \ No newline at end of file diff --git a/src/main/resources/templates/web/webphotodiet/webPhotoDietInsert.html b/src/main/resources/templates/web/webphotodiet/webPhotoDietInsert.html index fceb271..be256a7 100644 --- a/src/main/resources/templates/web/webphotodiet/webPhotoDietInsert.html +++ b/src/main/resources/templates/web/webphotodiet/webPhotoDietInsert.html @@ -1,90 +1,126 @@ - + - - + - -

전후 사진(다이어트)

-
-
-
-
- - +
+ +
+ +
+
+ + +
+
+ + +
-
-
- - + + +
+
+ + +
-
- - + + +
+
+ + +
-
-
- - + +
+ +
-
-
-
-

- 카테고리 -

- -

- 제목 -

- -

- 내용 -

- -

- 해쉬태그 -

- -
-
-
- - -
-
+
+ + +
+
+ +
+
+ Before 사진 첨부파일 +
+ + +
+
+
+ +
+ +
+ + +
+
+ After 사진 첨부파일 +
+ + +
+
+
+ +
+ +
+
+ + +
+

※ 사진 첨부 가이드

+
    +
  • 권장 사이즈는 650 x 650 px (또는 1:1 비율) 입니다.
  • +
  • 상단의 [+] 버튼을 눌러 사진을 첨부해 주세요. 이미지는 영역에 맞춰 빈틈없이 자동으로 예쁘게 채워집니다.
  • +
+
+
+
-
- - + \ No newline at end of file diff --git a/src/main/resources/templates/web/webphotodiet/webPhotoDietSelectList.html b/src/main/resources/templates/web/webphotodiet/webPhotoDietSelectList.html index e53bb45..b3e22e1 100644 --- a/src/main/resources/templates/web/webphotodiet/webPhotoDietSelectList.html +++ b/src/main/resources/templates/web/webphotodiet/webPhotoDietSelectList.html @@ -1,8 +1,6 @@ - + @@ -10,28 +8,29 @@ @@ -40,29 +39,28 @@

전후 사진(다이어트)

-
+
- + + + +
- - - +
@@ -93,4 +91,5 @@ + \ No newline at end of file diff --git a/src/main/resources/templates/web/webphotodiet/webPhotoDietUpdate.html b/src/main/resources/templates/web/webphotodiet/webPhotoDietUpdate.html index 2e25d08..90b0192 100644 --- a/src/main/resources/templates/web/webphotodiet/webPhotoDietUpdate.html +++ b/src/main/resources/templates/web/webphotodiet/webPhotoDietUpdate.html @@ -1,29 +1,22 @@ - + - - + - @@ -34,65 +27,111 @@
-
-
-
- - +
+ +
+ +
+
+ + +
+
+ + +
-
-
- - + + +
+
+ + +
-
- - + + +
+
+ + +
-
-
- - + + +
+ +
-
-
-
-

- 카테고리 -

- -

- 제목 -

- -

- 내용 -

- -

- 해쉬태그 -

- -
-
- -
-
- - +
+ + +
+
+ +
+
+ Before 사진 첨부파일 +
+ + +
+
+
+ +
+ +
+ + +
+
+ After 사진 첨부파일 +
+ + +
+
+
+ +
+ +
+
+ +
+

※ 사진 첨부 가이드

+
    +
  • 권장 사이즈는 650 x 650 px (또는 1:1 비율) 입니다.
  • +
  • 상단의 [+] 버튼을 눌러 사진을 첨부해 주세요. 이미지는 영역에 맞춰 빈틈없이 자동으로 예쁘게 채워집니다.
  • +
+
+
+ +
-
- - + \ No newline at end of file