ITP_KOPER05010.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353
  1. const KOPER05010_GRID_ID = '#ITP_KOPER05010_jqGrid';
  2. const KOPER05010_GRID_LIST = '#ITP_KOPER05010_jqGrid_list';
  3. const KOPER05010_GRID_PAGER = '#ITP_KOPER05010_jqGridPager';
  4. const KOPER05010_GRID_EMPTY = '#ITP_KOPER05010_jqGridEmpty';
  5. let ITP_FORM_KOPER05010_DETAIL_IS_DUPLICATE = false;
  6. let ITP_FORM_KOPER05010_DETAIL_IS_WRITING = false;
  7. let VAN_GRID_LIST = '/api/vanInfo/grid-list';
  8. let VAN_INFO = '/api/vanInfo/info-vaninfo';
  9. let VAN_SAVE = '/api/vanInfo/save-vaninfo';
  10. let VAN_CHECK_DUPLICATE = '/api/vanInfo/check-duplicate';
  11. require(['config'], function() {
  12. require([
  13. 'jquery'
  14. ], function($) {
  15. // 버튼 권한설정
  16. fn_proc_btn_auth('KOPER05010');
  17. // 공통코드 표시
  18. //fn_make_select(CODE_LIST, 'USE_STAT_CD', 'ITP_FORM_KOPER05010_SEARCH_USE_STAT_CD');
  19. //fn_make_select(CODE_LIST, 'USE_STAT_CD', 'ITP_FORM_KOPER05010_DETAIL_USE_STAT_CD', true, '선택');
  20. //fn_make_select(CODE_LIST, 'SALES_TYPE_CD', 'ITP_FORM_KOPER05010_DETAIL_SALES_TYPE_CD', true, '선택');
  21. // 조회일자 지정
  22. // var now = new Date();
  23. //$('#ITP_TAB_KOPER05010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
  24. // $('#ITP_FORM_KOPER05010_SEARCH_FROM_DT').datepicker('setDate', new Date(now.setMonth(now.getMonth() - 1)));
  25. // $('#ITP_FORM_KOPER05010_SEARCH_TO_DT').datepicker('setDate', new Date());
  26. // 그리드
  27. itp_fn_jqgrid_resize(KOPER05010_GRID_ID, KOPER05010_GRID_LIST, 'lg');
  28. itp_fn_KOPER05010_grid.init();
  29. itp_fn_fire_window_resize();
  30. // 조회
  31. itp_fn_KOPER05010_search();
  32. // 조회 버튼 클릭
  33. $('#ITP_BTN_KOPER05010_SRH').on('click', function() {
  34. itp_KOPER05010_search = true;
  35. let param = $('#ITP_FORM_KOPER05010_SEARCH').serializeObject();
  36. param.gridSize = $.jgrid.defaults.rowNum;
  37. param.gridPage = $.jgrid.defaults.page;
  38. $(KOPER05010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
  39. });
  40. // 수정 버튼
  41. $('#ITP_BTN_KOPER05010_MODIFY').on('click', function() {
  42. itp_fn_form_clear_validate(null, '#ITP_FORM_KOPER05010_DETAIL');
  43. const vanCdVal = $('#ITP_FORM_KOPER05010_VIEW_VAN_CD').val();
  44. const key = {vanCd: vanCdVal, viewCd: 'R'};
  45. var param = $.param(key);
  46. itp_fn_KOPER05010_detail(param);
  47. });
  48. // 신규등록 버튼
  49. $('#ITP_BTN_KOPER05010_NEWREG').on('click', function() {
  50. itp_fn_KOPER05010_switch_screen('ADD');
  51. itp_fn_form_clear_validate(null, '#ITP_FORM_KOPER05010_DETAIL');
  52. });
  53. // 취소/목록 버튼
  54. $('#ITP_BTN_KOPER05010_CANCELLIST').on('click', function() {
  55. itp_fn_KOPER05010_search();
  56. });
  57. // 삭제 버튼
  58. $('#ITP_BTN_KOPER05010_DELETE').on('click', function() {
  59. });
  60. // 저장 버튼
  61. $('#ITP_BTN_KOPER05010_SAVE').on('click', function() {
  62. const formId = '#ITP_FORM_KOPER05010_DETAIL';
  63. itp_fn_form_clear_validate(null, formId);
  64. var vali_vanCd = itp_fn_form_validate(formId, formId + '_VAN_CD', ['empty'], undefined);
  65. var vali_vanNm = itp_fn_form_validate(formId, formId + '_VAN_NM', ['empty'], undefined);
  66. var vali_vanIp = itp_fn_form_validate(formId, formId + '_VAN_IP', ['empty'], undefined);
  67. var vali_vanPort = itp_fn_form_validate(formId, formId + '_VAN_PORT', ['empty'], undefined);
  68. if (vali_vanCd && vali_vanNm && vali_vanIp && vali_vanPort) {
  69. if (ITP_FORM_KOPER05010_DETAIL_IS_DUPLICATE) {
  70. itp_fn_modal_duplicate('VAN코드 중복체크를 해주세요.', formId + '_VAN_CD');
  71. } else {
  72. let param = $(formId).serializeObject();
  73. var searhFn = function() {
  74. ITP_FORM_KOPER05010_DETAIL_IS_WRITING = false;
  75. itp_fn_KOPER05010_search();
  76. };
  77. console.log(JSON.stringify(param));
  78. fn_ajax_call(VAN_SAVE, JSON.stringify(param), searhFn, 'POST');
  79. }
  80. }
  81. });
  82. // 중복체크
  83. $('#ITP_FORM_KOPER05010_DETAIL_DUP').on('click', function() {
  84. const formId = '#ITP_FORM_KOPER05010_DETAIL';
  85. itp_fn_form_clear_validate(null, formId + '_DETAIL');
  86. var vali_vanCd = itp_fn_form_validate(formId + '_DETAIL', formId + '_VAN_CD', ['empty'], undefined);
  87. if (vali_vanCd) {
  88. var dupFn = function(result) {
  89. if (result.code == 'N') {
  90. ITP_FORM_KOPER05010_DETAIL_IS_DUPLICATE = false;
  91. } else {
  92. ITP_FORM_KOPER05010_DETAIL_IS_DUPLICATE = true;
  93. }
  94. };
  95. const key = {'vanCd': $(formId + '_VAN_CD').val()};
  96. const param = $.param(key);
  97. fn_ajax_call(VAN_CHECK_DUPLICATE, param, dupFn, 'GET');
  98. }
  99. });
  100. });
  101. });
  102. var itp_fn_KOPER05010_switch_screen = function(mode) {
  103. if(mode == 'LIST') { // 목록
  104. $('#ITP_BTN_KOPER05010_MODIFY').hide();
  105. $('#ITP_BTN_KOPER05010_CANCELLIST').hide();
  106. $('#ITP_BTN_KOPER05010_DELETE').hide();
  107. $('#ITP_BTN_KOPER05010_SAVE').hide();
  108. fn_show_btn_auth('#ITP_BTN_KOPER05010_SRH');
  109. fn_show_btn_auth('#ITP_BTN_KOPER05010_NEWREG');
  110. $('#ITP_AJAX_KOPER05010_LIST_CONTAINER').show();
  111. $('#ITP_AJAX_KOPER05010_DETAIL_CONTAINER').hide();
  112. $('#ITP_AJAX_KOPER05010_VIEW_CONTAINER').hide();
  113. } else if(mode == 'ADD') { // 등록
  114. ITP_FORM_KOPER05010_DETAIL_IS_DUPLICATE = true;
  115. $('#ITP_BTN_KOPER05010_SRH').hide();
  116. $('#ITP_BTN_KOPER05010_MODIFY').hide();
  117. $('#ITP_BTN_KOPER05010_NEWREG').hide();
  118. $('#ITP_BTN_KOPER05010_DELETE').hide();
  119. fn_show_btn_auth('#ITP_BTN_KOPER05010_CANCELLIST');
  120. fn_show_btn_auth('#ITP_BTN_KOPER05010_SAVE');
  121. $('#ITP_AJAX_KOPER05010_LIST_CONTAINER').hide();
  122. $('#ITP_AJAX_KOPER05010_DETAIL_CONTAINER').show();
  123. $('#ITP_AJAX_KOPER05010_VIEW_CONTAINER').hide();
  124. $('#ITP_FORM_KOPER05010_DETAIL_VAN_CD').removeAttr('readonly');
  125. $('#ITP_FORM_KOPER05010_DETAIL_DUP').removeAttr('disabled');
  126. $('#ITP_FORM_KOPER05010_DETAIL_VIEW_CD').val('C');
  127. $('#ITP_FORM_KOPER05010_DETAIL_VAN_CD').val('');
  128. $('#ITP_FORM_KOPER05010_DETAIL_VAN_NM').val('');
  129. $('#ITP_FORM_KOPER05010_DETAIL_VAN_IP').val('');
  130. $('#ITP_FORM_KOPER05010_DETAIL_VAN_PORT').val('');
  131. } else if(mode == 'MODIFY') { // 수정
  132. $('#ITP_BTN_KOPER05010_SRH').hide();
  133. $('#ITP_BTN_KOPER05010_MODIFY').hide();
  134. $('#ITP_BTN_KOPER05010_NEWREG').hide();
  135. $('#ITP_BTN_KOPER05010_DELETE').hide();
  136. fn_show_btn_auth('#ITP_BTN_KOPER05010_CANCELLIST');
  137. fn_show_btn_auth('#ITP_BTN_KOPER05010_SAVE');
  138. $('#ITP_AJAX_KOPER05010_LIST_CONTAINER').hide();
  139. $('#ITP_AJAX_KOPER05010_DETAIL_CONTAINER').show();
  140. $('#ITP_AJAX_KOPER05010_VIEW_CONTAINER').hide();
  141. $('#ITP_FORM_KOPER05010_DETAIL_VAN_CD').attr('readonly', true);
  142. $('#ITP_FORM_KOPER05010_DETAIL_DUP').attr('disabled', true);
  143. } else if(mode == 'VIEW') { // 보기
  144. $('#ITP_BTN_KOPER05010_SRH').hide();
  145. $('#ITP_BTN_KOPER05010_NEWREG').hide();
  146. $('#ITP_BTN_KOPER05010_DELETE').hide();
  147. $('#ITP_BTN_KOPER05010_SAVE').hide();
  148. fn_show_btn_auth('#ITP_BTN_KOPER05010_MODIFY');
  149. fn_show_btn_auth('#ITP_BTN_KOPER05010_CANCELLIST');
  150. $('#ITP_AJAX_KOPER05010_LIST_CONTAINER').hide();
  151. $('#ITP_AJAX_KOPER05010_DETAIL_CONTAINER').hide();
  152. $('#ITP_AJAX_KOPER05010_VIEW_CONTAINER').show();
  153. }
  154. };
  155. var itp_fn_KOPER05010_grid = {
  156. init: function() {
  157. // 데이터 없을때
  158. itp_fn_KOPER05010_empty.push();
  159. $(KOPER05010_GRID_EMPTY).on('click', function() {
  160. itp_fn_KOPER05010_empty.back();
  161. itp_KOPER05010_param.gridSize = $.jgrid.defaults.rowNum;
  162. $(KOPER05010_GRID_ID).setGridParam({'postData': JSON.stringify(itp_KOPER05010_param)}).trigger('reloadGrid');
  163. });
  164. },
  165. callBack: function() {
  166. let param = $('#ITP_FORM_KOPER05010_SEARCH').serializeObject();
  167. param.gridSize = $.jgrid.defaults.rowNum;
  168. $(KOPER05010_GRID_ID).jqGrid({
  169. colModel: [
  170. {
  171. index: 'VAN_CD', name: 'vanCd',
  172. label: 'VAN코드',
  173. width: '6', fixed: false, align: 'center',
  174. sortable: false, hidden: false
  175. },
  176. {
  177. index: 'VAN_NM', name: 'vanNm',
  178. label: 'VAN명',
  179. width: '10', fixed: false, align: 'center',
  180. sortable: false, hidden: false
  181. },
  182. {
  183. index: 'VAN_IP', name: 'vanIp',
  184. label: 'IP',
  185. width: '6', fixed: false, align: 'center',
  186. sortable: false, hidden: false
  187. },
  188. {
  189. index: 'VAN_PORT', name: 'vanPort',
  190. label: 'PORT',
  191. width: '6', fixed: false, align: 'center',
  192. sortable: false, hidden: false
  193. },
  194. {
  195. index: 'ADD_DT', name: 'addDt',
  196. label: '등록일자',
  197. width: '8', fixed: false, align: 'center',
  198. sortable: false, hidden: false
  199. }
  200. ],
  201. loadBeforeSend: function(jqXHR) {
  202. jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
  203. },
  204. postData: JSON.stringify(param),
  205. url: DOMAIN + VAN_GRID_LIST,
  206. pager: KOPER05010_GRID_PAGER,
  207. multiselect: false,
  208. rownumbers: true,
  209. onCellSelect: function(rowId, cellIdx, cellValue) {
  210. var cm = $(this).jqGrid('getGridParam', 'colModel');
  211. var colNm = cm[cellIdx].name;
  212. if (colNm == 'vanCd') {
  213. const vanCdVal = $(this).jqGrid('getCell', rowId, 'vanCd');
  214. const key = {vanCd: vanCdVal, viewCd: 'R'};
  215. var param = $.param(key);
  216. itp_fn_KOPER05010_view(param);
  217. }
  218. },
  219. loadComplete: function(data) {
  220. console.log(JSON.stringify(data));
  221. itp_fn_grid_load_complete(data, KOPER05010_GRID_ID, true, 'number', 'KOPER05010', itp_KOPER05010_search, itp_fn_KOPER05010_empty, true, data.gridRecords, true);
  222. var ids = $(KOPER05010_GRID_ID).getDataIDs();
  223. $.each(ids, function(idx, rowId) {
  224. $(KOPER05010_GRID_ID).jqGrid('setCell', rowId, 'vanCd', '', ITP_GRID_COL_STYLE.link);
  225. });
  226. },
  227. loadError: function(jqXHR, textStatus, errorThrown) {
  228. itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
  229. },
  230. onPaging: function(action) {
  231. itp_fn_grid_paging(KOPER05010_GRID_ID, action, param);
  232. }
  233. }).navGrid(KOPER05010_GRID_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
  234. },
  235. clearData : function() {
  236. $(KOPER05010_GRID_ID).jqGrid('clearGridData', true);
  237. $(KOPER05010_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
  238. $(KOPER05010_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
  239. $(KOPER05010_GRID_EMPTY).show();
  240. },
  241. unload : function() {
  242. $.jgrid.gridUnload(KOPER05010_GRID_ID);
  243. }
  244. };
  245. var itp_fn_KOPER05010_search = function() {
  246. itp_fn_KOPER05010_switch_screen('LIST');
  247. itp_fn_KOPER05010_grid.unload();
  248. itp_fn_KOPER05010_grid.callBack();
  249. };
  250. let itp_KOPER05010_param = {};
  251. let itp_KOPER05010_search = false;
  252. var itp_fn_KOPER05010_empty = {
  253. push: function() {
  254. let param = $('#ITP_FORM_KOPER05010_SEARCH').serializeObject();
  255. itp_KOPER05010_param = param;
  256. }
  257. };
  258. var itp_fn_KOPER05010_view = function(param) {
  259. fn_ajax_call(VAN_INFO, param, itp_fn_KOPER05010_view_callback, 'GET');
  260. };
  261. var itp_fn_KOPER05010_view_callback = function(result) {
  262. // console.log(result);
  263. itp_fn_KOPER05010_switch_screen('VIEW');
  264. $('#ITP_FORM_KOPER05010_VIEW #ITP_FORM_KOPER05010_VIEW_VAN_CD').val(result.vanCd);
  265. $('#ITP_FORM_KOPER05010_VIEW .fnVanCd').text(result.vanCd);
  266. $('#ITP_FORM_KOPER05010_VIEW .fnVanNm').text(result.vanNm);
  267. $('#ITP_FORM_KOPER05010_VIEW .fnVanIp').text(result.vanIp);
  268. $('#ITP_FORM_KOPER05010_VIEW .fnVanPort').text(result.vanPort);
  269. $('#ITP_FORM_KOPER05010_VIEW .fnAddDt').text(result.addDt);
  270. $('#ITP_FORM_KOPER05010_VIEW .fnChgDt').text(result.chgDt);
  271. $('#ITP_FORM_KOPER05010_VIEW .fnVanData1').text(result.vanData1);
  272. $('#ITP_FORM_KOPER05010_VIEW .fnVanData2').text(result.vanData2);
  273. $('#ITP_FORM_KOPER05010_VIEW .fnVanData3').text(result.vanData3);
  274. $('#ITP_FORM_KOPER05010_VIEW .fnVanData4').text(result.vanData4);
  275. $('#ITP_FORM_KOPER05010_VIEW .fnVanData5').text(result.vanData5);
  276. };
  277. var itp_fn_KOPER05010_detail = function(param) {
  278. fn_ajax_call(VAN_INFO, param, itp_fn_KOPER05010_detail_callback, 'GET');
  279. };
  280. var itp_fn_KOPER05010_detail_callback = function(result) {
  281. console.log(result);
  282. itp_fn_KOPER05010_switch_screen('MODIFY');
  283. $('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VIEW_CD').val('U');
  284. //$('#ITP_FORM_KOPER05010_VIEW #ITP_FORM_KOPER05010_VIEW_VAN_CD').val(result.vanCd);
  285. $('#ITP_FORM_KOPER05010_VIEW .fnVanCd').text(result.vanCd);
  286. $('#ITP_FORM_KOPER05010_VIEW .fnVanNm').text(result.vanNm);
  287. $('#ITP_FORM_KOPER05010_VIEW .fnVanIp').text(result.vanIp);
  288. $('#ITP_FORM_KOPER05010_VIEW .fnVanPort').text(result.vanPort);
  289. $('#ITP_FORM_KOPER05010_VIEW .fnAddDt').text(result.addDt);
  290. $('#ITP_FORM_KOPER05010_VIEW .fnChgDt').text(result.chgDt);
  291. $('#ITP_FORM_KOPER05010_VIEW .fnVanData1').text(result.vanData1);
  292. $('#ITP_FORM_KOPER05010_VIEW .fnVanData2').text(result.vanData2);
  293. $('#ITP_FORM_KOPER05010_VIEW .fnVanData3').text(result.vanData3);
  294. $('#ITP_FORM_KOPER05010_VIEW .fnVanData4').text(result.vanData4);
  295. $('#ITP_FORM_KOPER05010_VIEW .fnVanData5').text(result.vanData5);
  296. $('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VAN_CD').val(result.vanCd);
  297. $('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VAN_NM').val(result.vanNm);
  298. $('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VAN_IP').val(result.vanIp);
  299. $('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VAN_PORT').val(result.vanPort);
  300. $('#ITP_FORM_KOPER05010_DETAIL .fnAddDt').text(result.addDt);
  301. $('#ITP_FORM_KOPER05010_DETAIL .fnChgDt').text(result.chgDt);
  302. $('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VAN_DATA1').val(result.vanData1);
  303. $('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VAN_DATA2').val(result.vanData2);
  304. $('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VAN_DATA3').val(result.vanData3);
  305. $('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VAN_DATA4').val(result.vanData4);
  306. $('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VAN_DATA5').val(result.vanData5);
  307. };