ITP_STINFO04010.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626
  1. require(['config'], function() {
  2. require([
  3. 'jquery.bootstrap.fileUpload' //파일 업로드가 있는 페이지에서 로딩
  4. ], function($) {
  5. pageObj.init();
  6. });
  7. });
  8. /********************************************************
  9. --------------------------------------------------------
  10. - Object 목록 -
  11. --------------------------------------------------------
  12. * const gridColModel = {} : 화면 Grid Object *
  13. * let pageObj = {} : 화면공통 Object *
  14. * let listObj = {} : 목록화면 Object *
  15. * let viewObj = {} : 상세화면 Object *
  16. * let modifyObj = {} : 수정화면 Object *
  17. * let createObj = {} : 신규화면 Object *
  18. *******************************************************/
  19. /*화면 변수*/
  20. const STINFO04010_GRID_ID = '#ITP_STINFO04010_jqGrid';
  21. const STINFO04010_GRID_LIST = '#ITP_STINFO04010_jqGrid_list';
  22. const STINFO04010_GRID_PAGER = '#ITP_STINFO04010_jqGridPager';
  23. const STINFO04010_GRID_EMPTY = '#ITP_STINFO04010_jqGridEmpty';
  24. const STINFO04010_VIEW_GRID_ID = '#ITP_STINFO04010_VIEW_jqGrid';
  25. const STINFO04010_VIEW_GRID_LIST = '#ITP_STINFO04010_VIEW_jqGrid_list';
  26. const STINFO04010_VIEW_GRID_PAGER = '#ITP_STINFO04010_VIEW_jqGridPager';
  27. const STINFO04010_VIEW_GRID_EMPTY = '#ITP_STINFO04010_VIEW_jqGridEmpty';
  28. const STINFO04010_DETAIL_GRID_ID = '#ITP_STINFO04010_DETAIL_jqGrid';
  29. const STINFO04010_DETAIL_GRID_LIST = '#ITP_STINFO04010_DETAIL_jqGrid_list';
  30. const STINFO04010_DETAIL_GRID_PAGER = '#ITP_STINFO04010_DETAIL_jqGridPager';
  31. const STINFO04010_DETAIL_GRID_EMPTY = '#ITP_STINFO04010_DETAIL_jqGridEmpty';
  32. let ITP_FORM_STINFO04010_DETAIL_IS_DUPLICATE = false;
  33. let ITP_FORM_STINFO04010_DETAIL_IS_WRITING = false;
  34. /*API URL*/
  35. let API_DETAIL_GRID_LIST = '/api/item/detail-grid-list'; // 목록
  36. let API_DETAIL_INFO = '/api/item/info-item'; // 상세
  37. let API_DETAIL_SAVE = '/api/item/save-item'; // 저장
  38. let API_ITEM_CLASS_LEVEL = '/api/item/class-level-list'; //품목분류 level 검색
  39. /*화면 Grid ColModel*/
  40. const gridColModel = {
  41. list: [
  42. {
  43. index: 'BRAND_ID', name: 'brandId',
  44. label: ITP_MSG_LOCALE.label.brandId, //브랜드ID
  45. width: '10', fixed: false, align: 'center',
  46. sortable: false, hidden: true
  47. },
  48. {
  49. index: 'BRAND_NM', name: 'brandNm',
  50. label: ITP_MSG_LOCALE.label.brandNm, //브랜드명
  51. width: '10', fixed: false, align: 'center',
  52. sortable: false, hidden: true
  53. },
  54. {
  55. index: 'ITEM_ID', name: 'itemId',
  56. label: ITP_MSG_LOCALE.label.itemId, //품목번호
  57. width: '11', fixed: false, align: 'center',
  58. sortable: false, hidden: false
  59. },
  60. {
  61. index: 'ITEM_NM', name: 'itemNm',
  62. label: ITP_MSG_LOCALE.label.itemNm, //품목명
  63. width: '13', fixed: false, align: 'center',
  64. sortable: false, hidden: false
  65. },
  66. {
  67. index: 'ITEM_TYPE_NM', name: 'itemTypeNm',
  68. label: ITP_MSG_LOCALE.label.itemTypeNm, //품목유형
  69. width: '13', fixed: false, align: 'center',
  70. sortable: false, hidden: false
  71. },
  72. {
  73. index: 'ITEM_CLASS_NM', name: 'itemClassNm',
  74. label: ITP_MSG_LOCALE.label.itemClassNm, //품목분류
  75. width: '15', fixed: false, align: 'center',
  76. sortable: false, hidden: false
  77. },
  78. {
  79. index: 'ST_CD', name: 'itemStNm',
  80. label: ITP_MSG_LOCALE.label.stNm, //상태
  81. width: '6', fixed: false, align: 'center',
  82. sortable: false, hidden: false
  83. },
  84. {
  85. index: 'PODR_PSSBLDVSN_NM', name: 'podrPssblDvsnNm',
  86. label: ITP_MSG_LOCALE.label.podrPssblDvsnNm, //발주여부
  87. width: '7', fixed: false, align: 'center',
  88. sortable: false, hidden: false
  89. },
  90. {
  91. index: 'UNIT', name: 'unit',
  92. label: ITP_MSG_LOCALE.label.unit, //기본단위
  93. width: '6', fixed: false, align: 'center',
  94. sortable: false, hidden: false
  95. },
  96. {
  97. index: 'PCH_ITEM_YN', name: 'pchItemYn',
  98. label: ITP_MSG_LOCALE.label.pchItemYn, //구매품목여부
  99. width: '6', fixed: false, align: 'center',
  100. sortable: false, hidden: false
  101. },
  102. {
  103. index: 'SALE_ITEM_YN', name: 'saleItemYn',
  104. label: ITP_MSG_LOCALE.label.saleItemYn, //판매품목여부
  105. width: '8', fixed: false, align: 'center',
  106. sortable: false, hidden: false
  107. },
  108. ],
  109. detail: [
  110. {
  111. index: 'VIEW_CD', name: 'viewCd',
  112. label: ITP_MSG_LOCALE.label.viewCd,
  113. width: '10', fixed: false, align: 'center',
  114. sortable: false, hidden: true
  115. },
  116. {
  117. index: 'AUTH_NO', name: 'authNo',
  118. label: ITP_MSG_LOCALE.label.permitCd,
  119. width: '20', fixed: false, align: 'center',
  120. sortable: false, editable: false, edittype: 'text',
  121. editrules: {required: true}
  122. },
  123. {
  124. index: 'AUTH_NM', name: 'authNm',
  125. label: ITP_MSG_LOCALE.label.permitName,
  126. width: '30', fixed: false, align: 'center',
  127. sortable: true, editable: false, edittype: 'text',
  128. editrules: {required: true}
  129. },
  130. {
  131. index: 'USE_YN_NM', name: 'useYnNm',
  132. label: ITP_MSG_LOCALE.label.status,
  133. width: '10', fixed: false, align: 'center',
  134. sortable: false, editable: false, edittype: 'text'
  135. },
  136. {
  137. index: 'ADD_DT', name: 'addDt',
  138. label: ITP_MSG_LOCALE.label.regDt,
  139. width: '10', fixed: false, align: 'center',
  140. sortable: false, editable: false, edittype: 'text'
  141. }
  142. ]
  143. };
  144. /*화면공통 Object*/
  145. let pageObj = {
  146. init: function () {
  147. this.ui.init();
  148. this.event.init();
  149. // this.fileUpload();
  150. },
  151. ui: {
  152. init: function () {
  153. this.view();
  154. this.grid();
  155. this.ready();
  156. },
  157. view: function() {
  158. // 버튼 권한설정
  159. fn_proc_btn_auth('STINFO04010');
  160. // 공통코드 표시
  161. $('select').each(function() {
  162. if($(this).data('select-code')) {
  163. fn_make_select(CODE_LIST, $(this).data('select-code'), $(this).attr('id'));
  164. }
  165. });
  166. itemClassLevel.make(1, 'LIST');
  167. },
  168. grid: function() {
  169. itp_fn_jqgrid_resize(STINFO04010_GRID_ID, STINFO04010_GRID_LIST, 'lg');
  170. listObj.empty.init();
  171. itp_fn_fire_window_resize();
  172. },
  173. ready: function() {
  174. listObj.init();
  175. }
  176. },
  177. event: {
  178. init: function () {
  179. this.button();
  180. },
  181. button: function () {
  182. // 버튼 클릭 이벤트
  183. $('button').each(function() {
  184. var id = $(this).attr('id');
  185. $(this).on('click', function() {
  186. switch (id) {
  187. case 'ITP_BTN_STINFO04010_SRH' : listObj.button.search(); break; // 조회 버튼 클릭
  188. case 'ITP_BTN_STINFO04010_NEWREG' : listObj.button.create(); break; // 신규등록 버튼
  189. case 'ITP_BTN_STINFO04010_MODIFY' : modifyObj.button.modify(); break; // 수정 버튼
  190. case 'ITP_BTN_STINFO04010_CANCELLIST' : createObj.button.cancel(); break; // 취소/목록 버튼
  191. case 'ITP_BTN_STINFO04010_DELETE' : break; // 삭제 버튼
  192. case 'ITP_BTN_STINFO04010_SAVE' : createObj.button.save(); break; // 저장 버튼
  193. case 'ITP_FORM_STINFO04010_DETAIL_DUP' : createObj.button.duplicate(); break; // 중복체크
  194. case 'ITP_BTN_STINFO04010_RESET_PW' : createObj.button.resetPass(); break; // 상세:비밀번호 초기화
  195. }
  196. });
  197. });
  198. $('body').on('click', function(e) {
  199. var gridId = STINFO04010_DETAIL_GRID_ID.replace('#', '');
  200. var rids = $(STINFO04010_DETAIL_GRID_ID).jqGrid('getDataIDs');
  201. var last_row_id = rids[rids.length - 1];
  202. itp_fn_grid_reset_selection(e, last_row_id, gridId, 'STINFO04010_DETAIL');
  203. });
  204. }
  205. },
  206. fileUpload: function() {
  207. //파일업로드(등록/수정화면)
  208. var id = 'STINFO04010';
  209. $('#ITP_' + id + '_DETAIL_UPLOAD').empty();
  210. const fileArgs = {
  211. 'fileNo': $('#ITP_FORM_' + id + '_DETAIL_FILE_NO').val(),
  212. 'viewCd': $('#ITP_FORM_' + id + '_DETAIL_VIEW_CD').val(),
  213. 'showYn': $('#ITP_' + id + '_DETAIL_UPLOAD').attr('data-show-yn'),
  214. 'fileId': '#ITP_FORM_' + id + '_DETAIL_FILE_NO' //파일번호를 서버에서 받아서 넣을 파일번호 인풋박스 아이디
  215. };
  216. itp_fn_set_file_upload('ITP_' + id + '_DETAIL_UPLOAD', 'affl', true, false, id, fileArgs);
  217. },
  218. switchScreen: function(mode) {
  219. $('.itp_det_head').find('button[id^="ITP_BTN_STINFO04010_"]').each(function(i) {
  220. $(this).hide();
  221. });
  222. $('#ITP_TAB_STINFO04010').find('div[id$="_CONTAINER"]').each(function(i) {
  223. $(this).hide();
  224. });
  225. if(mode == 'LIST') { // 목록
  226. $('#ITP_AJAX_STINFO04010_LIST_CONTAINER').show();
  227. fn_show_btn_auth_array(['#ITP_BTN_STINFO04010_SRH', '#ITP_BTN_STINFO04010_NEWREG']);
  228. $('#ITP_FORM_STINFO04010_SEARCH_BRAND_ID').val(fn_make_user_info.get('brandId'));
  229. } else if(mode == 'ADD') { // 등록
  230. $('#ITP_AJAX_STINFO04010_DETAIL_CONTAINER').show();
  231. fn_show_btn_auth_array(['#ITP_BTN_STINFO04010_CANCELLIST', '#ITP_BTN_STINFO04010_SAVE']);
  232. $('#ITP_FORM_STINFO04010_DETAIL').find('input, textarea, select, checkbox').each(function(i, elem) {
  233. $(this).attr('id') === 'ITP_FORM_STINFO04010_DETAIL_VIEW_CD' ? $(this).val('C') : $(this).val('');
  234. if(elem.type === 'select') {
  235. $(this).val('').prop('selected', true);
  236. }
  237. });
  238. $('#ITP_FORM_STINFO04010_DETAIL_STORE_ID').removeAttr('readonly');
  239. $('#ITP_FORM_STINFO04010_DETAIL_DUP').removeAttr('disabled');
  240. // 가맹점 정보 설정
  241. $('#ITP_FORM_STINFO04010_DETAIL_AFFL_SHOP_ID').val(fn_make_user_info.get('afflShopId'));
  242. $('#ITP_FORM_STINFO04010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
  243. $('#ITP_FORM_STINFO04010_DETAIL .fnBrandNm').text(fn_make_user_info.get('brandNm'));
  244. $('#ITP_FORM_STINFO04010_DETAIL .fnItemClassMgntNo').text('(자동부여)');
  245. } else if(mode == 'MODIFY') { // 수정
  246. $('#ITP_AJAX_STINFO04010_DETAIL_CONTAINER').show();
  247. fn_show_btn_auth_array(['#ITP_BTN_STINFO04010_CANCELLIST', '#ITP_BTN_STINFO04010_SAVE', '#ITP_BTN_STINFO04010_RESET_PW']);
  248. $('#ITP_FORM_STINFO04010_DETAIL_AFFL_SHOP_ID').val(fn_make_user_info.get('afflShopId'));
  249. $('#ITP_FORM_STINFO04010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId'));
  250. $('#ITP_FORM_STINFO04010_DETAIL .fnBrandNm').text(fn_make_user_info.get('brandNm'));
  251. $('#ITP_FORM_STINFO04010_DETAIL_STORE_ID').attr('readonly', true);
  252. $('#ITP_FORM_STINFO04010_DETAIL_DUP').attr('disabled', true);
  253. $('#ITP_FORM_STINFO04010_DETAIL_SEARCH_AFFL_SHOP_NM').attr('readonly', true);
  254. $('#ITP_FORM_STINFO04010_DETAIL_SEARCH_AFFL_SHOP').hide();
  255. $('#ITP_FORM_STINFO04010_DETAIL_DELETE_AFFL_SHOP').hide();
  256. } else if(mode == 'VIEW') { // 보기
  257. $('#ITP_AJAX_STINFO04010_VIEW_CONTAINER').show();
  258. $('#ITP_FORM_STINFO04010_VIEW .fnBrandNm').text(fn_make_user_info.get('brandNm'));
  259. fn_show_btn_auth_array(['#ITP_BTN_STINFO04010_MODIFY', '#ITP_BTN_STINFO04010_CANCELLIST']);
  260. }
  261. }
  262. };
  263. /*목록화면 Object*/
  264. let listObj = {
  265. init: function () {
  266. this.form();
  267. this.grid.init();
  268. },
  269. itp_STINFO04010_search: false,
  270. button: {
  271. search: function() {
  272. listObj.itp_STINFO04010_search = true;
  273. let param = $('#ITP_FORM_STINFO04010_SEARCH').serializeObject();
  274. console.log(JSON.stringify(param));
  275. param.gridSize = $.jgrid.defaults.rowNum;
  276. param.gridPage = $.jgrid.defaults.page;
  277. $(STINFO04010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
  278. },
  279. create: function() {
  280. if(!fn_make_user_info.isEmpty()) {
  281. createObj.init();
  282. }
  283. }
  284. },
  285. form: function() {
  286. $('#ITP_FORM_STINFO04010_SEARCH_ITEM_CLASS1').on('change', function() {
  287. ($(this).val() === '') ? itemClassLevel.clear(2): itemClassLevel.change(2);
  288. });
  289. $('#ITP_FORM_STINFO04010_SEARCH_ITEM_CLASS2').on('change', function() {
  290. ($(this).val() === '') ? itemClassLevel.clear(3): itemClassLevel.change(3);
  291. });
  292. $('#ITP_FORM_STINFO04010_SEARCH_ITEM_CLASS3').on('change', function() {
  293. ($(this).val() === '') ? itemClassLevel.clear(4): itemClassLevel.change(4);
  294. });
  295. },
  296. empty: {
  297. init: function() {
  298. var _this = this;
  299. this.push();
  300. $(STINFO04010_GRID_EMPTY).on('click', function() {
  301. _this.back();
  302. _this.itp_STINFO04010_param.gridSize = $.jgrid.defaults.rowNum;
  303. $(STINFO04010_GRID_ID).setGridParam({'postData': JSON.stringify(_this.itp_STINFO04010_param)}).trigger('reloadGrid');
  304. });
  305. },
  306. itp_STINFO04010_param: {},
  307. push: function() {
  308. let param = $('#ITP_FORM_STINFO04010_SEARCH').serializeObject();
  309. listObj.itp_STINFO04010_param = param;
  310. },
  311. back: function() {
  312. $('#ITP_FORM_STINFO04010_SERVICE_ST_CD').val(this.itp_STINFO04010_param.sitemStCd);
  313. $('#ITP_FORM_STINFO04010_SEARCH_PODR_PSSBL_DVSN').val(this.itp_STINFO04010_param.spodrPssblDvsn);
  314. $('#ITP_FORM_STINFO04010_SEARCH_ITEM_KIND').val(this.itp_STINFO04010_param.sitemKind);
  315. $('#ITP_FORM_STINFO04010_SEARCH_ITEM_TYPE').val(this.itp_STINFO04010_param.sitemType);
  316. $('#ITP_FORM_STINFO04010_SEARCH_ITEM_CLASS1').val(this.itp_STINFO04010_param.sitemClass1);
  317. $('#ITP_FORM_STINFO04010_SEARCH_ITEM_CLASS2').val(this.itp_STINFO04010_param.sitemClass2);
  318. $('#ITP_FORM_STINFO04010_SEARCH_ITEM_CLASS3').val(this.itp_STINFO04010_param.sitemClass3);
  319. $('#ITP_FORM_STINFO04010_SEARCH_ITEM_CLASS4').val(this.itp_STINFO04010_param.sitemClass4);
  320. $('#ITP_FORM_STINFO04010_SEARCH_ITEM_NM').val(this.itp_STINFO04010_param.sitemNm);
  321. }
  322. },
  323. grid: {
  324. init: function () {
  325. // 데이터 없을때
  326. listObj.empty.push();
  327. this.search();
  328. },
  329. colModel: gridColModel.list,
  330. search: function() {
  331. pageObj.switchScreen('LIST');
  332. this.unload();
  333. this.load();
  334. },
  335. load: function() {
  336. let param = $('#ITP_FORM_STINFO04010_SEARCH').serializeObject();
  337. param.gridSize = $.jgrid.defaults.rowNum;
  338. param.sbrandId = fn_make_user_info.get('brandId');
  339. // param.sbrandId = sessionStorage.getItem('itp_brand_id') !== null ? sessionStorage.getItem('itp_brand_id') : 'BRD221000001';
  340. var option = {
  341. gridId: STINFO04010_GRID_ID,
  342. colModel: gridColModel.list,
  343. param: param,
  344. url: DOMAIN + API_DETAIL_GRID_LIST,
  345. pager: STINFO04010_GRID_PAGER,
  346. onCellSelect: function(rowId, cellIdx, cellValue) {
  347. var cm = $(this).jqGrid('getGridParam', 'colModel');
  348. var colNm = cm[cellIdx].name;
  349. if (colNm == 'itemId') {
  350. const selectVal = $(this).jqGrid('getCell', rowId, 'itemId');
  351. const key = {brandId:fn_make_user_info.get('brandId'), itemId: selectVal, viewCd: 'R'};
  352. var param = $.param(key);
  353. viewObj.init(param);
  354. }
  355. },
  356. loadComplete: function(data) {
  357. console.log(data);
  358. itp_fn_grid_load_complete(data, STINFO04010_GRID_ID, true, 'number', 'STINFO04010', listObj.itp_STINFO04010_search, listObj.empty, true, data.gridRecords, true);
  359. var ids = $(STINFO04010_GRID_ID).getDataIDs();
  360. $.each(ids, function(idx, rowId) {
  361. $(STINFO04010_GRID_ID).jqGrid('setCell', rowId, 'itemId', '', ITP_GRID_COL_STYLE.link);
  362. });
  363. },
  364. onPaging: function(action) {
  365. itp_fn_grid_paging(STINFO04010_GRID_ID, action, param);
  366. }
  367. };
  368. itp_fn_grid_make_remote(option);
  369. },
  370. clearData : function() {
  371. $(STINFO04010_GRID_ID).jqGrid('clearGridData', true);
  372. $(STINFO04010_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
  373. $(STINFO04010_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
  374. $(STINFO04010_GRID_EMPTY).show();
  375. },
  376. unload : function() {
  377. $.jgrid.gridUnload(STINFO04010_GRID_ID);
  378. }
  379. }
  380. };
  381. /*상세화면 Object*/
  382. let viewObj = {
  383. init: function (param) {
  384. this.load(param);
  385. },
  386. load: function(param) {
  387. fn_ajax_call(API_DETAIL_INFO, param, this.callback, 'GET');
  388. },
  389. callback: function (result) {
  390. console.log(result);
  391. pageObj.switchScreen('VIEW');
  392. $('#ITP_FORM_STINFO04010_VIEW #ITP_FORM_STINFO04010_VIEW_ITEM_ID').val(result.itemId);
  393. $('#ITP_FORM_STINFO04010_VIEW .fnStCd').text(result.itemStNm);
  394. var itemClassNm = ""; //itemClassNm 값 없음
  395. if (result.itemClass1Nm != null && result.itemClass1Nm != "")//itemclass1Nm 값이 있을때
  396. {
  397. var itemClassNm = result.itemClass1Nm; //itemClassNm 에 itemClass1Nm 값 넣음
  398. }
  399. if (result.itemClass2Nm != null && result.itemClass2Nm != "")//itemclass2Nm 값이 있을때
  400. {
  401. var itemClassNm = itemClassNm + " " + ">" + " " + result.itemClass2Nm; //itemClassNm 에 itemClassNm + > + itemClass2Nm 값 넣음
  402. }
  403. if (result.itemClass3Nm != null && result.itemClass3Nm != "")//itemclass3Nm 값이 있을때
  404. {
  405. var itemClassNm = itemClassNm + " " + ">" + " " + result.itemClass3Nm; //itemClassNm 에 itemClassNm + > + itemClass3Nm 값 넣음
  406. }
  407. if (result.itemClass4Nm != null && result.itemClass4Nm != "")//itemclass4Nm 값이 있을때
  408. {
  409. var itemClassNm = itemClassNm + " " + ">" + " " + result.itemClass4Nm; //itemClassNm 에 itemClassNm + > + itemClass4Nm 값 넣음
  410. }
  411. $('#ITP_FORM_STINFO04010_VIEW .fnItemClass1').text(result.itemClass1Nm);
  412. $('#ITP_FORM_STINFO04010_VIEW .fnItemClass2').text(result.itemClass2Nm);
  413. $('#ITP_FORM_STINFO04010_VIEW .fnItemClass3').text(result.itemClass3Nm);
  414. $('#ITP_FORM_STINFO04010_VIEW .fnItemClass4').text(result.itemClass4Nm);
  415. $('#ITP_FORM_STINFO04010_VIEW .fnItemClassMgntNo').text(result.itemClassMgntNo);
  416. $('#ITP_FORM_STINFO04010_VIEW .fnItemType').text(result.itemType);
  417. $('#ITP_FORM_STINFO04010_VIEW .fnItemNm').text(result.itemNm);
  418. $('#ITP_FORM_STINFO04010_VIEW .fnImpDvsn').text(result.impDvsnNm);
  419. $('#ITP_FORM_STINFO04010_VIEW .fnPodrPssblDvsn').text(result.podrPssblDvsn);
  420. $('#ITP_FORM_STINFO04010_VIEW .fnUnit').text(result.unit);
  421. $('#ITP_FORM_STINFO04010_VIEW .fnPchItemYn').text(result.pchItemYn);
  422. $('#ITP_FORM_STINFO04010_VIEW .fnViewPchUnit').text(result.pchUnit);
  423. $('#ITP_FORM_STINFO04010_VIEW .fnSaleItemYn').text(result.saleItemYn);
  424. $('#ITP_FORM_STINFO04010_VIEW .fnSaleUnit').text(result.saleUnit);
  425. $('#ITP_FORM_STINFO04010_VIEW .fnAssetInfo').text(result.assetInfo);
  426. $('#ITP_FORM_STINFO04010_VIEW .fnStckUnit').text(result.stckUnit);
  427. $('#ITP_FORM_STINFO04010_VIEW .fnWeight').text(result.weight);
  428. $('#ITP_FORM_STINFO04010_VIEW .fnVolume').text(result.volume);
  429. $('#ITP_FORM_STINFO04010_VIEW .fnWidth').text(result.width);
  430. $('#ITP_FORM_STINFO04010_VIEW .fnHeight').text(result.height);
  431. $('#ITP_FORM_STINFO04010_VIEW .fnHigh').text(result.high);
  432. $('#ITP_FORM_STINFO04010_VIEW .fnOneBoxQty').text(result.oneBoxQty);
  433. $('#ITP_FORM_STINFO04010_VIEW .fnExpryYn').text(result.expryYn);
  434. $('#ITP_FORM_STINFO04010_VIEW .fnExpryPeriod').text(result.expryPeriod);
  435. $('#ITP_FORM_STINFO04010_VIEW .fnRtnPssblYn').text(result.rtnPssblYn);
  436. $('#ITP_FORM_STINFO04010_VIEW .fnRtnDvsn').text(result.rtnDvsn);
  437. itp_fn_attach_file.view('ITP_FORM_STINFO04010_VIEW_FILE', result.imageFileNoList
  438. , 'form-control itp_input', 'border:none; top:12px; left:12px; height:100px; width:125px; position:absolute;');
  439. }
  440. };
  441. /*수정화면 Object*/
  442. let modifyObj = {
  443. init: function () {
  444. },
  445. button: {
  446. modify: function (param) {
  447. itp_fn_form_clear_validate(null, '#ITP_FORM_STINFO04010_DETAIL');
  448. const selectVal = $('#ITP_FORM_STINFO04010_VIEW_ITEM_ID').val();
  449. const key = {brandId:fn_make_user_info.get('brandId'), itemId: selectVal, viewCd: 'R'};
  450. var param = $.param(key);
  451. modifyObj.load(param);
  452. }
  453. },
  454. load: function(param) {
  455. fn_ajax_call(API_DETAIL_INFO, param, this.callback, 'GET');
  456. },
  457. callback: function (result) {
  458. console.log(result);
  459. pageObj.switchScreen('MODIFY');
  460. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_VIEW_CD').val('U');
  461. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_ITEM_ID').val(result.itemId);
  462. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_ITEM_ST_CD').val(result.itemStCd);
  463. $('#ITP_FORM_STINFO04010_DETAIL .fnItemClassMgntNo').text(result.itemId);
  464. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_ITEM_TYPE').val(result.itemType);
  465. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_ITEM_NM').val(result.itemNm);
  466. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_IMP_DVSN').val(result.impDvsn);
  467. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_PODR_PSSBL_DVSN').val(result.podrPssblDvsn);
  468. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_UNIT').val(result.unit);
  469. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_PCH_ITEM_YN').val(result.pchItemYn);
  470. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_PCH_UNIT').val(result.pchUnit);
  471. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_SALE_ITEM_YN').val(result.saleItemYn);
  472. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_SALE_UNIT').val(result.saleUnit);
  473. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_ASSET_INFO').val(result.assetInfo);
  474. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_STCK_UNIT').val(result.stckUnit);
  475. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_WEIGHT').val(result.weight);
  476. $('#ITP_FORM_STINFO04010_DETAIL .item_unit').text(result.unit);
  477. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_VOLUME').val(result.volume);
  478. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_WIDTH').val(result.width);
  479. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_HEIGHT').val(result.height);
  480. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_HIGH').val(result.high);
  481. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_ONE_BOX_QTY').val(result.oneBoxQty);
  482. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_EXPRY_YN').val(result.expryYn);
  483. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_EXPRY_PERIOD').val(result.expryPeriod);
  484. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_RTN_PSSBL_YN').val(result.rtnPssblYn);
  485. $('#ITP_FORM_STINFO04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_RTN_DVSN').val(result.rtnDvsn);
  486. // $.each(result.imageFileNoList, function(index, item) {
  487. // $('#ITP_FORM_STINFO04010_VIEW .ITEM_IMAGE').append('<img src=" + item.filePath +" />');
  488. // });
  489. $('#ITP_FORM_OPER04010_DETAIL #ITP_FORM_STINFO04010_DETAIL_FILE_NO').val(result.itemImageFileNo);
  490. pageObj.fileUpload();
  491. itemClassLevel.data.push(result.itemClass1);
  492. itemClassLevel.data.push(result.itemClass2);
  493. itemClassLevel.data.push(result.itemClass3);
  494. itemClassLevel.data.push(result.itemClass4);
  495. itemClassLevel.make(1, 'MODIFY');
  496. }
  497. };
  498. /*신규화면 Object*/
  499. let createObj = {
  500. init: function () {
  501. pageObj.switchScreen('ADD');
  502. pageObj.fileUpload();
  503. itp_fn_form_clear_validate(null, '#ITP_FORM_STINFO04010_DETAIL');
  504. this.button.init();
  505. itemClassLevel.make(1, 'ADD');
  506. },
  507. button: {
  508. init: function() {
  509. $('#ITP_FORM_STINFO04010_DETAIL_ITEM_CLASS1').off('change').on('change', function() {
  510. ($(this).val() === '') ? itemClassLevel.clear(2): itemClassLevel.change(2);
  511. });
  512. $('#ITP_FORM_STINFO04010_DETAIL_ITEM_CLASS2').off('change').on('change', function() {
  513. ($(this).val() === '') ? itemClassLevel.clear(3): itemClassLevel.change(3);
  514. });
  515. $('#ITP_FORM_STINFO04010_DETAIL_ITEM_CLASS3').off('change').on('change', function() {
  516. ($(this).val() === '') ? itemClassLevel.clear(4): itemClassLevel.change(4);
  517. });
  518. },
  519. cancel: function() {
  520. listObj.grid.search();
  521. },
  522. save: function() {
  523. const formId = '#ITP_FORM_STINFO04010_DETAIL';
  524. itp_fn_form_clear_validate(null, formId);
  525. if (itp_fn_form_event.isValid(formId)) {
  526. let param = $(formId).serializeObject();
  527. console.log(JSON.stringify(param));
  528. var searhFn = function() {
  529. ITP_FORM_STINFO04010_DETAIL_IS_WRITING = false;
  530. listObj.grid.search();
  531. };
  532. fn_ajax_call(API_DETAIL_SAVE, JSON.stringify(param), searhFn, 'POST');
  533. }
  534. }
  535. }
  536. };
  537. var itemClassLevel = {
  538. level: 1,
  539. levelID: '',
  540. data: [],
  541. keys: function() {
  542. var keys = {sBrandId:fn_make_user_info.get('brandId'), sItemLevel: this.level};
  543. for(var i=1; i<=this.level; i++) {
  544. var key = 'sItemClass' + i;
  545. var id = '#' + this.levelID + i;
  546. keys[key] = $(id + ' option:selected').val();
  547. }
  548. return keys;
  549. },
  550. make: function(level, mode) {
  551. this.level = level;
  552. this.levelID = (mode === 'LIST' ? 'ITP_FORM_STINFO04010_SEARCH_ITEM_CLASS' : 'ITP_FORM_STINFO04010_DETAIL_ITEM_CLASS');
  553. if(mode !== 'MODIFY') {
  554. this.data.length = 0;
  555. this.clear(1);
  556. }
  557. this.call($.param(this.keys()), mode === 'MODIFY');
  558. },
  559. change: function(level) {
  560. this.level = level;
  561. this.clear(level);
  562. this.call($.param(this.keys()), false);
  563. },
  564. call: function(param, isModify) {
  565. var _this = this;
  566. var callbackFn = function(result) {
  567. var id = _this.levelID + _this.level;
  568. fn_make_select_item_class(result.searchList, id, true, _this.emptyText());
  569. if(isModify) {
  570. $('#' + id).val(_this.data[ _this.level - 1]);
  571. if(_this.level < _this.data.length) {
  572. if(_this.data[_this.level] !== '') {
  573. _this.level++;
  574. _this.call( $.param(_this.keys()), isModify);
  575. }
  576. }
  577. }
  578. };
  579. fn_ajax_call(API_ITEM_CLASS_LEVEL, param, callbackFn, 'GET');
  580. },
  581. emptyText: function() {
  582. return '품목분류Level' + this.level;
  583. },
  584. clear: function(level) {
  585. for(var i=level; i<5; i++) {
  586. $('#' + (this.levelID + i)).find('option:not(:first)').remove();
  587. }
  588. }
  589. };