ITP_VENDINFO03010.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313
  1. require(['config'], function() {
  2. require([
  3. ], function($) {
  4. pageObj.init();
  5. });
  6. });
  7. // 화면변수
  8. const VENDINFO03010_GRID_ID = '#ITP_VENDINFO03010_jqGrid';
  9. const VENDINFO03010_GRID_LIST = '#ITP_VENDINFO03010_jqGrid_list';
  10. const VENDINFO03010_GRID_PAGER = '#ITP_VENDINFO03010_jqGridPager';
  11. const VENDINFO03010_GRID_EMPTY = '#ITP_VENDINFO03010_jqGridEmpty';
  12. // API URL
  13. let API_ITEMUNIT_SPPLY_GRID_LIST = '/api/itemunit/spply-grid-list';
  14. // 화면 grid ColModel
  15. const gridColModel = {
  16. list:[
  17. {
  18. index: 'ITEM_ID', name: 'itemId',
  19. label: ITP_MSG_LOCALE.label.itemId, //품목번호
  20. width: '10', fixed: false, align: 'center',
  21. sortable: false, hidden: false
  22. },
  23. {
  24. index: 'ITEM_NM', name: 'itemNm',
  25. label: ITP_MSG_LOCALE.label.itemNm, //품목명
  26. width: '8', fixed: false, align: 'center',
  27. sortable: false, hidden: false
  28. },
  29. {
  30. index: 'UNIT', name: 'unit',
  31. label: ITP_MSG_LOCALE.label.unit, //기본단위
  32. width: '7', fixed: false, align: 'center',
  33. sortable: false, hidden: false
  34. },
  35. {
  36. index: 'STDD_QTY', name: 'stddQty',
  37. label: ITP_MSG_LOCALE.label.stddQty, //기준수량
  38. width: '7', fixed: false, align: 'center',
  39. sortable: false, hidden: false
  40. },
  41. {
  42. index: 'CURR', name: 'curr',
  43. label: ITP_MSG_LOCALE.label.curr, //통화
  44. width: '7', fixed: false, align: 'center',
  45. sortable: false, hidden: false
  46. },
  47. {
  48. index: 'UNIT_AMT', name: 'unitAmt',
  49. label: ITP_MSG_LOCALE.label.unitAmt, //단가
  50. width: '7', fixed: false, align: 'center',
  51. sortable: false, hidden: false
  52. },
  53. {
  54. index: 'CONT_STT_DT', name: 'contSttDt',
  55. label: ITP_MSG_LOCALE.label.contSttDt, //시작일
  56. width: '8', fixed: false, align: 'center',
  57. sortable: false, hidden: false
  58. },
  59. {
  60. index: 'CONT_END_DT', name: 'contEndDt',
  61. label: ITP_MSG_LOCALE.label.contEndDt, //종료일
  62. width: '8', fixed: false, align: 'center',
  63. sortable: false, hidden: false
  64. },
  65. {
  66. index: 'LEAD_TIME', name: 'leadTime',
  67. label: ITP_MSG_LOCALE.label.leadTime, //리드타임 (Day)
  68. width: '7', fixed: false, align: 'center',
  69. sortable: false, hidden: false
  70. },
  71. {
  72. index: 'REG_DT', name: 'regDt',
  73. label: ITP_MSG_LOCALE.label.regDt, //등록일
  74. width: '8', fixed: false, align: 'center',
  75. sortable: false, hidden: false
  76. },
  77. {
  78. index: 'UNIT_ST_NM', name: 'unitStNm',
  79. label: ITP_MSG_LOCALE.label.status, //상태
  80. width: '7', fixed: false, align: 'center',
  81. sortable: false, hidden: false
  82. },
  83. {
  84. index: 'SPPLY_ITME_ID', name: 'spplyItemId',
  85. label: ITP_MSG_LOCALE.label.spplyItemId, //공급사품번
  86. width: '8', fixed: false, align: 'center',
  87. sortable: false, hidden: false
  88. }
  89. ],
  90. datail:[]
  91. }
  92. /*화면공통 Object*/
  93. let pageObj = {
  94. init: function () {
  95. this.ui.init();
  96. this.event.init();
  97. },
  98. ui: {
  99. init: function () {
  100. this.view();
  101. this.grid();
  102. this.ready();
  103. },
  104. view: function() {
  105. // 버튼 권한설정
  106. fn_proc_btn_auth('VENDINFO03010');
  107. // 공통코드 표시
  108. $('select').each(function() {
  109. if($(this).data('select-code')) {
  110. fn_make_select(CODE_LIST, $(this).data('select-code'), $(this).attr('id'));
  111. }
  112. });
  113. // 조회일자 지정
  114. $('#ITP_TAB_VENDINFO03010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
  115. },
  116. grid: function() {
  117. itp_fn_jqgrid_resize(VENDINFO03010_GRID_ID, VENDINFO03010_GRID_LIST, 'lg');
  118. listObj.empty.init();
  119. itp_fn_fire_window_resize();
  120. },
  121. ready: function() {
  122. listObj.init();
  123. }
  124. },
  125. event: {
  126. init: function () {
  127. this.button();
  128. },
  129. button: function () {
  130. // 버튼 클릭 이벤트
  131. $('button').each(function() {
  132. var id = $(this).attr('id');
  133. $(this).on('click', function() {
  134. switch (id) {
  135. case 'ITP_BTN_VENDINFO03010_SRH' : listObj.button.search(); break; // 조회 버튼 클릭
  136. case 'ITP_BTN_VENDINFO03010_NEWREG' : listObj.button.create(); break; // 신규등록 버튼
  137. case 'ITP_BTN_VENDINFO03010_MODIFY' : modifyObj.button.modify(); break; // 수정 버튼
  138. case 'ITP_BTN_VENDINFO03010_CANCELLIST' : createObj.button.cancel(); break; // 취소/목록 버튼
  139. case 'ITP_BTN_VENDINFO03010_DELETE' : break; // 삭제 버튼
  140. case 'ITP_BTN_VENDINFO03010_SAVE' : createObj.button.save(); break; // 저장 버튼
  141. case 'ITP_FORM_VENDINFO03010_DETAIL_DUP' : createObj.button.duplicate(); break; // 중복체크
  142. case 'ITP_BTN_VENDINFO03010_RESET_PW' : createObj.button.resetPass(); break; // 상세:비밀번호 초기화
  143. case 'ITP_BTN_VENDINFO03010_DETAIL_ADDROW' : pageObj.grid.button.addRow(); break; // 상세:추가버튼
  144. case 'ITP_BTN_VENDINFO03010_DETAIL_DELROW' : pageObj.grid.button.delRow(); break; // 상세:삭제버튼
  145. }
  146. });
  147. });
  148. }
  149. },
  150. switchScreen: function(mode) {
  151. $('.itp_det_head').find('button[id^="ITP_BTN_VENDINFO03010_"]').each(function(i) {
  152. $(this).hide();
  153. });
  154. $('#ITP_TAB_VENDINFO03010').find('div[id$="_CONTAINER"]').each(function(i) {
  155. $(this).hide();
  156. });
  157. if(mode === 'LIST') { // 목록
  158. $('#ITP_AJAX_VENDINFO03010_LIST_CONTAINER').show();
  159. fn_show_btn_auth_array(['#ITP_BTN_VENDINFO03010_SRH', '#ITP_BTN_VENDINFO03010_NEWREG']);
  160. }/* else if(mode == 'ADD') { // 등록
  161. $('#ITP_AJAX_VENDINFO03010_DETAIL_CONTAINER').show();
  162. fn_show_btn_auth_array(['#ITP_BTN_VENDINFO03010_CANCELLIST', '#ITP_BTN_VENDINFO03010_SAVE']);
  163. $('#ITP_FORM_VENDINFO03010_DETAIL').find('input, textarea, select, checkbox').each(function(i, elem) {
  164. $(this).attr('id') === 'ITP_FORM_VENDINFO03010_DETAIL_VIEW_CD' ? $(this).val('C') : $(this).val('');
  165. if(elem.type === 'select') {
  166. $(this).val('').prop('selected', true);
  167. }
  168. });
  169. $('#ITP_FORM_VENDINFO03010_DETAIL_USER_ID').removeAttr('readonly');
  170. $('#ITP_FORM_VENDINFO03010_DETAIL_DUP').removeAttr('disabled');
  171. $('#ITP_FORM_VENDINFO03010_DETAIL_SEARCH_BRAND_ID option').remove();
  172. $('#ITP_FORM_VENDINFO03010_DETAIL_SEARCH_AFFL_SHOP').show();
  173. $('#ITP_FORM_VENDINFO03010_DETAIL_DELETE_AFFL_SHOP').show();
  174. } else if(mode === 'MODIFY') { // 수정
  175. $('#ITP_AJAX_VENDINFO03010_DETAIL_CONTAINER').show();
  176. fn_show_btn_auth_array(['#ITP_BTN_VENDINFO03010_CANCELLIST', '#ITP_BTN_VENDINFO03010_SAVE', '#ITP_BTN_VENDINFO03010_RESET_PW']);
  177. $('#ITP_FORM_VENDINFO03010_DETAIL_USER_ID').attr('readonly', true);
  178. $('#ITP_FORM_VENDINFO03010_DETAIL_DUP').attr('disabled', true);
  179. $('#ITP_FORM_VENDINFO03010_DETAIL_SEARCH_AFFL_SHOP_NM').attr('readonly', true);
  180. $('#ITP_FORM_VENDINFO03010_DETAIL_USER_NM').attr('readonly', true);
  181. $('#ITP_FORM_VENDINFO03010_DETAIL_SEARCH_AFFL_SHOP').hide();
  182. $('#ITP_FORM_VENDINFO03010_DETAIL_DELETE_AFFL_SHOP').hide();
  183. } else if(mode === 'VIEW') { // 보기
  184. $('#ITP_AJAX_VENDINFO03010_VIEW_CONTAINER').show();
  185. fn_show_btn_auth_array(['#ITP_BTN_VENDINFO03010_MODIFY', '#ITP_BTN_VENDINFO03010_CANCELLIST']);
  186. }*/
  187. }
  188. }
  189. /*목록화면 Object*/
  190. let listObj = {
  191. init: function () {
  192. this.grid.init();
  193. },
  194. itp_VENDINFO03010_param: {},
  195. itp_VENDINFO03010_search: false,
  196. button: {
  197. search: function() {
  198. listObj.itp_VENDINFO03010_search = true;
  199. let param = $('#ITP_FORM_VENDINFO03010_SEARCH').serializeObject();
  200. param.gridSize = $.jgrid.defaults.rowNum;
  201. param.gridPage = $.jgrid.defaults.page;
  202. param.sbrandId = LOGIN_USER_INFO.brandId;
  203. param.sspplyId = LOGIN_USER_INFO.spplyId;
  204. $(VENDINFO03010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
  205. }/*,
  206. create: function() {
  207. pageObj.switchScreen('ADD');
  208. itp_fn_form_clear_validate(null, '#ITP_FORM_OPER06010_DETAIL');
  209. // 권한정보 리스트 조회
  210. createObj.init();
  211. }*/
  212. },
  213. empty: {
  214. init: function() {
  215. var _this = this;
  216. this.push();
  217. $(VENDINFO03010_GRID_EMPTY).on('click', function() {
  218. _this.back();
  219. listObj.itp_VENDINFO03010_param.gridSize = $.jgrid.defaults.rowNum;
  220. $(VENDINFO03010_GRID_ID).setGridParam({'postData': JSON.stringify(listObj.itp_VENDINFO03010_param)}).trigger('reloadGrid');
  221. });
  222. },
  223. push: function() {
  224. let param = $('#ITP_FORM_VENDINFO03010_SEARCH').serializeObject();
  225. param.sbrandId = LOGIN_USER_INFO.brandId;
  226. param.sspplyId = LOGIN_USER_INFO.spplyId;
  227. listObj.itp_VENDINFO03010_param = param;
  228. },
  229. back: function() {
  230. $('#ITP_FORM_VENDINFO03010_SEARCH_CONT_STT_DT').val(listObj.itp_VENDINFO03010_param.contSttDt);
  231. $('#ITP_FORM_VENDINFO03010_SEARCH_CONT_END_DT').val(listObj.itp_VENDINFO03010_param.contEndDt);
  232. $('#ITP_FORM_VENDINFO03010_SERVICE_ST_CD').val(listObj.itp_VENDINFO03010_param.stCd);
  233. $('#ITP_FORM_VENDINFO03010_SEARCH_ITEM_NM').val(listObj.itp_VENDINFO03010_param.itemNm);
  234. }
  235. },
  236. grid: {
  237. init: function () {
  238. // 데이터 없을때
  239. listObj.empty.push();
  240. this.search();
  241. },
  242. colModel: gridColModel.list,
  243. search: function() {
  244. pageObj.switchScreen('LIST');
  245. this.unload();
  246. this.load();
  247. },
  248. load: function() {
  249. let param = $('#ITP_FORM_VENDINFO03010_SEARCH').serializeObject();
  250. param.gridSize = $.jgrid.defaults.rowNum;
  251. param.sbrandId = LOGIN_USER_INFO.brandId;
  252. param.sspplyId = LOGIN_USER_INFO.spplyId;
  253. console.log(param);
  254. var option = {
  255. gridId: VENDINFO03010_GRID_ID,
  256. colModel: gridColModel.list,
  257. param: param,
  258. url: DOMAIN + API_ITEMUNIT_SPPLY_GRID_LIST,
  259. pager: VENDINFO03010_GRID_PAGER,
  260. rownumbers: false,
  261. /*onCellSelect: function(rowId, cellIdx, cellValue) {
  262. var cm = $(this).jqGrid('getGridParam', 'colModel');
  263. var colNm = cm[cellIdx].name;
  264. if (colNm === 'brandId') {
  265. const brandIdVal = $(this).jqGrid('getCell', rowId, 'brandId');
  266. const key = {brandId: brandIdVal, viewCd: 'R'};
  267. var param = $.param(key);
  268. viewObj.init(param);
  269. }
  270. },*/
  271. loadComplete: function(data) {
  272. console.log(data);
  273. itp_fn_grid_load_complete(data, VENDINFO03010_GRID_ID, true, 'number', 'VENDINFO03010', listObj.itp_VENDINFO03010_search, listObj.empty, true, data.gridRecords, true);
  274. var ids = $(VENDINFO03010_GRID_ID).getDataIDs();
  275. $.each(ids, function(idx, rowId) {
  276. $(VENDINFO03010_GRID_ID).jqGrid('setCell', rowId, 'itemId', '', ITP_GRID_COL_STYLE.link);
  277. });
  278. },
  279. onPaging: function(action) {
  280. itp_fn_grid_paging(VENDINFO03010_GRID_ID, action, param);
  281. }
  282. };
  283. itp_fn_grid_make_remote(option);
  284. },
  285. clearData : function() {
  286. $(VENDINFO03010_GRID_ID).jqGrid('clearGridData', true);
  287. $(VENDINFO03010_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
  288. $(VENDINFO03010_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
  289. $(VENDINFO03010_GRID_EMPTY).show();
  290. },
  291. unload : function() {
  292. $.jgrid.gridUnload(VENDINFO03010_GRID_ID);
  293. }
  294. }
  295. };
  296. console.log(CONN_KEY);