--- src/main/java/itn/let/cert/phone/web/CertPhoneController.java
+++ src/main/java/itn/let/cert/phone/web/CertPhoneController.java
... | ... | @@ -5,6 +5,7 @@ |
| 5 | 5 |
import java.util.Map; |
| 6 | 6 |
|
| 7 | 7 |
import javax.annotation.Resource; |
| 8 |
+import javax.servlet.http.HttpServletRequest; |
|
| 8 | 9 |
|
| 9 | 10 |
import org.apache.commons.lang3.StringUtils; |
| 10 | 11 |
import org.springframework.http.HttpStatus; |
... | ... | @@ -158,7 +159,8 @@ |
| 158 | 159 |
|
| 159 | 160 |
|
| 160 | 161 |
@RequestMapping(value = {"/cert/phone/sendSysMsgDataAjax.do"})
|
| 161 |
- public ResponseEntity<StatusResponse> sendSysMsgDataAjax(MberCertPhoneVO mberCertPhoneVO) throws Exception {
|
|
| 162 |
+ public ResponseEntity<StatusResponse> sendSysMsgDataAjax(MberCertPhoneVO mberCertPhoneVO, |
|
| 163 |
+ HttpServletRequest request) throws Exception {
|
|
| 162 | 164 |
|
| 163 | 165 |
|
| 164 | 166 |
//로그인 권한정보 불러오기 |
... | ... | @@ -178,7 +180,7 @@ |
| 178 | 180 |
|
| 179 | 181 |
MjonMsgVO mjonMsgVO = new MjonMsgVO(); |
| 180 | 182 |
mjonMsgVO.setCallTo(mberCertPhoneVO.getMbtlnum()); |
| 181 |
- MjonMsgReturnVO returnVO = mjonMsgDataService.sendSysMsgData(mjonMsgVO); |
|
| 183 |
+ MjonMsgReturnVO returnVO = mjonMsgDataService.sendSysMsgData(mjonMsgVO, request); |
|
| 182 | 184 |
|
| 183 | 185 |
String resultSts = returnVO.getSendMsgCnt(); |
| 184 | 186 |
String resultBlockSts = returnVO.getSendMsgBlockCnt(); |
--- src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkSendController.java
+++ src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkSendController.java
... | ... | @@ -140,6 +140,9 @@ |
| 140 | 140 |
|
| 141 | 141 |
@Autowired |
| 142 | 142 |
KakaoApiJsonSave kakaoApiJsonSave; |
| 143 |
+ |
|
| 144 |
+ @Autowired |
|
| 145 |
+ private MjonCommon mjonCommon; |
|
| 143 | 146 |
|
| 144 | 147 |
@RequestMapping(value= {"/web/mjon/alimtalk/kakaoAlimtalkMsgDataView.do"})
|
| 145 | 148 |
public String KakaoAlimtalkMsgDataView(ModelMap model |
... | ... | @@ -1385,8 +1388,7 @@ |
| 1385 | 1388 |
|
| 1386 | 1389 |
if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
|
| 1387 | 1390 |
|
| 1388 |
- MjonCommon comm = new MjonCommon(); |
|
| 1389 |
- comm.getAdminKakaoAtSandSlack(kakaoVO); |
|
| 1391 |
+ mjonCommon.getAdminKakaoAtSandSlack(kakaoVO); |
|
| 1390 | 1392 |
|
| 1391 | 1393 |
} |
| 1392 | 1394 |
|
--- src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
+++ src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
... | ... | @@ -63,16 +63,57 @@ |
| 63 | 63 |
|
| 64 | 64 |
|
| 65 | 65 |
|
| 66 |
- |
|
| 67 |
- |
|
| 68 | 66 |
/** |
| 69 |
- * @methodName : getAdminSandSlack |
|
| 67 |
+ * @methodName : getAdminMsgSandSlack |
|
| 70 | 68 |
* @author : 이호영 |
| 71 | 69 |
* @date : 2024.12.04 |
| 72 | 70 |
* @description : 기존 메소드 리펙토링 |
| 73 | 71 |
* @param mjonMsgVO |
| 74 | 72 |
*/ |
| 75 |
- public void getAdminSandSlack(MjonMsgVO mjonMsgVO) {
|
|
| 73 |
+ public void getAdminSandSlack(String smsTxt, String sandName) {
|
|
| 74 |
+ |
|
| 75 |
+ HttpClient client = new HttpClient(); |
|
| 76 |
+ PostMethod post = new PostMethod(SLACK_URL); |
|
| 77 |
+ |
|
| 78 |
+ try {
|
|
| 79 |
+ // 메시지 내용 설정 |
|
| 80 |
+ |
|
| 81 |
+ // Slack 메시지 생성 |
|
| 82 |
+ JSONObject json = new JSONObject(); |
|
| 83 |
+ json.put("channel", SLACK_CHANNEL);
|
|
| 84 |
+ json.put("text", smsTxt);
|
|
| 85 |
+ json.put("username", sandName);
|
|
| 86 |
+ |
|
| 87 |
+ // Slack 요청 |
|
| 88 |
+ post.addParameter("payload", json.toString());
|
|
| 89 |
+ post.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
|
|
| 90 |
+ |
|
| 91 |
+ // Slack 응답 처리 |
|
| 92 |
+ int responseCode = client.executeMethod(post); |
|
| 93 |
+ if (responseCode != HttpStatus.SC_OK) {
|
|
| 94 |
+ log.warn("Slack 메시지 전송 실패. Response: {}", post.getResponseBodyAsString());
|
|
| 95 |
+ } |
|
| 96 |
+ |
|
| 97 |
+ } catch (IllegalArgumentException e) {
|
|
| 98 |
+ log.error("Slack 메시지 전송 중 IllegalArgumentException 발생", e);
|
|
| 99 |
+ } catch (IOException e) {
|
|
| 100 |
+ log.error("Slack 메시지 전송 중 IOException 발생", e);
|
|
| 101 |
+ } catch (Exception e) {
|
|
| 102 |
+ log.error("Slack 메시지 전송 중 Exception 발생", e);
|
|
| 103 |
+ } finally {
|
|
| 104 |
+ post.releaseConnection(); |
|
| 105 |
+ } |
|
| 106 |
+ } |
|
| 107 |
+ |
|
| 108 |
+ |
|
| 109 |
+ /** |
|
| 110 |
+ * @methodName : getAdminMsgSandSlack |
|
| 111 |
+ * @author : 이호영 |
|
| 112 |
+ * @date : 2024.12.04 |
|
| 113 |
+ * @description : 기존 메소드 리펙토링 |
|
| 114 |
+ * @param mjonMsgVO |
|
| 115 |
+ */ |
|
| 116 |
+ public void getAdminMsgSandSlack(MjonMsgVO mjonMsgVO) {
|
|
| 76 | 117 |
|
| 77 | 118 |
HttpClient client = new HttpClient(); |
| 78 | 119 |
PostMethod post = new PostMethod(SLACK_URL); |
... | ... | @@ -116,7 +157,7 @@ |
| 116 | 157 |
* @작성자 : WYH |
| 117 | 158 |
* @Method 설명 : slack 메시지 전송 |
| 118 | 159 |
*/ |
| 119 |
- /*public void getAdminSandSlack(MjonMsgVO mjonMsgVO) {
|
|
| 160 |
+ /*public void getAdminMsgSandSlack(MjonMsgVO mjonMsgVO) {
|
|
| 120 | 161 |
|
| 121 | 162 |
HttpClient client = new HttpClient(); |
| 122 | 163 |
PostMethod post = new PostMethod(url); |
--- src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java
+++ src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java
... | ... | @@ -30,6 +30,7 @@ |
| 30 | 30 |
import org.apache.poi.xssf.usermodel.XSSFWorkbook; |
| 31 | 31 |
import org.slf4j.Logger; |
| 32 | 32 |
import org.slf4j.LoggerFactory; |
| 33 |
+import org.springframework.beans.factory.annotation.Autowired; |
|
| 33 | 34 |
import org.springframework.beans.factory.annotation.Value; |
| 34 | 35 |
import org.springframework.http.HttpStatus; |
| 35 | 36 |
import org.springframework.http.ResponseEntity; |
... | ... | @@ -184,6 +185,9 @@ |
| 184 | 185 |
|
| 185 | 186 |
@Resource(name = "MsgHolidayService") |
| 186 | 187 |
private MsgHolidayService msgHolidayService; |
| 188 |
+ |
|
| 189 |
+ @Autowired |
|
| 190 |
+ private MjonCommon mjonCommon; |
|
| 187 | 191 |
|
| 188 | 192 |
private static final Logger logger = LoggerFactory.getLogger(MjonMsgCampainDataController.class); |
| 189 | 193 |
|
... | ... | @@ -3288,9 +3292,11 @@ |
| 3288 | 3292 |
|
| 3289 | 3293 |
if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
|
| 3290 | 3294 |
|
| 3295 |
+ /* |
|
| 3291 | 3296 |
MjonCommon comm = new MjonCommon(); |
| 3292 |
- comm.getAdminSandSlack(mjonMsgVO); |
|
| 3293 |
- |
|
| 3297 |
+ comm.getAdminMsgSandSlack(mjonMsgVO); |
|
| 3298 |
+ */ |
|
| 3299 |
+ mjonCommon.getAdminMsgSandSlack(mjonMsgVO); |
|
| 3294 | 3300 |
} |
| 3295 | 3301 |
|
| 3296 | 3302 |
} |
--- src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainHGDataController.java
+++ src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainHGDataController.java
... | ... | @@ -12,6 +12,7 @@ |
| 12 | 12 |
import javax.annotation.Resource; |
| 13 | 13 |
import javax.servlet.http.HttpServletRequest; |
| 14 | 14 |
|
| 15 |
+import org.springframework.beans.factory.annotation.Autowired; |
|
| 15 | 16 |
import org.springframework.beans.factory.annotation.Value; |
| 16 | 17 |
import org.springframework.stereotype.Controller; |
| 17 | 18 |
import org.springframework.ui.ModelMap; |
... | ... | @@ -149,6 +150,9 @@ |
| 149 | 150 |
|
| 150 | 151 |
@Resource(name = "MsgHolidayService") |
| 151 | 152 |
private MsgHolidayService msgHolidayService; |
| 153 |
+ |
|
| 154 |
+ @Autowired |
|
| 155 |
+ private MjonCommon mjonCommon; |
|
| 152 | 156 |
|
| 153 | 157 |
/** |
| 154 | 158 |
* 선거 문자 대량 발송 화면 |
... | ... | @@ -1138,10 +1142,11 @@ |
| 1138 | 1142 |
boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); |
| 1139 | 1143 |
|
| 1140 | 1144 |
if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
|
| 1141 |
- |
|
| 1145 |
+ /* |
|
| 1142 | 1146 |
MjonCommon comm = new MjonCommon(); |
| 1143 |
- comm.getAdminSandSlack(mjonMsgVO); |
|
| 1144 |
- |
|
| 1147 |
+ comm.getAdminMsgSandSlack(mjonMsgVO); |
|
| 1148 |
+ */ |
|
| 1149 |
+ mjonCommon.getAdminMsgSandSlack(mjonMsgVO); |
|
| 1145 | 1150 |
} |
| 1146 | 1151 |
|
| 1147 | 1152 |
} |
--- src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainTWDataController.java
+++ src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainTWDataController.java
... | ... | @@ -29,6 +29,7 @@ |
| 29 | 29 |
import org.apache.poi.xssf.usermodel.XSSFWorkbook; |
| 30 | 30 |
import org.slf4j.Logger; |
| 31 | 31 |
import org.slf4j.LoggerFactory; |
| 32 |
+import org.springframework.beans.factory.annotation.Autowired; |
|
| 32 | 33 |
import org.springframework.beans.factory.annotation.Value; |
| 33 | 34 |
import org.springframework.stereotype.Controller; |
| 34 | 35 |
import org.springframework.ui.ModelMap; |
... | ... | @@ -173,6 +174,9 @@ |
| 173 | 174 |
|
| 174 | 175 |
@Resource(name = "MsgHolidayService") |
| 175 | 176 |
private MsgHolidayService msgHolidayService; |
| 177 |
+ |
|
| 178 |
+ @Autowired |
|
| 179 |
+ private MjonCommon mjonCommon; |
|
| 176 | 180 |
|
| 177 | 181 |
private static final Logger logger = LoggerFactory.getLogger(MjonMsgCampainTWDataController.class); |
| 178 | 182 |
|
... | ... | @@ -2122,10 +2126,11 @@ |
| 2122 | 2126 |
boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); |
| 2123 | 2127 |
|
| 2124 | 2128 |
if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
|
| 2125 |
- |
|
| 2129 |
+ /* |
|
| 2126 | 2130 |
MjonCommon comm = new MjonCommon(); |
| 2127 |
- comm.getAdminSandSlack(mjonMsgVO); |
|
| 2128 |
- |
|
| 2131 |
+ comm.getAdminMsgSandSlack(mjonMsgVO); |
|
| 2132 |
+ */ |
|
| 2133 |
+ mjonCommon.getAdminMsgSandSlack(mjonMsgVO); |
|
| 2129 | 2134 |
} |
| 2130 | 2135 |
|
| 2131 | 2136 |
} |
--- src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java
+++ src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java
... | ... | @@ -188,7 +188,7 @@ |
| 188 | 188 |
|
| 189 | 189 |
public StatusResponse sendMsgData_advc(MjonMsgVO mjonMsgVO, HttpServletRequest request) throws Exception; |
| 190 | 190 |
|
| 191 |
- public MjonMsgReturnVO sendSysMsgData(MjonMsgVO mjonMsgVO) throws Exception; |
|
| 191 |
+ public MjonMsgReturnVO sendSysMsgData(MjonMsgVO mjonMsgVO, HttpServletRequest request) throws Exception; |
|
| 192 | 192 |
|
| 193 | 193 |
|
| 194 | 194 |
|
--- src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
+++ src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
... | ... | @@ -2,6 +2,7 @@ |
| 2 | 2 |
|
| 3 | 3 |
import java.math.BigDecimal; |
| 4 | 4 |
import java.math.RoundingMode; |
| 5 |
+import java.net.URI; |
|
| 5 | 6 |
import java.text.ParseException; |
| 6 | 7 |
import java.text.SimpleDateFormat; |
| 7 | 8 |
import java.util.ArrayList; |
... | ... | @@ -147,6 +148,7 @@ |
| 147 | 148 |
|
| 148 | 149 |
@Autowired |
| 149 | 150 |
private MjonCommon mjonCommon; |
| 151 |
+ |
|
| 150 | 152 |
|
| 151 | 153 |
public List<MjonMsgDataVO> selectCcmCmmCodeList() throws Exception {
|
| 152 | 154 |
|
... | ... | @@ -4172,7 +4174,7 @@ |
| 4172 | 4174 |
|
| 4173 | 4175 |
if (isNotified) {
|
| 4174 | 4176 |
System.out.println("스미싱 알림이 처리되었습니다.");
|
| 4175 |
- mjonCommon.getAdminSandSlack(mjonMsgVO); |
|
| 4177 |
+ mjonCommon.getAdminMsgSandSlack(mjonMsgVO); |
|
| 4176 | 4178 |
} else if("Y".equalsIgnoreCase(mjonMsgVO.getSpamStatus())){
|
| 4177 | 4179 |
System.out.println("==알림 예외 시간==");
|
| 4178 | 4180 |
mjonMsgDAO.insertSpamPassMsgData(mjonMsgVO); |
... | ... | @@ -5022,7 +5024,7 @@ |
| 5022 | 5024 |
} |
| 5023 | 5025 |
|
| 5024 | 5026 |
@Override |
| 5025 |
- public MjonMsgReturnVO sendSysMsgData(MjonMsgVO mjonMsgVO) throws Exception {
|
|
| 5027 |
+ public MjonMsgReturnVO sendSysMsgData(MjonMsgVO mjonMsgVO,HttpServletRequest request) throws Exception {
|
|
| 5026 | 5028 |
|
| 5027 | 5029 |
|
| 5028 | 5030 |
|
... | ... | @@ -5099,6 +5101,22 @@ |
| 5099 | 5101 |
|
| 5100 | 5102 |
mjonMsgDataService.insertSysMsgLog(sendLogVO); |
| 5101 | 5103 |
|
| 5104 |
+ |
|
| 5105 |
+ String fullUrl = request.getRequestURL().toString(); |
|
| 5106 |
+ try {
|
|
| 5107 |
+ URI uri = new URI(fullUrl); |
|
| 5108 |
+ String domain = uri.getHost(); // www.munjaon.co.kr 반환 |
|
| 5109 |
+ |
|
| 5110 |
+ if(domain.indexOf("munjaon.co.kr") < 0) {
|
|
| 5111 |
+ mjonCommon.getAdminSandSlack(contents, "로그인 인증번호 "+mjonMsgVO.getCallTo()); |
|
| 5112 |
+ } |
|
| 5113 |
+ |
|
| 5114 |
+ } catch (Exception e) {
|
|
| 5115 |
+ } |
|
| 5116 |
+ |
|
| 5117 |
+ |
|
| 5118 |
+ |
|
| 5119 |
+ |
|
| 5102 | 5120 |
return returnVO; |
| 5103 | 5121 |
} |
| 5104 | 5122 |
|
--- src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
+++ src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
... | ... | @@ -40,6 +40,7 @@ |
| 40 | 40 |
import org.apache.poi.xssf.usermodel.XSSFWorkbook; |
| 41 | 41 |
import org.slf4j.Logger; |
| 42 | 42 |
import org.slf4j.LoggerFactory; |
| 43 |
+import org.springframework.beans.factory.annotation.Autowired; |
|
| 43 | 44 |
import org.springframework.beans.factory.annotation.Value; |
| 44 | 45 |
import org.springframework.http.HttpStatus; |
| 45 | 46 |
import org.springframework.http.ResponseEntity; |
... | ... | @@ -192,6 +193,9 @@ |
| 192 | 193 |
|
| 193 | 194 |
@Resource(name = "MsgHolidayService") |
| 194 | 195 |
private MsgHolidayService msgHolidayService; |
| 196 |
+ |
|
| 197 |
+ @Autowired |
|
| 198 |
+ private MjonCommon mjonCommon; |
|
| 195 | 199 |
|
| 196 | 200 |
private static final Logger logger = LoggerFactory.getLogger(MjonMsgDataController.class); |
| 197 | 201 |
|
... | ... | @@ -3447,10 +3451,11 @@ |
| 3447 | 3451 |
boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); |
| 3448 | 3452 |
|
| 3449 | 3453 |
if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림 예외설정 시간에 포함되지 않는 경우 슬랙 알림 발송
|
| 3450 |
- |
|
| 3454 |
+ /* |
|
| 3451 | 3455 |
MjonCommon comm = new MjonCommon(); |
| 3452 |
- comm.getAdminSandSlack(mjonMsgVO); |
|
| 3453 |
- |
|
| 3456 |
+ comm.getAdminMsgSandSlack(mjonMsgVO); |
|
| 3457 |
+ */ |
|
| 3458 |
+ mjonCommon.getAdminMsgSandSlack(mjonMsgVO); |
|
| 3454 | 3459 |
} |
| 3455 | 3460 |
|
| 3456 | 3461 |
} |
--- src/main/java/itn/let/mjo/test/web/TestController.java
+++ src/main/java/itn/let/mjo/test/web/TestController.java
... | ... | @@ -242,6 +242,9 @@ |
| 242 | 242 |
@Resource(name="MjonMsgDataDAO") |
| 243 | 243 |
private MjonMsgDataDAO mjonMsgDataDAO; |
| 244 | 244 |
|
| 245 |
+ @Autowired |
|
| 246 |
+ private MjonCommon mjonCommon; |
|
| 247 |
+ |
|
| 245 | 248 |
private static final Logger logger = LoggerFactory.getLogger(TestController.class); |
| 246 | 249 |
|
| 247 | 250 |
///////////////////////////////////////////////////////////////////////////////////////// |
... | ... | @@ -2173,16 +2176,17 @@ |
| 2173 | 2176 |
boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); |
| 2174 | 2177 |
|
| 2175 | 2178 |
if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
|
| 2176 |
- |
|
| 2179 |
+ /* |
|
| 2177 | 2180 |
MjonCommon comm = new MjonCommon(); |
| 2178 |
- comm.getAdminSandSlack(mjonMsgVO); |
|
| 2179 |
- |
|
| 2181 |
+ comm.getAdminMsgSandSlack(mjonMsgVO); |
|
| 2182 |
+ */ |
|
| 2183 |
+ mjonCommon.getAdminMsgSandSlack(mjonMsgVO); |
|
| 2180 | 2184 |
} |
| 2181 | 2185 |
|
| 2182 | 2186 |
//Slack으로 메세지 전송 처리 |
| 2183 | 2187 |
/*MjonCommon comm = new MjonCommon(); |
| 2184 | 2188 |
System.out.println("slack noti");
|
| 2185 |
- comm.getAdminSandSlack(mjonMsgVO);*/ |
|
| 2189 |
+ comm.getAdminMsgSandSlack(mjonMsgVO);*/ |
|
| 2186 | 2190 |
} |
| 2187 | 2191 |
} |
| 2188 | 2192 |
/*else {//야간스미싱 알림 비활성화인 경우 - 알림일정에 포함되지 않으면 슬랙 발송 처리(알림일정에 포함되면 슬랙발송 X - 알림 비활성화이기 때문에 발송X)
|
... | ... | @@ -2211,7 +2215,7 @@ |
| 2211 | 2215 |
if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
|
| 2212 | 2216 |
|
| 2213 | 2217 |
MjonCommon comm = new MjonCommon(); |
| 2214 |
- comm.getAdminSandSlack(mjonMsgVO); |
|
| 2218 |
+ comm.getAdminMsgSandSlack(mjonMsgVO); |
|
| 2215 | 2219 |
|
| 2216 | 2220 |
} |
| 2217 | 2221 |
|
--- src/main/java/itn/let/uat/uia/web/EgovLoginController.java
+++ src/main/java/itn/let/uat/uia/web/EgovLoginController.java
... | ... | @@ -3632,7 +3632,7 @@ |
| 3632 | 3632 |
*/ |
| 3633 | 3633 |
@RequestMapping(value = { "/web/user/sendSysMsgDataAjax.do" })
|
| 3634 | 3634 |
public ModelAndView sendSysMsgDataAjax(@ModelAttribute("searchVO") MjonMsgVO mjonMsgVO,
|
| 3635 |
- RedirectAttributes redirectAttributes, ModelMap model) throws Exception {
|
|
| 3635 |
+ RedirectAttributes redirectAttributes, ModelMap model, HttpServletRequest request) throws Exception {
|
|
| 3636 | 3636 |
|
| 3637 | 3637 |
ModelAndView modelAndView = new ModelAndView(); |
| 3638 | 3638 |
modelAndView.setViewName("jsonView");
|
... | ... | @@ -3710,7 +3710,7 @@ |
| 3710 | 3710 |
|
| 3711 | 3711 |
|
| 3712 | 3712 |
|
| 3713 |
- MjonMsgReturnVO returnVO = mjonMsgDataService.sendSysMsgData(mjonMsgVO); |
|
| 3713 |
+ MjonMsgReturnVO returnVO = mjonMsgDataService.sendSysMsgData(mjonMsgVO, request); |
|
| 3714 | 3714 |
|
| 3715 | 3715 |
resultSts = returnVO.getSendMsgCnt(); |
| 3716 | 3716 |
resultBlockSts = returnVO.getSendMsgBlockCnt(); |
--- src/main/java/itn/let/uss/umt/web/EgovUserManageController.java
+++ src/main/java/itn/let/uss/umt/web/EgovUserManageController.java
... | ... | @@ -1225,9 +1225,6 @@ |
| 1225 | 1225 |
vo.setCodeId("ITN024");
|
| 1226 | 1226 |
model.addAttribute("flowTypeCode", cmmUseService.selectCmmCodeDetail(vo));
|
| 1227 | 1227 |
|
| 1228 |
- vo.setCodeId("ITN056");
|
|
| 1229 |
- model.addAttribute("smsSandCode", cmmUseService.selectCmmCodeDetail(vo));
|
|
| 1230 |
- |
|
| 1231 | 1228 |
|
| 1232 | 1229 |
//최근 발송 문자 내용 불러오기 - 최근 3개 내역만 |
| 1233 | 1230 |
List<MjonMsgSentVO> mjonMsgSentList = mberManageService.selectMberMsgSentLatestListNew20240320(userId); |
--- src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp
+++ src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp
... | ... | @@ -21,6 +21,7 @@ |
| 21 | 21 |
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> |
| 22 | 22 |
<%@ taglib prefix="double-submit" uri="http://www.egovframe.go.kr/tags/double-submit/jsp" %> |
| 23 | 23 |
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> |
| 24 |
+<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%> |
|
| 24 | 25 |
<% pageContext.setAttribute("newLineChar", "\r\n"); %>
|
| 25 | 26 |
<% pageContext.setAttribute("newLineChar2", "\n"); %>
|
| 26 | 27 |
<% String serverName = request.getServerName(); %> |
... | ... | @@ -6075,13 +6076,15 @@ |
| 6075 | 6076 |
<li><input type="radio" name="msgKind" id="msgKind3" value="C"/><label for="msgKind3">선거</label></li> |
| 6076 | 6077 |
</ul> --%> |
| 6077 | 6078 |
<input type="hidden" name="msgKind" id="msgKind" value="N"/> |
| 6078 |
- <select id="inputSmsTxt" onchange="fnInputSmsTxt();"> |
|
| 6079 |
+ <ec:select codeId="ITN056" id="inputSmsTxt" script="onchange='fnInputSmsTxt();'" |
|
| 6080 |
+ defaultValue="" defaultText="직접입력" /> |
|
| 6081 |
+ <%-- <select id="inputSmsTxt" onchange="fnInputSmsTxt();"> |
|
| 6079 | 6082 |
<c:forEach var="result" items="${smsSandCode}" varStatus="status">
|
| 6080 | 6083 |
<option value="${result.code}">
|
| 6081 | 6084 |
<c:out value="${result.codeNm}"/>
|
| 6082 | 6085 |
</option> |
| 6083 | 6086 |
</c:forEach> |
| 6084 |
- </select> |
|
| 6087 |
+ </select> --%> |
|
| 6085 | 6088 |
<textarea name="smsTxt" id="smsTxt"></textarea> |
| 6086 | 6089 |
<span class="fwMd" id="msgLeng">0 /</span> |
| 6087 | 6090 |
<span id="limitLeng">90</span>byte |
--- src/main/webapp/WEB-INF/jsp/web/addr/AddrList_advcBack_20240723.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/AddrList_advcBack_20240723.jsp
... | ... | @@ -516,7 +516,7 @@ |
| 516 | 516 |
var updatedData = currentData.map(row => {
|
| 517 | 517 |
var newRow = {};
|
| 518 | 518 |
fieldMapping.forEach((field, index) => {
|
| 519 |
- newRow[field] = row[Object.keys(row)[index]] || ""; |
|
| 519 |
+ newRow[field] = row[Object.keys(row)[index]] ?? ""; |
|
| 520 | 520 |
}); |
| 521 | 521 |
return newRow; |
| 522 | 522 |
}); |
--- src/main/webapp/WEB-INF/jsp/web/msgcampain/include/msgDataIncludeExcel.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgcampain/include/msgDataIncludeExcel.jsp
... | ... | @@ -501,7 +501,7 @@ |
| 501 | 501 |
var updatedData = currentData.map(row => {
|
| 502 | 502 |
var newRow = {};
|
| 503 | 503 |
fieldMapping.forEach((field, index) => {
|
| 504 |
- newRow[field] = row[Object.keys(row)[index]] || ""; |
|
| 504 |
+ newRow[field] = row[Object.keys(row)[index]] ?? ""; |
|
| 505 | 505 |
}); |
| 506 | 506 |
return newRow; |
| 507 | 507 |
}); |
--- src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
... | ... | @@ -14,10 +14,40 @@ |
| 14 | 14 |
var msgResendAllGroupId = "${msgResendAllGroupId}";
|
| 15 | 15 |
var msgResendAllReplaceYn = "${msgResendAllReplaceYn}";
|
| 16 | 16 |
|
| 17 |
+//맞춤제작 내보관함 이미지 선택시 처리 |
|
| 18 |
+var customImgFlag = '${customImgVO.customImgFlag}';
|
|
| 19 |
+var customAtchFileId = '${customImgVO.atchFileId1}';
|
|
| 20 |
+var customFileSn = '${customImgVO.fileSn}';
|
|
| 21 |
+var customStrImgPath = '${customImgVO.strImgPath}';
|
|
| 22 |
+ |
|
| 23 |
+//메인화면 그림문자 이미지 선택시 처리 |
|
| 24 |
+var mainImgFlag = '${mainImgVO.mainImgFlag}';
|
|
| 25 |
+var mainAtchFileId = '${mainImgVO.atchFileId1}';
|
|
| 26 |
+var mainFileSn = '${mainImgVO.fileSn}';
|
|
| 27 |
+var mainStrImgPath = '${mainImgVO.strImgPath}';
|
|
| 28 |
+ |
|
| 29 |
+//메인화면 인기문자 메세지 선택시 처리 |
|
| 30 |
+var mainLetterFlag = '${mainLetterVO.mainLetterFlag}';
|
|
| 31 |
+var mainSmsTxt = '${mainLetterVO.smsTxt}';
|
|
| 32 |
+ |
|
| 33 |
+//공통 설정 |
|
| 34 |
+var cateNo = "${cateCodeVO.cateNo}";
|
|
| 35 |
+var mainLetterTypeFlag = '${searchVO.mainLetterTypeFlag}';
|
|
| 36 |
+var moreSamFlag = '${moreSampleYn}';
|
|
| 37 |
+ |
|
| 38 |
+//문자 재전송 처리 |
|
| 39 |
+var msgResendFlag = '${reSendMsgVO.msgResendFlag}';
|
|
| 40 |
+var msgSeqList = []; |
|
| 41 |
+msgSeqList = '${reSendMsgVO.msgSeqList}';
|
|
| 42 |
+ |
|
| 43 |
+//주소록에서 주소를 전송한 경우 처리 |
|
| 44 |
+var moveAddrFlag = '${addrVO.moveAddrFlag}';
|
|
| 45 |
+var addrIdList = []; |
|
| 46 |
+addrIdList = '${addrVO.addrIdList}';
|
|
| 47 |
+ |
|
| 48 |
+ |
|
| 17 | 49 |
$(document).ready(function(){
|
| 18 |
- |
|
| 19 | 50 |
console.log('loginVO : ', loginVO);
|
| 20 |
- |
|
| 21 | 51 |
// 내보관함 리스트 로그인이 완료된 경우에만 로드되도록 |
| 22 | 52 |
if(loginVO != "" && loginVO != null){
|
| 23 | 53 |
//최 하단 내문자함 탭 리스트 내용 불러오기 |
--- src/main/webapp/WEB-INF/jsp/web/msgdata/include/msgDataIncludeExcel.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/include/msgDataIncludeExcel.jsp
... | ... | @@ -554,9 +554,10 @@ |
| 554 | 554 |
}); |
| 555 | 555 |
|
| 556 | 556 |
var updatedData = currentData.map(row => {
|
| 557 |
+ console.log('row : ', row);
|
|
| 557 | 558 |
var newRow = {};
|
| 558 | 559 |
fieldMapping.forEach((field, index) => {
|
| 559 |
- newRow[field] = row[Object.keys(row)[index]] || ""; |
|
| 560 |
+ newRow[field] = row[Object.keys(row)[index]] ?? ""; |
|
| 560 | 561 |
}); |
| 561 | 562 |
return newRow; |
| 562 | 563 |
}); |
--- src/main/webapp/js/user/fax/addr/event.js
+++ src/main/webapp/js/user/fax/addr/event.js
... | ... | @@ -303,7 +303,9 @@ |
| 303 | 303 |
var updatedData = currentData.map(row => {
|
| 304 | 304 |
var newRow = {};
|
| 305 | 305 |
fieldMapping.forEach((field, index) => {
|
| 306 |
- newRow[field] = row[Object.keys(row)[index]] || ""; |
|
| 306 |
+ newRow[field] = row[Object.keys(row)[index]] !== null && row[Object.keys(row)[index]] !== undefined |
|
| 307 |
+ ? row[Object.keys(row)[index]] |
|
| 308 |
+ : ""; |
|
| 307 | 309 |
}); |
| 308 | 310 |
return newRow; |
| 309 | 311 |
}); |
--- src/main/webapp/js/user/fax/exelUpload.js
+++ src/main/webapp/js/user/fax/exelUpload.js
... | ... | @@ -367,7 +367,9 @@ |
| 367 | 367 |
var updatedData = currentData.map(row => {
|
| 368 | 368 |
var newRow = {};
|
| 369 | 369 |
fieldMapping.forEach((field, index) => {
|
| 370 |
- newRow[field] = row[Object.keys(row)[index]] || ""; |
|
| 370 |
+ newRow[field] = row[Object.keys(row)[index]] !== null && row[Object.keys(row)[index]] !== undefined |
|
| 371 |
+ ? row[Object.keys(row)[index]] |
|
| 372 |
+ : ""; |
|
| 371 | 373 |
}); |
| 372 | 374 |
return newRow; |
| 373 | 375 |
}); |
--- src/main/webapp/js/web/addr/event.js
+++ src/main/webapp/js/web/addr/event.js
... | ... | @@ -364,7 +364,9 @@ |
| 364 | 364 |
var updatedData = currentData.map(row => {
|
| 365 | 365 |
var newRow = {};
|
| 366 | 366 |
fieldMapping.forEach((field, index) => {
|
| 367 |
- newRow[field] = row[Object.keys(row)[index]] || ""; |
|
| 367 |
+ newRow[field] = row[Object.keys(row)[index]] !== null && row[Object.keys(row)[index]] !== undefined |
|
| 368 |
+ ? row[Object.keys(row)[index]] |
|
| 369 |
+ : ""; |
|
| 368 | 370 |
}); |
| 369 | 371 |
return newRow; |
| 370 | 372 |
}); |
--- src/main/webapp/js/web/msgdata/msgDataView.js
+++ src/main/webapp/js/web/msgdata/msgDataView.js
... | ... | @@ -225,20 +225,16 @@ |
| 225 | 225 |
$('html').animate({scrollTop : offset.top}, 400);
|
| 226 | 226 |
|
| 227 | 227 |
} |
| 228 |
- |
|
| 229 |
- |
|
| 230 | 228 |
} |
| 231 | 229 |
|
| 232 | 230 |
|
| 233 | 231 |
//메인화면 더많은 샘플보기 버튼 선택시 처리 |
| 234 |
- var moreSamFlag = '${moreSampleYn}';
|
|
| 235 |
- |
|
| 236 | 232 |
if(moreSamFlag == 'Y'){
|
| 237 | 233 |
|
| 238 | 234 |
//문자 샘플 탭 활성화 시키기 |
| 239 |
- var mainLetterTypeFlag = '${searchVO.mainLetterTypeFlag}';
|
|
| 235 |
+ // var mainLetterTypeFlag = '${searchVO.mainLetterTypeFlag}';
|
|
| 240 | 236 |
var letterTab = '0'; |
| 241 |
- var cateNo = "${cateCodeVO.cateNo}";
|
|
| 237 |
+ // var cateNo = "${cateCodeVO.cateNo}";
|
|
| 242 | 238 |
if(mainLetterTypeFlag == 'P'){
|
| 243 | 239 |
TabType2($('.tabType2 li').eq(1), '2');
|
| 244 | 240 |
}else{
|
... | ... | @@ -278,10 +274,12 @@ |
| 278 | 274 |
|
| 279 | 275 |
|
| 280 | 276 |
//메인화면 그림문자 이미지 선택시 처리 |
| 281 |
- var mainImgFlag = '${mainImgVO.mainImgFlag}';
|
|
| 277 |
+ console.log('메인화면 그림문자 이미지 선택시 처리');
|
|
| 278 |
+ console.log('mainImgFlag : ' + mainImgFlag);
|
|
| 279 |
+ // var mainImgFlag = '${mainImgVO.mainImgFlag}';
|
|
| 282 | 280 |
if(mainImgFlag == 'Y'){
|
| 283 | 281 |
//카테고리 처리 |
| 284 |
- var cateNo = "${cateCodeVO.cateNo}";
|
|
| 282 |
+ // var cateNo = "${cateCodeVO.cateNo}";
|
|
| 285 | 283 |
$('.tDep2_cateCode').find('.on').removeClass('on');
|
| 286 | 284 |
$('.tDep2_cateCode a').each(function(index){
|
| 287 | 285 |
if($(this).attr('value') == cateNo){
|
... | ... | @@ -289,72 +287,84 @@ |
| 289 | 287 |
} |
| 290 | 288 |
}) |
| 291 | 289 |
|
| 292 |
- |
|
| 293 |
- var atchFileId = '${mainImgVO.atchFileId1}';
|
|
| 294 |
- var fileSn = '${mainImgVO.fileSn}';
|
|
| 295 |
- var strImgPath = '${mainImgVO.strImgPath}';
|
|
| 296 |
- |
|
| 297 |
- fnCustomImgSendMsg(atchFileId, fileSn, strImgPath); |
|
| 290 |
+ // var atchFileId = '${mainImgVO.atchFileId1}';
|
|
| 291 |
+ // var fileSn = '${mainImgVO.fileSn}';
|
|
| 292 |
+ // var strImgPath = '${mainImgVO.strImgPath}';
|
|
| 293 |
+ console.log('mainAtchFileId : ' + mainAtchFileId
|
|
| 294 |
+ + ' / mainFileSn : ' + mainFileSn |
|
| 295 |
+ + ' / mainStrImgPath : ' + mainStrImgPath |
|
| 296 |
+ ); |
|
| 297 |
+ fnCustomImgSendMsg(mainAtchFileId, mainFileSn, mainStrImgPath); |
|
| 298 | 298 |
|
| 299 | 299 |
} |
| 300 | 300 |
|
| 301 | 301 |
//메인화면 인기문자 메세지 선택시 처리 |
| 302 |
- var mainLetterFlag = '${mainLetterVO.mainLetterFlag}';
|
|
| 302 |
+ console.log('메인화면 인기문자 메세지 선택시 처리');
|
|
| 303 |
+ console.log('mainLetterFlag : ' + mainLetterFlag);
|
|
| 304 |
+ // var mainLetterFlag = '${mainLetterVO.mainLetterFlag}';
|
|
| 303 | 305 |
if(mainLetterFlag == 'Y'){
|
| 304 | 306 |
var letterTab = '0'; |
| 305 | 307 |
//문자샘플 활성화 처리 |
| 306 | 308 |
TabType2($('.tabType2 li').eq(0), '1');
|
| 307 | 309 |
//단문,장문 탭 활성화 처리 |
| 308 |
- var mainLetterTypeFlag = '${searchVO.mainLetterTypeFlag}';
|
|
| 310 |
+ // var mainLetterTypeFlag = '${searchVO.mainLetterTypeFlag}';
|
|
| 309 | 311 |
if(mainLetterTypeFlag == 'L'){
|
| 310 | 312 |
$('.tDep1_letType a').removeClass('on');
|
| 311 | 313 |
$('.tDep1_letType a').eq(1).addClass('on');
|
| 312 | 314 |
} |
| 313 | 315 |
//카테고리 활성화 처리 |
| 314 |
- var cateNo = "${cateCodeVO.cateNo}";
|
|
| 316 |
+ // var cateNo = "${cateCodeVO.cateNo}";
|
|
| 315 | 317 |
$('.tDep1_cateCode').find('.on').removeClass('on');
|
| 316 | 318 |
$('.tDep1_cateCode a').each(function(index){
|
| 317 | 319 |
if($(this).attr('value') == cateNo){
|
| 318 | 320 |
$(this).addClass('on');
|
| 319 | 321 |
} |
| 320 | 322 |
}) |
| 321 |
- var smsTxt = '${mainLetterVO.smsTxt}';
|
|
| 322 |
- if(smsTxt != null){
|
|
| 323 |
+ |
|
| 324 |
+ // var smsTxt = '${mainLetterVO.smsTxt}';
|
|
| 325 |
+ if(mainSmsTxt != null){
|
|
| 323 | 326 |
|
| 324 |
- smsTxt = smsTxt.replaceAll("<br/>", "\n"); //줄발꿈문자 변환하기
|
|
| 325 |
- $("#smsTxtArea").val(smsTxt);
|
|
| 326 |
- fnByteString(smsTxt); |
|
| 327 |
+ mainSmsTxt = mainSmsTxt.replaceAll("<br/>", "\n"); //줄발꿈문자 변환하기
|
|
| 328 |
+ $("#smsTxtArea").val(mainSmsTxt);
|
|
| 329 |
+ fnByteString(mainSmsTxt); |
|
| 327 | 330 |
|
| 328 | 331 |
} |
| 329 | 332 |
|
| 330 | 333 |
} |
| 331 | 334 |
|
| 332 |
- //맞춤제작 내보관함 이미지 선택시 처리 |
|
| 333 |
- var customImgFlag = '${customImgVO.customImgFlag}';
|
|
| 335 |
+ // 맞춤제작 내보관함 이미지 선택시 처리 |
|
| 336 |
+ console.log('커스텀 문자정보');
|
|
| 337 |
+ console.log('customImgFlag : ' + customImgFlag);
|
|
| 338 |
+ // var customImgFlag = '${customImgVO.customImgFlag}';
|
|
| 334 | 339 |
if(customImgFlag == 'Y'){
|
| 335 | 340 |
|
| 336 |
- var atchFileId = '${customImgVO.atchFileId1}';
|
|
| 337 |
- var fileSn = '${customImgVO.fileSn}';
|
|
| 338 |
- var strImgPath = '${customImgVO.strImgPath}';
|
|
| 339 |
- |
|
| 340 |
- fnCustomImgSendMsg(atchFileId, fileSn, strImgPath); |
|
| 341 |
+ //var atchFileId = '${customImgVO.atchFileId1}';
|
|
| 342 |
+ //var fileSn = '${customImgVO.fileSn}';
|
|
| 343 |
+ //var strImgPath = '${customImgVO.strImgPath}';
|
|
| 344 |
+ console.log(' customAtchFileId : ' + customAtchFileId
|
|
| 345 |
+ + ' / customFileSn : ' + customFileSn |
|
| 346 |
+ + ' / customStrImgPath : ' + customStrImgPath |
|
| 347 |
+ ); |
|
| 348 |
+ fnCustomImgSendMsg(customAtchFileId, customFileSn, customStrImgPath); |
|
| 341 | 349 |
|
| 342 | 350 |
} |
| 343 | 351 |
|
| 344 | 352 |
//문자 재전송 처리 |
| 345 |
- var msgResendFlag = '${reSendMsgVO.msgResendFlag}';
|
|
| 346 |
- var msgSeqList = []; |
|
| 347 |
- msgSeqList = '${reSendMsgVO.msgSeqList}';
|
|
| 353 |
+ console.log('문자 재전송 처리');
|
|
| 354 |
+ // var msgResendFlag = '${reSendMsgVO.msgResendFlag}';
|
|
| 355 |
+ // var msgSeqList = []; |
|
| 356 |
+ // msgSeqList = '${reSendMsgVO.msgSeqList}';
|
|
| 348 | 357 |
if(msgSeqList.length > 0){
|
| 349 |
- |
|
| 358 |
+ console.log('msgSeqList.length : ' + msgSeqList.length);
|
|
| 350 | 359 |
fnMsgResend(msgResendFlag, msgSeqList); |
| 351 | 360 |
|
| 352 | 361 |
} |
| 353 | 362 |
|
| 354 | 363 |
//주소록에서 주소를 전송한 경우 처리 |
| 355 |
- var moveAddrFlag = '${addrVO.moveAddrFlag}';
|
|
| 356 |
- var addrIdList = []; |
|
| 357 |
- addrIdList = '${addrVO.addrIdList}';
|
|
| 364 |
+ // var moveAddrFlag = '${addrVO.moveAddrFlag}';
|
|
| 365 |
+ // var addrIdList = []; |
|
| 366 |
+ // addrIdList = '${addrVO.addrIdList}';
|
|
| 367 |
+ console.log('주소록에서 주소를 전송한 경우 처리');
|
|
| 358 | 368 |
if(addrIdList.length > 0) {
|
| 359 | 369 |
fnAddrSet(moveAddrFlag, addrIdList); |
| 360 | 370 |
} |
... | ... | @@ -376,7 +386,6 @@ |
| 376 | 386 |
} |
| 377 | 387 |
|
| 378 | 388 |
function fnCustomImgSendMsg(atchFileId, fileSn, filePath){
|
| 379 |
- |
|
| 380 | 389 |
|
| 381 | 390 |
var imgId = ""; |
| 382 | 391 |
var imgSrc = ""; |
--- src/main/webapp/publish/css/content.css
+++ src/main/webapp/publish/css/content.css
... | ... | @@ -2353,6 +2353,18 @@ |
| 2353 | 2353 |
.spam_content .spam_conbox .spam_table tbody tr td{text-align: left;}
|
| 2354 | 2354 |
.spam_content .spam_conbox .spam_table tbody tr td li .conlist8{padding: 0 0 0 18px;}
|
| 2355 | 2355 |
|
| 2356 |
+/*발송결과 수정_2025*/ |
|
| 2357 |
+.price_wrap .table_tab_wrap .tab_btnbox .price_hover{width: 330px;}
|
|
| 2358 |
+.price_wrap .table_tab_wrap .tab_btnbox .price_hover .last{padding: 5px 0 0 0;}
|
|
| 2359 |
+ |
|
| 2360 |
+.price_wrap .current .tb_wrap .tType4 tbody tr .result_cont a{height: 16px;}
|
|
| 2361 |
+.price_wrap .current .tb_wrap .tType4 tbody tr .result_cont a:hover{text-decoration: underline;}
|
|
| 2362 |
+.price_wrap .current .tb_wrap .tType4 tbody tr .result_cont .icon_wrap{display: flex; align-items: center;}
|
|
| 2363 |
+.price_wrap .current .tb_wrap .tType4 tbody tr .result_cont .icon_wrap span{padding: 5px 8px; margin: 0 3px; border-radius: 20px; font-size: 14px;}
|
|
| 2364 |
+.price_wrap .current .tb_wrap .tType4 tbody tr .result_cont .icon_wrap .re{background-color: #e8f0ff; color: #2c5dd6;}
|
|
| 2365 |
+.price_wrap .current .tb_wrap .tType4 tbody tr .result_cont .icon_wrap .di{background-color: #e7f5ec; color: #359b59;}
|
|
| 2366 |
+ |
|
| 2367 |
+ |
|
| 2356 | 2368 |
@keyframes rotate-loading {
|
| 2357 | 2369 |
0% {transform:rotate(0)}
|
| 2358 | 2370 |
100% {transform:rotate(360deg);}
|
--- src/main/webapp/publish/css/popupLayer.css
+++ src/main/webapp/publish/css/popupLayer.css
... | ... | @@ -1234,6 +1234,14 @@ |
| 1234 | 1234 |
.adr_layer.adr_popup14 .cf_text_ul li{font-size:14px;color:#666;margin:0 0 5px 0;}
|
| 1235 | 1235 |
.adr_layer.adr_popup14 .cf_text_ul li:last-child{margin:0;}
|
| 1236 | 1236 |
|
| 1237 |
+/* 주소록 대량등록 팝업 헤더 수정 */ |
|
| 1238 |
+.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter{z-index: 1;}
|
|
| 1239 |
+.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter{z-index: 1;}
|
|
| 1240 |
+.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter{z-index: 1;}
|
|
| 1241 |
+.tabulator .tabulator-header .tabulator-col::after{position: absolute; content: " "; width: 100%; height: 14px; background-color: #e5e5e5; bottom: 0; left: 0; z-index: 0;}
|
|
| 1242 |
+.tabulator .tabulator-header .tabulator-col .tabulator-col-content{background-color: #ededed;}
|
|
| 1243 |
+.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title-holder .tabulator-col-title{position: relative; z-index: 1;}
|
|
| 1244 |
+ |
|
| 1237 | 1245 |
|
| 1238 | 1246 |
|
| 1239 | 1247 |
/* ie */ |
--- src/main/webapp/publish/guide_2022.html
+++ src/main/webapp/publish/guide_2022.html
... | ... | @@ -18,6 +18,7 @@ |
| 18 | 18 |
<!-- <p>***<span class="font1"> (컨텐츠)</span> : 반복적으로 사용 안함</p> |
| 19 | 19 |
<p>***<span class="font2"> (보드)</span> : 반복적으로 사용</p> --> |
| 20 | 20 |
<ul class="page"> |
| 21 |
+ <li><a href="/publish/textingmsg_2025_list.html">textingmsg_2025_list.html</a>[개선] 발송결과 수정</li> |
|
| 21 | 22 |
<li><a href="/publish/service3_spam_2024.html">service3_spam_2024.html</a>불법스팸방지정책 (2024.11.29)</li> |
| 22 | 23 |
<li><a href="/publish/service1_2024.html">service1_2024.html</a>이용약관 (2024.11.29)</li> |
| 23 | 24 |
<li><a href="/publish/service1_2023.html">service1_2023.html</a>이용약관 (2023.04.26~2024.11.28)</li> |
+++ src/main/webapp/publish/textingmsg_2025_list.html
... | ... | @@ -0,0 +1,948 @@ |
| 1 | +<!DOCTYPE html> | |
| 2 | +<html lang="ko"> | |
| 3 | + | |
| 4 | +<head> | |
| 5 | + <meta charset="UTF-8"> | |
| 6 | + <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
| 7 | + <title>문자온_발송결과</title> | |
| 8 | + | |
| 9 | + <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap" | |
| 10 | + rel="stylesheet"> | |
| 11 | + <link rel="stylesheet" href="/publish/css/reset.css"> | |
| 12 | + <link rel="stylesheet" href="/publish/css/jquery.mCustomScrollbar.css"> | |
| 13 | + <link rel="stylesheet" href="/publish/css/common.css"> | |
| 14 | + <link rel="stylesheet" href="/publish/css/button.css"> | |
| 15 | + <link rel="stylesheet" href="/publish/css/content.css"> | |
| 16 | + <link rel="stylesheet" href="/publish/css/mem.css"> | |
| 17 | + <link rel="stylesheet" href="/publish/css/font.css"> | |
| 18 | + <link rel="stylesheet" href="/publish/css/popupLayer.css"> | |
| 19 | + <link rel="stylesheet" href="/publish/js/datepicker/classic.css"> | |
| 20 | + <link rel="stylesheet" href="/publish/js/datepicker/classic.date.css"> | |
| 21 | + | |
| 22 | + | |
| 23 | + <script src="/publish/js/jquery-3.5.0.js"></script> | |
| 24 | + <script src="/publish/js/jquery.mCustomScrollbar.concat.min.js"></script> | |
| 25 | + <script src="/publish/js/common.js"></script> | |
| 26 | + <script src="/publish/js/content.js"></script> | |
| 27 | + <script src="/publish/js/popupLayer.js"></script> | |
| 28 | + <script type="text/javascript" src="/publish/js/datepicker/picker.js"></script> | |
| 29 | + <script type="text/javascript" src="/publish/js/datepicker/picker.date.js"></script> | |
| 30 | + <script type="text/javascript" src="/publish/js/datepicker/ko_KR.js"></script> | |
| 31 | + | |
| 32 | + <script> | |
| 33 | + $(document).ready(function () { | |
| 34 | + $(".table_tab_wrap .tab_depth1 a").click(function () { | |
| 35 | + var tab_num = $(this).index(); | |
| 36 | + $(".table_cont .tb_wrap").eq(tab_num).show(); | |
| 37 | + $(".table_cont .tb_wrap").eq(tab_num).siblings(".tb_wrap").hide(); | |
| 38 | + if($(".table_tab_wrap .tab_depth1 a:visible").length == tab_num+1){ | |
| 39 | + $(this).css("border-radius","0 5px 5px 0"); | |
| 40 | + }else{} | |
| 41 | + }) | |
| 42 | + }); | |
| 43 | + </script> | |
| 44 | + | |
| 45 | +</head> | |
| 46 | + | |
| 47 | +<body> | |
| 48 | + <div class="mask"></div> | |
| 49 | + | |
| 50 | + <!-- skip 메뉴 --> | |
| 51 | + <div class="skip_menu"> | |
| 52 | + <a href="#cont" title="본문 바로가기" class="contGo">본문 바로가기</a> | |
| 53 | + </div> | |
| 54 | + <!--// skip 메뉴 --> | |
| 55 | + <!-- quick 메뉴 --> | |
| 56 | + <div class="quickMenu"> | |
| 57 | + <div> | |
| 58 | + <p class="quick_title">QUICK<br>MENU</p> | |
| 59 | + <p class="quick_title2">QUICK</p> | |
| 60 | + <ul class="quickMenuIn"> | |
| 61 | + <li> | |
| 62 | + <a href="/publish/index.html"><i class="quick1"></i><span>이용안내</span></a> | |
| 63 | + <div class="hover_cont">이용안내</div> | |
| 64 | + </li> | |
| 65 | + <li> | |
| 66 | + <a href="#"><i class="quick2"></i><span>채팅상담</span></a> | |
| 67 | + <div class="hover_cont">채팅상담</div> | |
| 68 | + </li> | |
| 69 | + <li> | |
| 70 | + <a href="#"><i class="quick3"></i><span>원격지원</span></a> | |
| 71 | + <div class="hover_cont">원격지원</div> | |
| 72 | + </li> | |
| 73 | + <li> | |
| 74 | + <a href="#"><i class="quick4"></i><span>맞춤제작</span></a> | |
| 75 | + <div class="hover_cont">맞춤제작</div> | |
| 76 | + </li> | |
| 77 | + <li> | |
| 78 | + <a href="#"><i class="quick5"></i><span>주소록 등록</span></a> | |
| 79 | + <div class="hover_cont">주소록 등록</div> | |
| 80 | + </li> | |
| 81 | + <li> | |
| 82 | + <a href="#"><i class="quick6"></i><span>엑셀 전송</span></a> | |
| 83 | + <div class="hover_cont">엑셀 대량전송</div> | |
| 84 | + </li> | |
| 85 | + <li> | |
| 86 | + <a href="#"><i class="quick7"></i><span>견적서</span></a> | |
| 87 | + <div class="hover_cont">견적서</div> | |
| 88 | + </li> | |
| 89 | + <li> | |
| 90 | + <a href="#"><i class="quick8"></i><span>결제</span></a> | |
| 91 | + <div class="hover_cont">결제</div> | |
| 92 | + </li> | |
| 93 | + <li> | |
| 94 | + <a href="#"><i class="quick9"></i><span>영수증/계산서</span></a> | |
| 95 | + <div class="hover_cont">영수증/계산서</div> | |
| 96 | + </li> | |
| 97 | + </ul> | |
| 98 | + <button type="button" class="goTop" title="맨 위로 이동">TOP<i></i></button> | |
| 99 | + </div> | |
| 100 | + </div> | |
| 101 | + <!--// quick 메뉴 --> | |
| 102 | + <!-- header 영역 --> | |
| 103 | + <header id="header" class="header"> | |
| 104 | + <!-- header top 영역 --> | |
| 105 | + <div class="header_top"> | |
| 106 | + <div class="inner"> | |
| 107 | + <ul class="menu_left"> | |
| 108 | + <li><a href="#"><i class="hdTop_fav"></i>즐겨찾기추가</a></li> | |
| 109 | + <li><a href="#"><i class="hdTop_mypage"></i>마이페이지</a></li> | |
| 110 | + <li><a href="#"><i class="hdTop_center"></i>고객센터</a></li> | |
| 111 | + </ul> | |
| 112 | + <ul class="menu_right"> | |
| 113 | + <li><a href="#">충전하기</a></li> | |
| 114 | + <li class="SortLine"><a href="#">요금안내</a></li> | |
| 115 | + <li class="SortLine"><a href="#">이용안내</a></li> | |
| 116 | + <li class="SortLine"><a href="#">1:1고객상담</a></li> | |
| 117 | + </ul> | |
| 118 | + </div> | |
| 119 | + </div><!-- header top 영역 --> | |
| 120 | + <!-- header body 영역 --> | |
| 121 | + <div class="header_body"> | |
| 122 | + <div class="inner table"> | |
| 123 | + <h1 class="logo"><a href="/publish/index.html" alt="문자온 메인 바로가기"><img src="/publish/images/CI.png" | |
| 124 | + alt="문자온 CI"></a></h1> | |
| 125 | + <ul class="gnbWrap table_cell"> | |
| 126 | + <li><a href="#">문자발송</a></li> | |
| 127 | + <li><a href="#">선거문자</a></li> | |
| 128 | + <li><a href="#">맞춤제작</a></li> | |
| 129 | + <li><a href="#">비즈톡</a></li> | |
| 130 | + <li><a href="#">주소록 관리</a></li> | |
| 131 | + <li><a href="#">발송결과</a></li> | |
| 132 | + <li><a href="#">예약관리</a></li> | |
| 133 | + <li><a href="#">결제내역</a></li> | |
| 134 | + </ul> | |
| 135 | + <div class="s_menu"> | |
| 136 | + <i class="allSearch_info"><span>문자검색</span></i> | |
| 137 | + <button type="button" title="전체검색" class="allSearch" onclick="searchToggle();"><img | |
| 138 | + src="/publish/images/search.png" alt="검색영역 열기" class="allMenu"></button> | |
| 139 | + <button type="button" title="전체메뉴"><img src="/publish/images/all_menu.png" alt="전체메뉴 열기"></button> | |
| 140 | + </div> | |
| 141 | + </div> | |
| 142 | + <!-- search popup 영역 --> | |
| 143 | + <div class="pop_search"> | |
| 144 | + <div class="inner"> | |
| 145 | + <div class="area_search"> | |
| 146 | + <select name="" id=""> | |
| 147 | + <option value="">그림문자</option> | |
| 148 | + <option value="">단문문자</option> | |
| 149 | + <option value="">장문문자</option> | |
| 150 | + <option value="">GIF</option> | |
| 151 | + </select> | |
| 152 | + <input type="text" placeholder="문자샘플 검색하기"> | |
| 153 | + <button><img src="/publish/images/search02.png" alt=""></button> | |
| 154 | + </div> | |
| 155 | + <div class="area_popular"> | |
| 156 | + <p><i></i>인기검색어</p> | |
| 157 | + <ul class="popular_tag"> | |
| 158 | + <li><a href="#">#정월대보름</a></li> | |
| 159 | + <li class="on"><a href="#">#추석</a></li> | |
| 160 | + <li><a href="#">#가을인사</a></li> | |
| 161 | + <li><a href="#">#좋은하루</a></li> | |
| 162 | + </ul> | |
| 163 | + </div> | |
| 164 | + <button class="btn_close" onclick="searchToggle();"><img src="/publish/images/btn_searchclose.png" | |
| 165 | + alt=""></button> | |
| 166 | + </div> | |
| 167 | + </div> | |
| 168 | + <!--// search popup 영역 --> | |
| 169 | + </div> | |
| 170 | + <!--// header body 영역 --> | |
| 171 | + <div id="login" class="login"> | |
| 172 | + <div class="inner table"> | |
| 173 | + <div class="login_left table_cell"> | |
| 174 | + <div class="login_put"> | |
| 175 | + <label for="id_text" class="label"></label> | |
| 176 | + <input type="text" placeholder="아이디를 입력해주세요" id="id_text" class="id_text" maxlength="30" | |
| 177 | + size="18"> | |
| 178 | + <label for="password_text" class="label"></label> | |
| 179 | + <input type="password" placeholder="비밀번호를 입력해주세요" id="password_text" class="password_text" | |
| 180 | + maxlength="30" size="18"> | |
| 181 | + <label for="login_button" class="label"></label> | |
| 182 | + <button type="submit" class="btnType btnType1" class="login_button">로그인</button> | |
| 183 | + </div> | |
| 184 | + <div class="login_save"> | |
| 185 | + <input type="checkbox" id="save_id"> | |
| 186 | + <label for="save_id">아이디 저장</label> | |
| 187 | + </div> | |
| 188 | + <div class="login_find"> | |
| 189 | + <a href="#">아이디찾기 /</a> | |
| 190 | + <a href="#">비밀번호 찾기</a> | |
| 191 | + </div> | |
| 192 | + <div> | |
| 193 | + <button type="button" class="btnType btnType2">회원가입</button> | |
| 194 | + <button type="button" class="btnType btnType3">둘러보기</button> | |
| 195 | + </div> | |
| 196 | + </div> | |
| 197 | + <div class="login_right"> | |
| 198 | + <span><i></i>이달의 이벤트</span> | |
| 199 | + <button type="button" class="btnType btnType4">바로가기</button> | |
| 200 | + </div> | |
| 201 | + </div> | |
| 202 | + </div> | |
| 203 | + <!--// login 영역 --> | |
| 204 | + </header> | |
| 205 | + <!--// header 영역 --> | |
| 206 | + <!-- login 영역 --> | |
| 207 | + <!-- content 영역 --> | |
| 208 | + <div id="container" class="cont sub"> | |
| 209 | + <div class="inner"> | |
| 210 | + <!-- send top --> | |
| 211 | + <div class="send_top"> | |
| 212 | + <!-- 발송결과 화면 --> | |
| 213 | + <div class="rev_admin_cont serv_content current"> | |
| 214 | + <div class="heading"> | |
| 215 | + <h2>발송결과</h2> | |
| 216 | + </div> | |
| 217 | + | |
| 218 | + <div class="pay_tab_wrap"> | |
| 219 | + <!-- tab button --> | |
| 220 | + <ul class="tabType1"> | |
| 221 | + <li class="tab active"><button type="button" onclick="TabType5(this,'1');return false;">문자</button> | |
| 222 | + </li> | |
| 223 | + <li class="tab "><button type="button" | |
| 224 | + onclick="TabType5(this,'2');return false;">카카오톡</button></li> | |
| 225 | + </ul> | |
| 226 | + <!--// tab button --> | |
| 227 | + </div> | |
| 228 | + <div class="rev_content" id="tab5_1"> | |
| 229 | + <!-- 발송결과 개선 : 문구추가 --> | |
| 230 | + <div class="titBox_result"> | |
| 231 | + <p>- 최대 3개월간의 발송내역만 확인하실 수 있습니다.</p> | |
| 232 | + <p>- 전송내역이 필요한 경우 기간 내에 다운로드하여 주시기 바랍니다.</p> | |
| 233 | + <p>- 단문문자는 최대 24시간, 장문 및 그림문자는 최대 72시간까지 결과값이 수신되지 않은 경우 실패(비과금) 처리됩니다.</p> | |
| 234 | + </div> | |
| 235 | + <!--// 발송결과 개선 : 문구추가 --> | |
| 236 | + | |
| 237 | + <div class="excel_middle"> | |
| 238 | + <div class="select_btnWrap clearfix"> | |
| 239 | + <div class="btn_left"> | |
| 240 | + <span class="cal_label">기간선택</span> | |
| 241 | + <div class="calendar_wrap"> | |
| 242 | + <input type="text" class="startDate inp calendar picker__input" title="검색 시작일" | |
| 243 | + id="startDate" name="startDate" value="" data-datecontrol="true" readonly="" | |
| 244 | + aria-haspopup="true" aria-expanded="false" aria-readonly="false" | |
| 245 | + aria-owns="startDate_root"> | |
| 246 | + <span class="dateEtc">~</span> | |
| 247 | + <input type="text" class="endDate inp calendar picker__input" title="검색 종료일" | |
| 248 | + id="endDate" name="endDate" value="" data-datecontrol="true" readonly="" | |
| 249 | + aria-haspopup="true" aria-expanded="false" aria-readonly="false" | |
| 250 | + aria-owns="endDate_root"> | |
| 251 | + </div> | |
| 252 | + <button type="button">전월</button> | |
| 253 | + <button type="button">당월</button> | |
| 254 | + <button type="button">3개월</button> | |
| 255 | + <button type="button" class="btnType6">조회</button> | |
| 256 | + </div> | |
| 257 | + <div class="btn_right"> | |
| 258 | + <label for="" class="label">발송방식 전체 선택</label> | |
| 259 | + <select name="" id="" class="selType2 select_all_btn"> | |
| 260 | + <option value="">발송방식 전체</option> | |
| 261 | + <option value="">WEB</option> | |
| 262 | + <option value="">API</option> | |
| 263 | + </select> | |
| 264 | + <label for="" class="label">발신번호 선택</label> | |
| 265 | + <select name="" id="" class="selType2 select_btn"> | |
| 266 | + <option value="">발신번호</option> | |
| 267 | + <option value="">문자내용</option> | |
| 268 | + </select> | |
| 269 | + <div class="search"> | |
| 270 | + <label for="id" class="label"></label> | |
| 271 | + <input class="send_text" type="text" id="id" placeholder="검색어를 입력하세요." onfocus="this.placeholder=''" onblur="this.placeholder='검색어를 입력하세요.'"> | |
| 272 | + <button type="button" class="btnType btnType2">검색</button> | |
| 273 | + </div> | |
| 274 | + </div> | |
| 275 | + </div> | |
| 276 | + </div> | |
| 277 | + | |
| 278 | + <div class="rev_admin "> | |
| 279 | + <div class="rev_admin_in"> | |
| 280 | + <div class="rev_admin_top clearfix"> | |
| 281 | + <p>전체</p> | |
| 282 | + <p><span>134</span> 건</p> | |
| 283 | + </div> | |
| 284 | + | |
| 285 | + <div class="rev_admin_btm"> | |
| 286 | + <dl> | |
| 287 | + <dt>대기</dt> | |
| 288 | + <dd><span class="c_002c9a">3</span>건</dd> | |
| 289 | + </dl> | |
| 290 | + <dl> | |
| 291 | + <dt>성공</dt> | |
| 292 | + <dd><span class="c_002c9a">115</span>건</dd> | |
| 293 | + </dl> | |
| 294 | + <dl> | |
| 295 | + <dt>실패</dt> | |
| 296 | + <dd><span class="c_e40000">16</span>건</dd> | |
| 297 | + </dl> | |
| 298 | + </div> | |
| 299 | + </div> | |
| 300 | + <div class="rev_admin_in"> | |
| 301 | + <div class="rev_admin_top clearfix"> | |
| 302 | + <p>단문(SMS)</p> | |
| 303 | + <p><span>78</span> 건</p> | |
| 304 | + </div> | |
| 305 | + <div class="rev_admin_btm"> | |
| 306 | + <dl> | |
| 307 | + <dt>대기</dt> | |
| 308 | + <dd><span class="c_002c9a">0</span>건</dd> | |
| 309 | + </dl> | |
| 310 | + <dl> | |
| 311 | + <dt>성공</dt> | |
| 312 | + <dd><span class="c_002c9a">75</span>건</dd> | |
| 313 | + </dl> | |
| 314 | + <dl> | |
| 315 | + <dt>실패</dt> | |
| 316 | + <dd><span class="c_e40000">3</span>건</dd> | |
| 317 | + </dl> | |
| 318 | + </div> | |
| 319 | + </div> | |
| 320 | + <div class="rev_admin_in"> | |
| 321 | + <div class="rev_admin_top clearfix"> | |
| 322 | + <p>장문(LMS)</p> | |
| 323 | + <p><span>30</span> 건</p> | |
| 324 | + </div> | |
| 325 | + <div class="rev_admin_btm"> | |
| 326 | + <dl> | |
| 327 | + <dt>대기</dt> | |
| 328 | + <dd><span class="c_002c9a">0</span>건</dd> | |
| 329 | + </dl> | |
| 330 | + <dl> | |
| 331 | + <dt>성공</dt> | |
| 332 | + <dd><span class="c_002c9a">23</span>건</dd> | |
| 333 | + </dl> | |
| 334 | + <dl> | |
| 335 | + <dt>실패</dt> | |
| 336 | + <dd><span class="c_e40000">7</span>건</dd> | |
| 337 | + </dl> | |
| 338 | + </div> | |
| 339 | + </div> | |
| 340 | + <div class="rev_admin_in"> | |
| 341 | + <div class="rev_admin_top clearfix"> | |
| 342 | + <p>그림(MMS)</p> | |
| 343 | + <p><span>26</span> 건</p> | |
| 344 | + </div> | |
| 345 | + <div class="rev_admin_btm"> | |
| 346 | + <dl> | |
| 347 | + <dt>대기</dt> | |
| 348 | + <dd><span class="c_002c9a">3</span>건</dd> | |
| 349 | + </dl> | |
| 350 | + <dl> | |
| 351 | + <dt>성공</dt> | |
| 352 | + <dd><span class="c_002c9a">17</span>건</dd> | |
| 353 | + </dl> | |
| 354 | + <dl> | |
| 355 | + <dt>실패</dt> | |
| 356 | + <dd><span class="c_e40000">6</span>건</dd> | |
| 357 | + </dl> | |
| 358 | + </div> | |
| 359 | + </div> | |
| 360 | + </div> | |
| 361 | + | |
| 362 | + <div class="list_tab_wrap2 type4"> | |
| 363 | + <!-- tab button --> | |
| 364 | + <ul class="list_tab"> | |
| 365 | + <li class="tab active"><button type="button" onclick="listTab2(this,'1');">전체</button> | |
| 366 | + </li> | |
| 367 | + <li class="tab"><button type="button" onclick="listTab2(this,'2');">단문(SMS)</button> | |
| 368 | + </li> | |
| 369 | + <li class="tab"><button type="button" onclick="listTab2(this,'3');">장문(LMS)</button> | |
| 370 | + </li> | |
| 371 | + <li class="tab"><button type="button" onclick="listTab2(this,'4');">그림(MMS)</button> | |
| 372 | + </li> | |
| 373 | + </ul> | |
| 374 | + <!--// tab button --> | |
| 375 | + </div> | |
| 376 | + <!-- 발송관리 --> | |
| 377 | + <div class="price_history_cont price_wrap" id="listTab_2"> | |
| 378 | + | |
| 379 | + <div class="table_tab_wrap"> | |
| 380 | + <!-- tab button --> | |
| 381 | + <ul> | |
| 382 | + <li class="tab active"><button type="button">전체</button></li> | |
| 383 | + <li class="tab"><button type="button">즉시</button></li> | |
| 384 | + <li class="tab"><button type="button">예약</button></li> | |
| 385 | + </ul> | |
| 386 | + <!--// tab button --> | |
| 387 | + <!-- 발송화면 개선 : 발송결과 추가--> | |
| 388 | + <div class="tab_btnbox"> | |
| 389 | + <button type="button" class="btnType btnType14 check_validity">발송결과<i class="qmMark"></i></button> | |
| 390 | + <div class="info_hover_cont send_hover_cont price_hover"> | |
| 391 | + <dl> | |
| 392 | + <dt class="c_222">[<span>대기</span>]</dt> | |
| 393 | + <dd> | |
| 394 | + 발송은 성공하였으며, 수신자측 통신사로부터 수신여부를 확인중인 상태 <br> | |
| 395 | + <span>※ 예약문자의 경우 실발송 전까지는 “대기”로 표시</span> | |
| 396 | + </dd> | |
| 397 | + <dt class="c_002c9a">[<span>성공</span>]</dt> | |
| 398 | + <dd>발송 및 수신이 완료된 상태</dd> | |
| 399 | + <dt class="c_e40000">[<span>실패</span>]</dt> | |
| 400 | + <dd class="last">결번, 일시정지, 전화번호 오류 등의 사유로 발송이 | |
| 401 | + 불가한 상태</dd> | |
| 402 | + </dl> | |
| 403 | + </div> | |
| 404 | + </div> | |
| 405 | + <!--// 발송화면 개선 : 발송결과 추가--> | |
| 406 | + </div> | |
| 407 | + | |
| 408 | + <div class="table_cont current"> | |
| 409 | + <div class="list_info"> | |
| 410 | + <p>총 <span class="c_e40000">171</span>건</p> | |
| 411 | + <div> | |
| 412 | + <p class="cf_text c_e40000">※ 예약문자 발송취소는 예약 발송시간 기준 5분 전까지만 가능</p> | |
| 413 | + <label for="" class="label">카테고리 선택</label> | |
| 414 | + <label for="" class="label">줄보기 선택</label> | |
| 415 | + <select id="" class="selType2"> | |
| 416 | + <option>10개보기</option> | |
| 417 | + <option>20개보기</option> | |
| 418 | + </select> | |
| 419 | + </div> | |
| 420 | + </div> | |
| 421 | + <!-- 발송화면 개선 : 테이블 수정--> | |
| 422 | + <div class="tb_wrap"> | |
| 423 | + <table class="tType4"> | |
| 424 | + <colgroup> | |
| 425 | + <col style="width: 12%;"> | |
| 426 | + <col style="width: 7%;"> | |
| 427 | + <col style="width: auto;"> | |
| 428 | + <col style="width: 8%;"> | |
| 429 | + <col style="width: 8%;"> | |
| 430 | + <col style="width: 8%;"> | |
| 431 | + <col style="width: 8%;"> | |
| 432 | + <col style="width: 10%;"> | |
| 433 | + <col style="width: 10%;"> | |
| 434 | + </colgroup> | |
| 435 | + <thead> | |
| 436 | + <tr> | |
| 437 | + <th rowspan="2">발송일시 | |
| 438 | + <div class="sort_wrap"> | |
| 439 | + <input type="button" class="sort sortBtn" id="sort_reqdate"> | |
| 440 | + </div> | |
| 441 | + </th> | |
| 442 | + <th rowspan="2">형태 | |
| 443 | + <div class="sort_wrap"> | |
| 444 | + <input type="button" class="sort sortBtn" id="sort_orderByCode"> | |
| 445 | + </div> | |
| 446 | + </th> | |
| 447 | + <th rowspan="2">내용</th> | |
| 448 | + <th rowspan="2">발송건수 | |
| 449 | + <div class="sort_wrap"> | |
| 450 | + <input type="button" class="sort sortBtn" id="sort_msgGroupCnt"> | |
| 451 | + </div> | |
| 452 | + </th> | |
| 453 | + <th colspan="3">발송결과</th> | |
| 454 | + <th rowspan="2">금액(원)</th> | |
| 455 | + <th rowspan="2">진행상황</th> | |
| 456 | + </tr> | |
| 457 | + <tr> | |
| 458 | + <th>대기</th> | |
| 459 | + <th>성공</th> | |
| 460 | + <th>실패</th> | |
| 461 | + </tr> | |
| 462 | + </thead> | |
| 463 | + <tbody> | |
| 464 | + <tr> | |
| 465 | + <td>2024-01-09 17:42</td> | |
| 466 | + <td>단문</td> | |
| 467 | + <td class="result_cont"> | |
| 468 | + <div class="icon_wrap"> | |
| 469 | + <span class="re">예약</span> | |
| 470 | + <span class="di">분할</span> | |
| 471 | + <a href="#">내용을 클릭하면 상세보기 화면으로 이동합니다.</a> | |
| 472 | + </div> | |
| 473 | + </td> | |
| 474 | + <td>0</td> | |
| 475 | + <td> | |
| 476 | + <p class="c_666">0</p> | |
| 477 | + </td> | |
| 478 | + <td> | |
| 479 | + <p class="c_002c9a">0</p> | |
| 480 | + </td> | |
| 481 | + <td> | |
| 482 | + <p class="c_e40000">0</p> | |
| 483 | + </td> | |
| 484 | + <td> | |
| 485 | + 8,485,258 | |
| 486 | + </td> | |
| 487 | + <td> | |
| 488 | + <p><button class="btnType btnType20">예약취소</button></p> | |
| 489 | + </td> | |
| 490 | + </tr> | |
| 491 | + <tr> | |
| 492 | + <td>2024-01-09 17:42</td> | |
| 493 | + <td>단문</td> | |
| 494 | + <td class="result_cont"> | |
| 495 | + <div class="icon_wrap"> | |
| 496 | + <span class="re">예약</span> | |
| 497 | + <a href="#">내용을 클릭하면 상세보기 화면으로 이동합니다.</a> | |
| 498 | + </div> | |
| 499 | + </td> | |
| 500 | + <td>0</td> | |
| 501 | + <td> | |
| 502 | + <p class="c_666">0</p> | |
| 503 | + </td> | |
| 504 | + <td> | |
| 505 | + <p class="c_002c9a">0</p> | |
| 506 | + </td> | |
| 507 | + <td> | |
| 508 | + <p class="c_e40000">0</p> | |
| 509 | + </td> | |
| 510 | + <td>-</td> | |
| 511 | + <td>예약취소</td> | |
| 512 | + </tr> | |
| 513 | + <tr> | |
| 514 | + <td>2024-01-09 17:42</td> | |
| 515 | + <td>단문</td> | |
| 516 | + <td class="result_cont"> | |
| 517 | + <div class="icon_wrap"> | |
| 518 | + <a href="#">내용을 클릭하면 상세보기 화면으로 이동합니다.</a> | |
| 519 | + </div> | |
| 520 | + </td> | |
| 521 | + <td>458,002</td> | |
| 522 | + <td> | |
| 523 | + <p class="c_666">1</p> | |
| 524 | + </td> | |
| 525 | + <td> | |
| 526 | + <p class="c_002c9a">458,000</p> | |
| 527 | + </td> | |
| 528 | + <td> | |
| 529 | + <p class="c_e40000">1</p> | |
| 530 | + </td> | |
| 531 | + <td>12,580</td> | |
| 532 | + <td>진행중</td> | |
| 533 | + </tr> | |
| 534 | + <tr> | |
| 535 | + <td>2024-01-09 17:42</td> | |
| 536 | + <td>단문</td> | |
| 537 | + <td class="result_cont"> | |
| 538 | + <div class="icon_wrap"> | |
| 539 | + <a href="#">내용을 클릭하면 상세보기 화면으로 이동합니다.</a> | |
| 540 | + </div> | |
| 541 | + </td> | |
| 542 | + <td>458,002</td> | |
| 543 | + <td> | |
| 544 | + <p class="c_666">1</p> | |
| 545 | + </td> | |
| 546 | + <td> | |
| 547 | + <p class="c_002c9a">458,000</p> | |
| 548 | + </td> | |
| 549 | + <td> | |
| 550 | + <p class="c_e40000">1</p> | |
| 551 | + </td> | |
| 552 | + <td>12,580</td> | |
| 553 | + <td>완료</td> | |
| 554 | + </tr> | |
| 555 | + </tbody> | |
| 556 | + </table> | |
| 557 | + </div> | |
| 558 | + <!--// 발송화면 개선 : 테이블 수정--> | |
| 559 | + | |
| 560 | + <div class="table_btn clearfix"> | |
| 561 | + <!-- <div class="table_btn_left"> | |
| 562 | + <button type="button" data-tooltip="rev_popup02" class="btnType btnType15"><i class="add_img"></i>그룹등록</button> | |
| 563 | + <button type="button" class="btnType btnType15" onclick="javascript:fnDeleteAddrNo('groupList'); return false;"><i class="remove_img"></i>주소록에서 번호 삭제</button> | |
| 564 | + <button type="button" class="btnType btnType15" onclick="javascript:fnAddBlockNo('groupList'); return false;">수신거부번호 등록</button> | |
| 565 | + </div> | |
| 566 | + <div class="table_btn_right"> | |
| 567 | + <button type="button" class="excel_btn btnType"><i class="downroad"></i>엑셀 | |
| 568 | + 다운로드</button> | |
| 569 | + <button type="button" class="print_btn btnType"><i class="print_img"></i>발송결과 | |
| 570 | + 출력하기</button> | |
| 571 | + </div>--> | |
| 572 | + </div> | |
| 573 | + | |
| 574 | + <!-- pagination --> | |
| 575 | + <ul class="pagination"> | |
| 576 | + <li class="page_first"><button><img src="/publish/images/content/page_first.png" | |
| 577 | + alt=""></button></li> | |
| 578 | + <li class="page_prev"><button><img src="/publish/images/content/page_prev.png" | |
| 579 | + alt=""></button></li> | |
| 580 | + <li class="on"><button>1</button></li> | |
| 581 | + <li><button>2</button></li> | |
| 582 | + <li><button>3</button></li> | |
| 583 | + <li><button>4</button></li> | |
| 584 | + <li><button>5</button></li> | |
| 585 | + <li><button>6</button></li> | |
| 586 | + <li><button>7</button></li> | |
| 587 | + <li><button>8</button></li> | |
| 588 | + <li><button>9</button></li> | |
| 589 | + <li><button>10</button></li> | |
| 590 | + <li class="page_next"><button><img src="/publish/images/content/page_next.png" | |
| 591 | + alt=""></button></li> | |
| 592 | + <li class="page_last"><button><img src="/publish/images/content/page_last.png" | |
| 593 | + alt=""></button></li> | |
| 594 | + </ul><!-- pagination --> | |
| 595 | + | |
| 596 | + </div> | |
| 597 | + | |
| 598 | + | |
| 599 | + </div><!-- // 발송관리 --> | |
| 600 | + </div> | |
| 601 | + | |
| 602 | + <div class="rev_content kakao_rev_content" id="tab5_2" style="display: none;"> | |
| 603 | + <!-- 발송결과 개선 : 문구추가 --> | |
| 604 | + <div class="titBox_result"> | |
| 605 | + <p>- 최대 3개월간의 발송내역만 확인하실 수 있습니다.</p> | |
| 606 | + <p>- 전송내역이 필요한 경우 기간 내에 다운로드하여 주시기 바랍니다.</p> | |
| 607 | + <p>- 단문문자는 최대 24시간, 장문 및 그림문자는 최대 72시간까지 결과값이 수신되지 않은 경우 실패(비과금) 처리됩니다.</p> | |
| 608 | + </div> | |
| 609 | + <!--// 발송결과 개선 : 문구추가 --> | |
| 610 | + | |
| 611 | + <div class="excel_middle"> | |
| 612 | + <div class="select_btnWrap clearfix"> | |
| 613 | + <div class="btn_left"> | |
| 614 | + <span class="cal_label">기간선택</span> | |
| 615 | + <div class="calendar_wrap"> | |
| 616 | + <input type="text" class="startDate inp calendar picker__input" title="검색 시작일" | |
| 617 | + id="startDate" name="startDate" value="" data-datecontrol="true" readonly="" | |
| 618 | + aria-haspopup="true" aria-expanded="false" aria-readonly="false" | |
| 619 | + aria-owns="startDate_root"> | |
| 620 | + <span class="dateEtc">~</span> | |
| 621 | + <input type="text" class="endDate inp calendar picker__input" title="검색 종료일" | |
| 622 | + id="endDate" name="endDate" value="" data-datecontrol="true" readonly="" | |
| 623 | + aria-haspopup="true" aria-expanded="false" aria-readonly="false" | |
| 624 | + aria-owns="endDate_root"> | |
| 625 | + </div> | |
| 626 | + <button type="button">전월</button> | |
| 627 | + <button type="button">당월</button> | |
| 628 | + <button type="button">3개월</button> | |
| 629 | + <button type="button" class="btnType6">조회</button> | |
| 630 | + </div> | |
| 631 | + <div class="btn_right"> | |
| 632 | + <label for="" class="label">발신번호 선택</label> | |
| 633 | + <select name="" id="" class="selType2"> | |
| 634 | + <option value="">발신번호</option> | |
| 635 | + <option value="">발신번호</option> | |
| 636 | + <option value="">발신번호</option> | |
| 637 | + </select> | |
| 638 | + <div class="search"> | |
| 639 | + <label for="id" class="label"></label> | |
| 640 | + <input type="text" id="id" placeholder="검색어를 입력하세요." | |
| 641 | + onfocus="this.placeholder=''" onblur="this.placeholder='검색어를 입력하세요.'"> | |
| 642 | + <button type="button" class="btnType btnType2">검색</button> | |
| 643 | + </div> | |
| 644 | + </div> | |
| 645 | + </div> | |
| 646 | + </div> | |
| 647 | + | |
| 648 | + <div class="rev_admin"> | |
| 649 | + <div class="rev_admin_in"> | |
| 650 | + <div class="rev_admin_top clearfix"> | |
| 651 | + <p>전체</p> | |
| 652 | + <p><span>171</span> 건</p> | |
| 653 | + </div> | |
| 654 | + <div class="rev_admin_btm"> | |
| 655 | + <dl> | |
| 656 | + <dt>대기</dt> | |
| 657 | + <dd><span class="c_002c9a">160</span>건</dd> | |
| 658 | + </dl> | |
| 659 | + <dl> | |
| 660 | + <dt>성공</dt> | |
| 661 | + <dd><span class="c_002c9a">160</span>건</dd> | |
| 662 | + </dl> | |
| 663 | + <dl> | |
| 664 | + <dt>실패</dt> | |
| 665 | + <dd><span class="c_e40000">0</span>건</dd> | |
| 666 | + </dl> | |
| 667 | + </div> | |
| 668 | + </div> | |
| 669 | + <div class="rev_admin_in"> | |
| 670 | + <div class="rev_admin_top clearfix"> | |
| 671 | + <p>알림톡</p> | |
| 672 | + <p><span>171</span> 건</p> | |
| 673 | + </div> | |
| 674 | + <div class="rev_admin_btm"> | |
| 675 | + <dl> | |
| 676 | + <dt>대기</dt> | |
| 677 | + <dd><span class="c_002c9a">160</span>건</dd> | |
| 678 | + </dl> | |
| 679 | + <dl> | |
| 680 | + <dt>성공</dt> | |
| 681 | + <dd><span class="c_002c9a">160</span>건</dd> | |
| 682 | + </dl> | |
| 683 | + <dl> | |
| 684 | + <dt>실패</dt> | |
| 685 | + <dd><span class="c_e40000">0</span>건</dd> | |
| 686 | + </dl> | |
| 687 | + </div> | |
| 688 | + </div> | |
| 689 | + <!-- <div class="rev_admin_in"> | |
| 690 | + <div class="rev_admin_top clearfix"> | |
| 691 | + <p>친구톡</p> | |
| 692 | + <p><span>171</span> 건</p> | |
| 693 | + </div> | |
| 694 | + <div class="rev_admin_btm"> | |
| 695 | + <dl> | |
| 696 | + <dt>대기</dt> | |
| 697 | + <dd><span class="c_002c9a">160</span>건</dd> | |
| 698 | + </dl> | |
| 699 | + <dl> | |
| 700 | + <dt>성공</dt> | |
| 701 | + <dd><span class="c_002c9a">160</span>건</dd> | |
| 702 | + </dl> | |
| 703 | + <dl> | |
| 704 | + <dt>실패</dt> | |
| 705 | + <dd><span class="c_e40000">0</span>건</dd> | |
| 706 | + </dl> | |
| 707 | + </div> | |
| 708 | + </div> --> | |
| 709 | + </div> | |
| 710 | + | |
| 711 | + <div class="list_tab_wrap2 type4"> | |
| 712 | + <!-- tab button --> | |
| 713 | + <ul class="list_tab"> | |
| 714 | + <li class="tab active"><button type="button" onclick="listTab2(this,'1');">전체</button> | |
| 715 | + </li> | |
| 716 | + <li class="tab"><button type="button" onclick="listTab2(this,'2');">알림톡</button></li> | |
| 717 | + <li class="tab"><button type="button" onclick="listTab2(this,'3');">친구톡</button></li> | |
| 718 | + </ul> | |
| 719 | + <!--// tab button --> | |
| 720 | + </div> | |
| 721 | + <!-- 발송관리 > 전체 --> | |
| 722 | + <div class="price_history_cont" id="listTab_2"> | |
| 723 | + | |
| 724 | + <div class="table_tab_wrap"> | |
| 725 | + <!-- tab button --> | |
| 726 | + <ul> | |
| 727 | + <li class="tab active"><button type="button">전체</button></li> | |
| 728 | + <li class="tab"><button type="button">대기</button></li> | |
| 729 | + <li class="tab"><button type="button">성공</button></li> | |
| 730 | + <li class="tab"><button type="button">실패</button></li> | |
| 731 | + <li class="tab"><button type="button">예약</button></li> | |
| 732 | + </ul> | |
| 733 | + <!--// tab button --> | |
| 734 | + <!-- 발송화면 개선 : 발송결과 추가--> | |
| 735 | + <div class="tab_btnbox" style="z-index:999;"> | |
| 736 | + <button type="button" class="btnType btnType14 check_validity" >발송결과<i class="qmMark"></i></button> | |
| 737 | + <div class="info_hover_cont send_hover_cont"> | |
| 738 | + <dl> | |
| 739 | + <dt class="c_666">[<span>대기</span>]</dt> | |
| 740 | + <dd>발송은 성공하였으며, 수신자측 통신사로부터 수신여부를 | |
| 741 | + 확인중인 상태</dd> | |
| 742 | + <dt class="c_002c9a">[<span>성공</span>]</dt> | |
| 743 | + <dd>발송 및 수신이 완료된 상태</dd> | |
| 744 | + <dt class="c_e40000">[<span>실패</span>]</dt> | |
| 745 | + <dd>결번, 일시정지, 전화번호 오류 등의 사유로 발송이 | |
| 746 | + 불가한 상태</dd> | |
| 747 | + <dt class="c_222">[<span>예약</span>]</dt> | |
| 748 | + <dd>예약 발송 대기 상태</dd> | |
| 749 | + </dl> | |
| 750 | + </div> | |
| 751 | + </div> | |
| 752 | + <!--// 발송화면 개선 : 발송결과 추가--> | |
| 753 | + </div> | |
| 754 | + | |
| 755 | + <div class="table_cont current"> | |
| 756 | + <div class="list_info"> | |
| 757 | + <p>총 발송건수 <span class="c_e40000">171</span>건</p> | |
| 758 | + <div> | |
| 759 | + <p class="cf_text c_e40000">※ 예약문자 발송취소는 예약 발송시간 기준 5분 전까지만 가능</p> | |
| 760 | + <label for="" class="label">줄보기 선택</label> | |
| 761 | + <select id="" class="selType2"> | |
| 762 | + <option>10개보기</option> | |
| 763 | + <option>20개보기</option> | |
| 764 | + </select> | |
| 765 | + </div> | |
| 766 | + </div> | |
| 767 | + <!-- 발송화면 개선 : 카카오톡 테이블 수정 --> | |
| 768 | + <div class="tb_wrap"> | |
| 769 | + <table class="tType4"> | |
| 770 | + <colgroup> | |
| 771 | + <col style="width: 45px;"> | |
| 772 | + <col style="width: 12%;"> | |
| 773 | + <col style="width: 8%;"> | |
| 774 | + <col style="width: auto;"> | |
| 775 | + <col style="width: 8%;"> | |
| 776 | + <col style="width: 6%;"> | |
| 777 | + <col style="width: 6%;"> | |
| 778 | + <col style="width: 6%;"> | |
| 779 | + <col style="width: 6%;"> | |
| 780 | + <col style="width: 6%;"> | |
| 781 | + <col style="width: 6%;"> | |
| 782 | + <col style="width: 9%;"> | |
| 783 | + <col style="width: 11%;"> | |
| 784 | + </colgroup> | |
| 785 | + <thead> | |
| 786 | + <tr> | |
| 787 | + <th rowspan="2"> | |
| 788 | + <label for="" class="label">전체 선택</label> | |
| 789 | + <input type="checkbox"> | |
| 790 | + </th> | |
| 791 | + <th rowspan="2">발송일시 | |
| 792 | + <div class="sort_wrap"> | |
| 793 | + <input type="button" class="sort sortBtn" id="sort_reqdate"> | |
| 794 | + </div> | |
| 795 | + </th> | |
| 796 | + <th rowspan="2">형태 | |
| 797 | + <div class="sort_wrap"> | |
| 798 | + <input type="button" class="sort sortBtn" id="sort_orderByCode"> | |
| 799 | + </div> | |
| 800 | + </th> | |
| 801 | + <th rowspan="2">내용</th> | |
| 802 | + <th rowspan="2">발송건수 | |
| 803 | + <div class="sort_wrap"> | |
| 804 | + <input type="button" class="sort sortBtn" id="sort_msgGroupCnt"> | |
| 805 | + </div> | |
| 806 | + </th> | |
| 807 | + <th colspan="4">카카오톡 결과</th> | |
| 808 | + <th colspan="2">대체문자 결과</th> | |
| 809 | + <th rowspan="2">금액</th> | |
| 810 | + <th rowspan="2">예약관리</th> | |
| 811 | + </tr> | |
| 812 | + <tr> | |
| 813 | + <th>대기</th> | |
| 814 | + <th>성공</th> | |
| 815 | + <th>실패</th> | |
| 816 | + <th>예약</th> | |
| 817 | + <th>성공</th> | |
| 818 | + <th>실패</th> | |
| 819 | + </tr> | |
| 820 | + </thead> | |
| 821 | + <tbody> | |
| 822 | + <tr> | |
| 823 | + <td> | |
| 824 | + <label for="" class="label">선택</label> | |
| 825 | + <input type="checkbox"> | |
| 826 | + </td> | |
| 827 | + <td>2024-01-09 17:42</td> | |
| 828 | + <td>단문</td> | |
| 829 | + <td class="result_cont"><a href="#">내용을 클릭하면 상세보기 화면으로 이동합니다.</a></td> | |
| 830 | + <td>125,895</td> | |
| 831 | + <td> | |
| 832 | + <p class="c_666">0</p> | |
| 833 | + </td> | |
| 834 | + <td> | |
| 835 | + <p class="c_002c9a">0</p> | |
| 836 | + </td> | |
| 837 | + <td> | |
| 838 | + <p class="c_e40000">0</p> | |
| 839 | + </td> | |
| 840 | + <td> | |
| 841 | + <p class="c_002c9a">0</p> | |
| 842 | + </td> | |
| 843 | + <td> | |
| 844 | + <p class="c_002c9a">0</p> | |
| 845 | + </td> | |
| 846 | + <td> | |
| 847 | + <p class="c_e40000">125,895</p> | |
| 848 | + </td> | |
| 849 | + <td> | |
| 850 | + 8,485,258원 | |
| 851 | + </td> | |
| 852 | + <td> | |
| 853 | + <p><button class="btnType btnType20">예약취소</button></p> | |
| 854 | + </td> | |
| 855 | + </tr> | |
| 856 | + </tbody> | |
| 857 | + </table> | |
| 858 | + </div> | |
| 859 | + <!--// 발송화면 개선 : 카카오톡 테이블 수정 --> | |
| 860 | + | |
| 861 | + <div class="table_btn clearfix"> | |
| 862 | + <div class="table_btn_left"> | |
| 863 | + | |
| 864 | + <button type="button" data-tooltip="rev_popup02" class="btnType btnType15"><i | |
| 865 | + class="add_img"></i>그룹등록</button> | |
| 866 | + <button type="button" class="btnType btnType15"><i class="remove_img"></i>주소록에서 | |
| 867 | + 번호 삭제</button> | |
| 868 | + <button type="button" class="btnType btnType15">수신거부번호 등록</button> | |
| 869 | + </div> | |
| 870 | + <div class="table_btn_right"> | |
| 871 | + <button type="button" class="excel_btn btnType"><i class="downroad"></i>엑셀 | |
| 872 | + 다운로드</button> | |
| 873 | + <button type="button" class="print_btn btnType"><i class="print_img"></i>발송결과 | |
| 874 | + 출력하기</button> | |
| 875 | + </div> | |
| 876 | + </div> | |
| 877 | + | |
| 878 | + | |
| 879 | + <!-- pagination --> | |
| 880 | + <ul class="pagination"> | |
| 881 | + <li class="page_first"><button><img src="/publish/images/content/page_first.png" | |
| 882 | + alt=""></button></li> | |
| 883 | + <li class="page_prev"><button><img src="/publish/images/content/page_prev.png" | |
| 884 | + alt=""></button></li> | |
| 885 | + <li class="on"><button>1</button></li> | |
| 886 | + <li><button>2</button></li> | |
| 887 | + <li><button>3</button></li> | |
| 888 | + <li><button>4</button></li> | |
| 889 | + <li><button>5</button></li> | |
| 890 | + <li><button>6</button></li> | |
| 891 | + <li><button>7</button></li> | |
| 892 | + <li><button>8</button></li> | |
| 893 | + <li><button>9</button></li> | |
| 894 | + <li><button>10</button></li> | |
| 895 | + <li class="page_next"><button><img src="/publish/images/content/page_next.png" | |
| 896 | + alt=""></button></li> | |
| 897 | + <li class="page_last"><button><img src="/publish/images/content/page_last.png" | |
| 898 | + alt=""></button></li> | |
| 899 | + </ul><!-- pagination --> | |
| 900 | + | |
| 901 | + </div> | |
| 902 | + </div><!-- // 발송관리 > 전체 --> | |
| 903 | + </div> | |
| 904 | + | |
| 905 | + | |
| 906 | + </div> | |
| 907 | + </div> | |
| 908 | + <!--// send top --> | |
| 909 | + </div> | |
| 910 | + </div> | |
| 911 | + <!--// content 영역 --> | |
| 912 | + <!-- footer 영역 --> | |
| 913 | + <footer id="footer" class="footer" style="display:none;"> | |
| 914 | + <div class="footer_top"> | |
| 915 | + <div class="inner table"> | |
| 916 | + <ul class="table_cell"> | |
| 917 | + <li><a href="#">이용약관</a></li> | |
| 918 | + <li class="SortLine fwRg c_white"><a href="#">개인정보취급방침</a></li> | |
| 919 | + <li class="SortLine fwRg c_white"><a href="#">스팸관리정책</a></li> | |
| 920 | + <li class="SortLine"><a href="#">불법스팸예방안내</a></li> | |
| 921 | + </ul> | |
| 922 | + </div> | |
| 923 | + </div> | |
| 924 | + <div class="footer_body"> | |
| 925 | + <div class="inner table"> | |
| 926 | + <div class="table_cell"> | |
| 927 | + <a href="#" class="footer_logo"><img src="/publish/images/CI_white.png" alt="문자온 CI"></a> | |
| 928 | + <div class="footer_info"> | |
| 929 | + <p>주소 : 경기도 남양주시 다산중앙로 19번길 21 1027호, 1028호(블루웨일 지식산업센터 1차)</p> | |
| 930 | + <p>사업자번호 : 653-87-00858 | 대표 : 유인식 | 통신판매등록번호 : 제 다산-12345호 | 문의전화 : 070-4786-0007</p> | |
| 931 | + <p>Copyright 2020 ⓒ MUNJAON co. Ltd, All rights reserved.</p> | |
| 932 | + </div> | |
| 933 | + <div class="footer_service_center"> | |
| 934 | + <i></i> | |
| 935 | + <div> | |
| 936 | + <p>고객센터</p> | |
| 937 | + <span class="footer_service_num">070-4786-0008</span> | |
| 938 | + <span>E-mail : help@iten.co.kr</span> | |
| 939 | + </div> | |
| 940 | + </div> | |
| 941 | + </div> | |
| 942 | + </div> | |
| 943 | + </div> | |
| 944 | + </footer> | |
| 945 | + <!--// footer 영역 --> | |
| 946 | +</body> | |
| 947 | + | |
| 948 | +</html>(No newline at end of file) |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?