BenefitEnvsetForm.html 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444
  1. <!DOCTYPE html>
  2. <html lang="ko"
  3. xmlns:th="http://www.thymeleaf.org">
  4. <!--
  5. *******************************************************************************
  6. * @source : BenefieEnvsetForm.html
  7. * @desc : 회원혜택설정 Page
  8. *============================================================================
  9. * STYLE24
  10. * Copyright(C) 2020 TSIT, All rights reserved.
  11. *============================================================================
  12. * VER DATE AUTHOR DESCRIPTION
  13. * === =========== ========== =============================================
  14. * 1.0 2020.10.21 gagamel 최초 작성
  15. *******************************************************************************
  16. -->
  17. <div id="main">
  18. <!-- 메인타이틀 영역 -->
  19. <div class="main-title">
  20. </div>
  21. <!-- //메인타이틀 영역 -->
  22. <!-- 메뉴 설명 -->
  23. <div class="infoBox menu-desc">
  24. </div>
  25. <!-- //메뉴 설명 -->
  26. <!-- 검색조건 영역 -->
  27. <div class="panelStyle">
  28. <table class="frmStyle" aria-describedby="검색조건">
  29. <colgroup>
  30. <col style="width:10%;"/>
  31. <col/>
  32. </colgroup>
  33. <tr>
  34. <th>사이트</th>
  35. <td>
  36. <select name="siteCd" class="w150" onchange="fnSearch();">
  37. <option th:if="${siteList}" th:each="oneData, status : ${siteList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
  38. </select>
  39. </td>
  40. </tr>
  41. </table>
  42. </div>
  43. <!-- 검색조건 영역 -->
  44. <div class="panelStyle">
  45. <h4>[C11] 회원쿠폰</h4>
  46. <p class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i><a href="javascript:void(0);" onclick="fnClickLnb('S1003');"><span class="cRed">"운영관리 > 환경설정 > 회원등급정책관리"</span></a> 화면에서 등급별로 설정합니다.</p>
  47. <h4>[C12] 포인트소멸</h4>
  48. <button type="button" class="btn btn-success btn-ssm" onclick="fnSave('C12');">저장</button>
  49. <button type="button" class="btn btn-info btn-ssm" onclick="fnOpenEnvsetPopup('C12', '포인트소멸');">이력보기</button>
  50. <table class="frmStyle" aria-describedby="포인트 소멸">
  51. <colgroup>
  52. <col style="width: 15%;"/>
  53. <col/>
  54. </colgroup>
  55. <tbody>
  56. <tr>
  57. <th>구매포인트소멸기한(일)</th>
  58. <td>
  59. 적립일로부터 <input name="c12StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="구매포인트소멸기한(년)"/><span class="cRed">일</span> 경과 시 소멸합니다.
  60. </td>
  61. </tr>
  62. <tr>
  63. <th>상품평포인트소멸기한(일)</th>
  64. <td>
  65. 적립일로부터 <input name="c12StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="상품평포인트소멸기한(년)"/><span class="cRed">일</span> 경과 시 소멸합니다.
  66. </td>
  67. </tr>
  68. </tbody>
  69. </table>
  70. <h4>[C14] 구매포인트</h4>
  71. <button type="button" class="btn btn-success btn-ssm" onclick="fnSave('C14');">저장</button>
  72. <button type="button" class="btn btn-info btn-ssm" onclick="fnOpenEnvsetPopup('C14', '구매포인트');">이력보기</button>
  73. <table class="frmStyle" aria-describedby="구매포인트">
  74. <colgroup>
  75. <col style="width: 15%;"/>
  76. <col/>
  77. </colgroup>
  78. <tbody>
  79. <tr>
  80. <th>자사상품정상포인트적립율(PC)</th>
  81. <td>
  82. <input name="c14StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="자사상품정상포인트적립율(PC)"/><span class="cRed">%</span>
  83. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>자사 정상상품을 PC웹에서 구매 시 적립해 줄 포인트율입니다.</span>
  84. </td>
  85. </tr>
  86. <tr>
  87. <th>자사상품정상포인트적립율(모바일)</th>
  88. <td>
  89. <input name="c14StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="자사상품정상포인트적립율(모바일)"/><span class="cRed">%</span>
  90. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>자사 정상상품을 모바일에서 구매 시 적립해 줄 포인트율입니다.</span>
  91. </td>
  92. </tr>
  93. <tr>
  94. <th>자사상품이월포인트적립율(PC)</th>
  95. <td>
  96. <input name="c14StrSetVal3" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="자사상품이월포인트적립율(PC)"/><span class="cRed">%</span>
  97. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>자사 이월상품을 PC웹에서 구매 시 적립해 줄 포인트율입니다.</span>
  98. </td>
  99. </tr>
  100. <tr>
  101. <th>자사상품이월포인트적립율(모바일)</th>
  102. <td>
  103. <input name="c14StrSetVal4" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="자사상품이월포인트적립율(모바일)"/><span class="cRed">%</span>
  104. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>자사 이월상품을 모바일에서 구매 시 적립해 줄 포인트율입니다.</span>
  105. </td>
  106. </tr>
  107. <tr>
  108. <th>입점상품정상포인트적립율(PC)</th>
  109. <td>
  110. <input name="c14StrSetVal5" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="입점상품정상포인트적립율(PC)"/><span class="cRed">%</span>
  111. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>입점 정상상품을 PC웹에서 구매 시 적립해 줄 포인트율입니다.</span>
  112. </td>
  113. </tr>
  114. <tr>
  115. <th>입점상품정상포인트적립율(모바일)</th>
  116. <td>
  117. <input name="c14StrSetVal6" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="입점상품정상포인트적립율(모바일)"/><span class="cRed">%</span>
  118. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>입점 정상상품을 모바일에서 구매 시 적립해 줄 포인트율입니다.</span>
  119. </td>
  120. </tr>
  121. <tr>
  122. <th>입점상품이월포인트적립율(PC)</th>
  123. <td>
  124. <input name="c14StrSetVal7" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="입점상품이월포인트적립율(PC)"/><span class="cRed">%</span>
  125. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>입점 이월상품을 PC웹에서 구매 시 적립해 줄 포인트율입니다.</span>
  126. </td>
  127. </tr>
  128. <tr>
  129. <th>입점상품이월포인트적립율(모바일)</th>
  130. <td>
  131. <input name="c14StrSetVal8" type="text" class="w50 aR" maxlength="3" data-valid-type="preal" data-valid-name="입점상품이월포인트적립율(모바일)"/><span class="cRed">%</span>
  132. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>입점 이월상품을 모바일에서 구매 시 적립해 줄 포인트율입니다.</span>
  133. </td>
  134. </tr>
  135. </tbody>
  136. </table>
  137. <h4>[C15] 상품평포인트</h4>
  138. <button type="button" class="btn btn-success btn-ssm" onclick="fnSave('C15');">저장</button>
  139. <button type="button" class="btn btn-info btn-ssm" onclick="fnOpenEnvsetPopup('C15', '상품평포인트');">이력보기</button>
  140. <table class="frmStyle" aria-describedby="상품평포인트">
  141. <colgroup>
  142. <col style="width: 15%;"/>
  143. <col/>
  144. </colgroup>
  145. <tbody>
  146. <tr>
  147. <th>상품평등록가능기간(일)</th>
  148. <td>
  149. 상품평 등록가능 기간은 <span class="cRed">구매일</span>로부터 <input name="c15StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="상품평등록가능기간(일)"/><span class="cRed">일</span> 입니다. 등록가능기간 경과 시 등록 불가합니다.
  150. </td>
  151. </tr>
  152. <tr>
  153. <th>텍스트/포토상품평 포인트지급방법</th>
  154. <td>
  155. <label class="rdoBtn"><input type="radio" name="c15StrSetVal2" value="A" checked="checked"/>승인후지급</label>
  156. <label class="rdoBtn"><input type="radio" name="c15StrSetVal2" value="D">즉시지급</label>
  157. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>승인후지급 선택 시 <a href="javascript:void(0);" onclick="fnClickLnb('D3002');"><span class="cRed">"회원/마케팅 > 마케팅 > 상품평관리"</span></a> 메뉴에서 승인 시 지급됩니다.</span>
  158. </td>
  159. </tr>
  160. <tr>
  161. <th>텍스트상품평포인트</th>
  162. <td>
  163. <input name="c15StrSetVal3" type="text" class="w100 aR" maxlength="5" data-valid-type="pinteger" data-valid-name="텍스트상품평포인트"/>
  164. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>작성한 상품평이 텍스트일 경우 적립해 줄 포인트입니다.</span>
  165. </td>
  166. </tr>
  167. <tr>
  168. <th>포토상품평포인트</th>
  169. <td>
  170. <input name="c15StrSetVal4" type="text" class="w100 aR" maxlength="5" data-valid-type="pinteger" data-valid-name="포토상품평포인트"/>
  171. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>작성한 상품평이 포토일 경우 적립해 줄 포인트입니다.</span>
  172. </td>
  173. </tr>
  174. <tr>
  175. <th>베스트상품평포인트</th>
  176. <td>
  177. <input name="c15StrSetVal5" type="text" class="w100 aR" maxlength="5" data-valid-type="pinteger" data-valid-name="베스트상품평포인트"/>
  178. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>작성한 상품평이 베스트로 선정될 경우 적립해 줄 포인트입니다.</span>
  179. </td>
  180. </tr>
  181. </tbody>
  182. </table>
  183. <h4>[C17] 포인트사용</h4>
  184. <button type="button" class="btn btn-success btn-ssm" onclick="fnSave('C17');">저장</button>
  185. <button type="button" class="btn btn-info btn-ssm" onclick="fnOpenEnvsetPopup('C17', '포인트사용');">이력보기</button>
  186. <table class="frmStyle" aria-describedby="포인트사용">
  187. <colgroup>
  188. <col style="width: 15%;"/>
  189. <col/>
  190. </colgroup>
  191. <tbody>
  192. <tr>
  193. <th>포인트사용기준</th>
  194. <td>
  195. 실결제액 기준 <input name="c17StrSetVal1" type="text" class="w100 aR" maxlength="7" data-valid-type="pinteger" data-valid-name="포인트사용기준"/> <span class="cRed">원</span> 이상일 때 포인트 사용이 가능합니다.
  196. </td>
  197. </tr>
  198. <tr>
  199. <th>최대사용가능포인트율(%)</th>
  200. <td>
  201. 실결제액의 <input name="c17StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="최대사용가능포인트율"/> <span class="cRed">%</span> 까지 포인트 사용이 가능합니다.
  202. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>한 번의 결제 시 <span class="cRed">실결제액 기준</span>으로 사용할 수 있는 최대 포인트율을 설정합니다.</span>
  203. </td>
  204. </tr>
  205. <tr>
  206. <th>최대즉시사용포인트율(%)</th>
  207. <td>
  208. 포인트를 <input name="c17StrSetVal3" type="text" class="w50 aR" maxlength="3" data-valid-type="pinteger" data-valid-name="최대즉시사용포인트율"/> <span class="cRed">%</span> 이하로 즉시 사용할 수 있습니다.
  209. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>한 번의 결제 시 <span class="cRed">적립금액 기준</span>으로 즉시 사용할 수 있는 최대 포인트율을 설정합니다.</span>
  210. </td>
  211. </tr>
  212. </tbody>
  213. </table>
  214. </div>
  215. </div>
  216. <script th:inline="javascript">
  217. /*<![CDATA[*/
  218. // 조회
  219. var fnSearch = function() {
  220. var siteCd = $('select[name=siteCd]').val();
  221. var actionUrl = '/envset/' + siteCd;
  222. // 포인트소멸
  223. $.getJSON(actionUrl + '/C12'
  224. , function(result, status) {
  225. if (status === 'success') {
  226. if (!gagajf.isNull(result)) {
  227. $('input[name=c12StrSetVal1]').val(result.strSetVal1);
  228. $('input[name=c12StrSetVal2]').val(result.strSetVal2);
  229. }
  230. }
  231. });
  232. // 구매포인트
  233. $.getJSON(actionUrl + '/C14'
  234. , function(result, status) {
  235. if (status === 'success') {
  236. if (!gagajf.isNull(result)) {
  237. $('input[name=c14StrSetVal1]').val(result.strSetVal1);
  238. $('input[name=c14StrSetVal2]').val(result.strSetVal2);
  239. $('input[name=c14StrSetVal3]').val(result.strSetVal3);
  240. $('input[name=c14StrSetVal4]').val(result.strSetVal4);
  241. $('input[name=c14StrSetVal5]').val(result.strSetVal5);
  242. $('input[name=c14StrSetVal6]').val(result.strSetVal6);
  243. $('input[name=c14StrSetVal7]').val(result.strSetVal7);
  244. $('input[name=c14StrSetVal8]').val(result.strSetVal8);
  245. }
  246. }
  247. });
  248. // 상품평포인트
  249. $.getJSON(actionUrl + '/C15'
  250. , function(result, status) {
  251. if (status === 'success') {
  252. if (!gagajf.isNull(result)) {
  253. $('input[name=c15StrSetVal1]').val(result.strSetVal1);
  254. $("input:radio[name=c15StrSetVal2]").parents('td').find('label').removeClass('checked');
  255. if (result.strSetVal2 == 'Y') {
  256. $("input:radio[name=c15StrSetVal2]").eq(0).prop('checked', true);
  257. } else {
  258. $("input:radio[name=c15StrSetVal2]").eq(1).prop('checked', true);
  259. }
  260. $('input[name=c15StrSetVal3]').val(result.strSetVal3.addComma());
  261. $('input[name=c15StrSetVal4]').val(result.strSetVal4.addComma());
  262. $('input[name=c15StrSetVal5]').val(result.strSetVal5.addComma());
  263. }
  264. }
  265. });
  266. // 포인트사용
  267. $.getJSON(actionUrl + '/C17'
  268. , function(result, status) {
  269. if (status === 'success') {
  270. if (!gagajf.isNull(result)) {
  271. $('input[name=c17StrSetVal1]').val(result.strSetVal1.addComma());
  272. $('input[name=c17StrSetVal2]').val(result.strSetVal2);
  273. $('input[name=c17StrSetVal3]').val(result.strSetVal3);
  274. }
  275. }
  276. });
  277. }
  278. // 저장 처리
  279. var fnSave = function(envsetType) {
  280. var params = new Object();
  281. params.siteCd = $('select[name=siteCd]').val();
  282. params.envsetType = envsetType;
  283. if (envsetType == 'C12') { // 포인트소멸
  284. params.envsetNm = '포인트소멸';
  285. params.strSetVal1 = $('input[name=c12StrSetVal1]').val();
  286. params.strSetVal2 = $('input[name=c12StrSetVal2]').val();
  287. } else if (envsetType == 'C14') { // 구매포인트
  288. if ($('input[name=c14StrSetVal1]').val() > 100) {
  289. mcxDialog.alertC('자사상품정상포인트적립율(PC)은 최대 100 이하로 입력해 주세요.', {
  290. sureBtnText: "확인",
  291. sureBtnClick: function() {
  292. $('input[name=c14StrSetVal1]').focus();
  293. }
  294. });
  295. return;
  296. }
  297. if ($('input[name=c14StrSetVal2]').val() > 100) {
  298. mcxDialog.alertC('자사상품정상포인트적립율(모바일)은 최대 100 이하로 입력해 주세요.', {
  299. sureBtnText: "확인",
  300. sureBtnClick: function() {
  301. $('input[name=c14StrSetVal2]').focus();
  302. }
  303. });
  304. return;
  305. }
  306. if ($('input[name=c14StrSetVal3]').val() > 100) {
  307. mcxDialog.alertC('자사상품이월포인트적립율(PC)은 최대 100 이하로 입력해 주세요.', {
  308. sureBtnText: "확인",
  309. sureBtnClick: function() {
  310. $('input[name=c14StrSetVal3]').focus();
  311. }
  312. });
  313. return;
  314. }
  315. if ($('input[name=c14StrSetVal4]').val() > 100) {
  316. mcxDialog.alertC('자사상품이월포인트적립율(모바일)은 최대 100 이하로 입력해 주세요.', {
  317. sureBtnText: "확인",
  318. sureBtnClick: function() {
  319. $('input[name=c14StrSetVal4]').focus();
  320. }
  321. });
  322. return;
  323. }
  324. if ($('input[name=c14StrSetVal5]').val() > 100) {
  325. mcxDialog.alertC('입점상품정상포인트적립율(PC)은 최대 100 이하로 입력해 주세요.', {
  326. sureBtnText: "확인",
  327. sureBtnClick: function() {
  328. $('input[name=c14StrSetVal5]').focus();
  329. }
  330. });
  331. return;
  332. }
  333. if ($('input[name=c14StrSetVal6]').val() > 100) {
  334. mcxDialog.alertC('입점상품정상포인트적립율(모바일)은 최대 100 이하로 입력해 주세요.', {
  335. sureBtnText: "확인",
  336. sureBtnClick: function() {
  337. $('input[name=c14StrSetVal6]').focus();
  338. }
  339. });
  340. return;
  341. }
  342. if ($('input[name=c14StrSetVal7]').val() > 100) {
  343. mcxDialog.alertC('입점상품이월포인트적립율(PC)은 최대 100 이하로 입력해 주세요.', {
  344. sureBtnText: "확인",
  345. sureBtnClick: function() {
  346. $('input[name=c14StrSetVal7]').focus();
  347. }
  348. });
  349. return;
  350. }
  351. if ($('input[name=c14StrSetVal8]').val() > 100) {
  352. mcxDialog.alertC('입점상품이월포인트적립율(모바일)은 최대 100 이하로 입력해 주세요.', {
  353. sureBtnText: "확인",
  354. sureBtnClick: function() {
  355. $('input[name=c14StrSetVal8]').focus();
  356. }
  357. });
  358. return;
  359. }
  360. params.envsetNm = '구매포인트';
  361. params.strSetVal1 = $('input[name=c14StrSetVal1]').val();
  362. params.strSetVal2 = $('input[name=c14StrSetVal2]').val();
  363. params.strSetVal3 = $('input[name=c14StrSetVal3]').val();
  364. params.strSetVal4 = $('input[name=c14StrSetVal4]').val();
  365. params.strSetVal5 = $('input[name=c14StrSetVal5]').val();
  366. params.strSetVal6 = $('input[name=c14StrSetVal6]').val();
  367. params.strSetVal7 = $('input[name=c14StrSetVal7]').val();
  368. params.strSetVal8 = $('input[name=c14StrSetVal8]').val();
  369. } else if (envsetType == 'C15') { // 상품평포인트
  370. params.envsetNm = '상품평포인트';
  371. params.strSetVal1 = $('input[name=c15StrSetVal1]').val();
  372. params.strSetVal2 = $('input:radio[name=c15StrSetVal2]:checked').val();
  373. params.strSetVal3 = $('input[name=c15StrSetVal3]').val().removeComma();
  374. params.strSetVal4 = $('input[name=c15StrSetVal4]').val().removeComma();
  375. params.strSetVal5 = $('input[name=c15StrSetVal5]').val().removeComma();
  376. } else if (envsetType == 'C17') { // 포인트사용
  377. if ($('input[name=c17StrSetVal2]').val() > 100) {
  378. mcxDialog.alertC('최대사용가능포인트율(%)은 최대 100 이하로 입력해 주세요.', {
  379. sureBtnText: "확인",
  380. sureBtnClick: function() {
  381. $('input[name=c17StrSetVal2]').focus();
  382. }
  383. });
  384. return;
  385. }
  386. if ($('input[name=c17StrSetVal3]').val() > 100) {
  387. mcxDialog.alertC('최대즉시사용포인트율(%)은 최대 100 이하로 입력해 주세요.', {
  388. sureBtnText: "확인",
  389. sureBtnClick: function() {
  390. $('input[name=c17StrSetVal3]').focus();
  391. }
  392. });
  393. return;
  394. }
  395. params.envsetNm = '포인트사용';
  396. params.strSetVal1 = $('input[name=c17StrSetVal1]').val().removeComma();
  397. params.strSetVal2 = $('input[name=c17StrSetVal2]').val();
  398. params.strSetVal3 = $('input[name=c17StrSetVal3]').val();
  399. }
  400. var jsonData = JSON.stringify(params);
  401. gagajf.ajaxJsonSubmit('/envset/create', jsonData);
  402. }
  403. // 환경설정 이력보기 팝업
  404. var fnOpenEnvsetPopup = function(envsetType, envsetTypeNm) {
  405. var actionUrl = '/envset/history/form'
  406. + '?siteCd=' + $('select[name=siteCd]').val()
  407. + '&envsetType=' + envsetType
  408. + '&envsetTypeNm=' + encodeURIComponent(envsetTypeNm);
  409. cfnOpenModalPopup(actionUrl, 'popupEnvset');
  410. }
  411. $(document).ready(function() {
  412. $('select[name=siteCd]').trigger('change');
  413. });
  414. /*]]>*/
  415. </script>
  416. </html>