ITP_OPER01010.js 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680
  1. require(['config'], function() {
  2. require([
  3. ], function($) {
  4. pageObj.init();
  5. });
  6. });
  7. /********************************************************
  8. --------------------------------------------------------
  9. - Object 목록 -
  10. --------------------------------------------------------
  11. * let pageObj = {} : 화면공통 Object *
  12. * let listObj = {} : 목록화면 Object *
  13. * let viewObj = {} : 상세화면 Object *
  14. * let modifyObj = {} : 수정화면 Object *
  15. * let createObj = {} : 신규화면 Object *
  16. *******************************************************/
  17. const OPER01010_GRID_ID = '#ITP_OPER01010_jqGrid';
  18. const OPER01010_GRID_LIST = '#ITP_OPER01010_jqGrid_list';
  19. const OPER01010_GRID_PAGER = '#ITP_OPER01010_jqGridPager';
  20. const OPER01010_GRID_EMPTY = '#ITP_OPER01010_jqGridEmpty';
  21. /*
  22. const OPER01010_VIEW_GRID_ID = '#ITP_OPER01010_VIEW_jqGrid';
  23. const OPER01010_VIEW_GRID_LIST = '#ITP_OPER01010_VIEW_jqGrid_list';
  24. const OPER01010_VIEW_GRID_PAGER = '#ITP_OPER01010_VIEW_jqGridPager';
  25. const OPER01010_VIEW_GRID_EMPTY = '#ITP_OPER01010_VIEW_jqGridEmpty';
  26. const OPER01010_DETAIL_GRID_ID = '#ITP_OPER01010_DETAIL_jqGrid';
  27. const OPER01010_DETAIL_GRID_LIST = '#ITP_OPER01010_DETAIL_jqGrid_list';
  28. const OPER01010_DETAIL_GRID_PAGER = '#ITP_OPER01010_DETAIL_jqGridPager';
  29. const OPER01010_DETAIL_GRID_EMPTY = '#ITP_OPER01010_DETAIL_jqGridEmpty';
  30. const OPER01010_NEW_GRID_ID = '#ITP_OPER01010_NEW_jqGrid';
  31. const OPER01010_NEW_GRID_LIST = '#ITP_OPER01010_NEW_jqGrid_list';
  32. const OPER01010_NEW_GRID_PAGER = '#ITP_OPER01010_NEW_jqGridPager';
  33. const OPER01010_NEW_GRID_EMPTY = '#ITP_OPER01010_NEW_jqGridEmpty';
  34. */
  35. let ITP_FORM_OPER01010_DETAIL_IS_DUPLICATE = false;
  36. let ITP_FORM_OPER01010_DETAIL_IS_WRITING = false;
  37. let API_DETAIL_GRID_LIST = '/api/user/detail-grid-list';
  38. let API_USERAUTH_GRID_LIST = '/api/user/userauth-grid-list';
  39. let API_DETAIL_INFO = '/api/user/info-user';
  40. let API_DETAIL_SAVE = '/api/user/save-user';
  41. let API_CHECK_DUPLICATE = '/api/user/check-duplicate';
  42. let API_INTI_USERPW = '/api/user/inti-userpw';
  43. let API_POP_GRID_LIST = '/api/brand/pop-grid-list';
  44. /*화면 Grid ColModel*/
  45. const gridColModel = {
  46. list: [
  47. {
  48. index: 'AFFL_SHOP_NM', name: 'afflShopNm',
  49. label: ITP_MSG_LOCALE.label.afflShopNm, //브랜드그룹
  50. width: '10', fixed: false, align: 'left',
  51. minwidth: 150, maxwidth: 250,
  52. sortable: false, hidden: false, classes: 'ui-ellipsis'
  53. },
  54. {
  55. index: 'BRAND_NM', name: 'brandNm',
  56. label: ITP_MSG_LOCALE.label.brandNm, //브랜드
  57. width: '13', fixed: false, align: 'left',
  58. minwidth: 150, maxwidth: 250,
  59. sortable: false, hidden: false, classes: 'ui-ellipsis'
  60. },
  61. {
  62. index: 'AUTH_TP_NM', name: 'authTpNm',
  63. label: ITP_MSG_LOCALE.label.authTpNm, //권한명
  64. width: '10', fixed: false, align: 'center',
  65. sortable: false, hidden: false
  66. },
  67. {
  68. index: 'SHOP_NM', name: 'storeId',
  69. label: ITP_MSG_LOCALE.label.storeId, //매장아이디
  70. width: '10', fixed: false, align: 'left',
  71. minwidth: 150, maxwidth: 250,
  72. sortable: false, hidden: true
  73. },
  74. {
  75. index: 'STORE_NM', name: 'storeNm',
  76. label: ITP_MSG_LOCALE.label.storeNm, //매장명
  77. width: '13', fixed: false, align: 'left',
  78. minwidth: 150, maxwidth: 250,
  79. sortable: false, hidden: false, classes: 'ui-ellipsis'
  80. },
  81. {
  82. index: 'SPPLY_ID', name: 'spplyId',
  83. label: ITP_MSG_LOCALE.label.spplyId, //공급사아이디
  84. width: '10', fixed: false, align: 'left',
  85. minwidth: 150, maxwidth: 250,
  86. sortable: false, hidden: true, classes: 'ui-ellipsis'
  87. },
  88. {
  89. index: 'SPPLY_NM', name: 'spplyNm',
  90. label: ITP_MSG_LOCALE.label.spplyNm, //공급사명
  91. width: '13', fixed: false, align: 'left',
  92. minwidth: 150, maxwidth: 250,
  93. sortable: false, hidden: false
  94. },
  95. {
  96. index: 'AUTH_TP_CD', name: 'authTpCd',
  97. label: ITP_MSG_LOCALE.label.authTpNm, //권한코드
  98. width: '13', fixed: false, align: 'left',
  99. minwidth: 150, maxwidth: 250,
  100. sortable: false, hidden: true
  101. },
  102. {
  103. index: 'USER_ID', name: 'userId',
  104. label: ITP_MSG_LOCALE.label.userId, //사용자ID
  105. width: '10', fixed: false, align: 'center',
  106. minwidth: 120, maxwidth: 200,
  107. sortable: false, hidden: false
  108. },
  109. {
  110. index: 'USER_NM', name: 'userNm',
  111. label: ITP_MSG_LOCALE.label.userName, //닉네임
  112. width: '13', fixed: false, align: 'left',
  113. minwidth: 120,
  114. sortable: false, hidden: false, classes: 'ui-ellipsis'
  115. },
  116. {
  117. index: 'EMAIL', name: 'email',
  118. label: ITP_MSG_LOCALE.label.idEmail, //아이디(이메일)
  119. width: '15', fixed: false, align: 'left',
  120. minwidth: 150, maxwidth: 250,
  121. sortable: false, hidden: false, classes: 'ui-ellipsis'
  122. },
  123. {
  124. index: 'TEL_NO', name: 'telNo',
  125. label: ITP_MSG_LOCALE.label.telephone, //휴대폰 번호
  126. width: '10', fixed: false, align: 'center',
  127. minwidth: 150, maxwidth: 250,
  128. sortable: false, hidden: false
  129. },
  130. {
  131. index: 'USER_STAT_NM', name: 'userStatNm',
  132. label: ITP_MSG_LOCALE.label.status, //상태
  133. width: '6', fixed: false, align: 'center',
  134. sortable: false, hidden: false
  135. },
  136. {
  137. index: 'USER_STAT_DT', name: 'userStatDt',
  138. label: ITP_MSG_LOCALE.label.statusDt, //상태일시
  139. width: '10', fixed: false, align: 'center',
  140. sortable: false, hidden: false
  141. },
  142. {
  143. index: 'ADD_DT', name: 'addDt',
  144. label: ITP_MSG_LOCALE.label.regDt, //등록일
  145. width: '10', fixed: false, align: 'center',
  146. sortable: false, hidden: false
  147. },
  148. {
  149. index: 'LAST_LOGIN_DT', name: 'lastLoginDt',
  150. label: ITP_MSG_LOCALE.label.lastLogin, //마지막 로그인
  151. width: '12', fixed: false, align: 'center',
  152. minwidth: 150, maxwidth: 250,
  153. sortable: false, hidden: false
  154. }
  155. ],
  156. detail: [
  157. {
  158. index: 'VIEW_CD', name: 'viewCd',
  159. label: ITP_MSG_LOCALE.label.viewCd,
  160. width: '10', fixed: false, align: 'center',
  161. sortable: false, hidden: true
  162. },
  163. {
  164. index: 'AUTH_NO', name: 'authNo',
  165. label: ITP_MSG_LOCALE.label.permitCd,
  166. width: '20', fixed: false, align: 'left',
  167. sortable: false, editable: false, edittype: 'text',
  168. editrules: {required: true}
  169. },
  170. {
  171. index: 'AUTH_NM', name: 'authNm',
  172. label: ITP_MSG_LOCALE.label.permitName,
  173. width: '30', fixed: false, align: 'left',
  174. sortable: true, editable: false, edittype: 'text',
  175. editrules: {required: true}
  176. },
  177. {
  178. index: 'USE_YN_NM', name: 'useYnNm',
  179. label: ITP_MSG_LOCALE.label.status,
  180. width: '10', fixed: false, align: 'center',
  181. sortable: false, editable: false, edittype: 'text'
  182. },
  183. {
  184. index: 'ADD_DT', name: 'addDt',
  185. label: ITP_MSG_LOCALE.label.regDt,
  186. width: '10', fixed: false, align: 'center',
  187. sortable: false, editable: false, edittype: 'text'
  188. }
  189. ]
  190. };
  191. /*화면공통 Object*/
  192. let pageObj = {
  193. init: function () {
  194. this.ui.init();
  195. this.event.init();
  196. afflShopObj.init();
  197. },
  198. pageMode: '',
  199. ui: {
  200. init: function () {
  201. this.button();
  202. this.form();
  203. this.ready();
  204. },
  205. button: function () {
  206. // 버튼 권한설정
  207. fn_proc_btn_auth('OPER01010');
  208. // 공통코드 표시
  209. $('select').each(function() {
  210. if($(this).data('select-code')) {
  211. fn_make_select(CODE_LIST, $(this).data('select-code'), $(this).attr('id'));
  212. }
  213. });
  214. // 조회일자 지정
  215. var now = new Date();
  216. $('#ITP_TAB_OPER01010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
  217. $('#ITP_FORM_OPER01010_SEARCH_FROM_DT').datepicker('setDate', new Date(now.setMonth(now.getMonth() - 1)));
  218. $('#ITP_FORM_OPER01010_SEARCH_TO_DT').datepicker('setDate', new Date());
  219. },
  220. form: function() {
  221. itp_fn_form_event.onKeyup('#ITP_FORM_OPER01010_DETAIL');
  222. itp_fn_form_event.onKeyup('#ITP_FORM_OPER01010_NEW');
  223. },
  224. afflInfo: {
  225. init: function() {
  226. this.authTpCd = fn_make_user_info.get('authTpCd');
  227. if(this.authTpCd === '30' || this.authTpCd === '40') {
  228. this.afflShopId = fn_make_user_info.get('afflShopId');
  229. this.afflShopNm = fn_make_user_info.get('afflShopNm');
  230. this.brandId = fn_make_user_info.get('brandId');
  231. this.brandNm = fn_make_user_info.get('brandNm');
  232. this.setAffl();
  233. }
  234. },
  235. setAffl: function() {
  236. var _this = this;
  237. var afflShopId = '#ITP_FORM_OPER01010_' + (pageObj.pageMode === 'ADD' ? 'DETAIL' : 'SEARCH') + '_AFFL_SHOP_ID';
  238. var afflShopNm = '#ITP_FORM_OPER01010_' + (pageObj.pageMode === 'ADD' ? 'DETAIL' : 'SEARCH') + '_AFFL_SHOP_NM';
  239. //var brandId = '#ITP_FORM_OPER01010_' + (pageObj.pageMode === 'ADD' ? 'DETAIL' : 'SEARCH') + '_BRAND_ID';
  240. $(afflShopId).val(_this.afflShopId);
  241. $(afflShopNm).val(_this.afflShopNm);
  242. //$(brandId).val(_this.brandId);
  243. $(afflShopNm).attr('readonly', true);
  244. if(_this.authTpCd === '30') {
  245. var callbackFn = (result) => {
  246. var brandList = [];
  247. $.each(result.gridRows, function(i, item) {
  248. brandList.push({'brandId': item.brandId, 'brandNm': item.brandNm});
  249. });
  250. _this.setBrand(brandList);
  251. };
  252. var param = {
  253. 'afflShopId': _this.afflShopId
  254. };
  255. fn_ajax_call(API_POP_GRID_LIST, JSON.stringify(param), callbackFn, 'POST');
  256. } else {
  257. var brandList = [{'brandId': _this.brandId, 'brandNm': _this.brandNm}];
  258. this.setBrand(brandList);
  259. }
  260. },
  261. setBrand: function(AFFL_BRAND) {
  262. var _this = this;
  263. if(AFFL_BRAND.length > 0) {
  264. var brandId = 'ITP_FORM_OPER01010_' + (pageObj.pageMode === 'ADD' ? 'DETAIL_BRAND_ID' : 'SEARCH_BRAND_ID');
  265. (_this.authTpCd === '30') ? fn_make_select_brand(AFFL_BRAND, brandId, true, '선택') : fn_make_select_brand(AFFL_BRAND, brandId, false);
  266. $('#' + brandId).val(_this.brandId);
  267. } else {
  268. }
  269. }
  270. },
  271. ready: function () {
  272. listObj.init();
  273. }
  274. },
  275. event: {
  276. init: function () {
  277. this.button();
  278. },
  279. button: function () {
  280. // 버튼 클릭 이벤트
  281. $('button').each(function() {
  282. var id = $(this).attr('id');
  283. $(this).on('click', function() {
  284. switch (id) {
  285. case 'ITP_BTN_OPER01010_SRH' : listObj.button.search(); break; // 조회 버튼 클릭
  286. case 'ITP_BTN_OPER01010_NEWREG' : listObj.button.create(); break; // 신규등록 버튼
  287. case 'ITP_BTN_OPER01010_MODIFY' : modifyObj.button.modify(); break; // 수정 버튼
  288. case 'ITP_BTN_OPER01010_CANCELLIST' : createObj.button.cancel(); break; // 취소/목록 버튼
  289. case 'ITP_BTN_OPER00210_DELETE' : break; // 삭제 버튼
  290. case 'ITP_BTN_OPER01010_SAVE' : createObj.button.save(); break; // 저장 버튼
  291. case 'ITP_FORM_OPER01010_DETAIL_DUP' : createObj.button.duplicate(); break; // 중복체크
  292. case 'ITP_BTN_OPER01010_NEW_RESET_PW' : createObj.button.resetPass(); break; // 상세:비밀번호 초기화
  293. //case 'ITP_BTN_OPER01010_DETAIL_ADDROW' : pageObj.grid.button.addRow(); break; // 상세:추가버튼
  294. //case 'ITP_BTN_OPER01010_DETAIL_DELROW' : pageObj.grid.button.delRow(); break; // 상세:삭제버튼
  295. //case 'ITP_BTN_OPER01010_NEW_ADDROW' : pageObj.grid.button.addRow(); break; // 상세:추가버튼
  296. //case 'ITP_BTN_OPER01010_NEW_DELROW' : pageObj.grid.button.delRow(); break; // 상세:삭제버튼
  297. }
  298. });
  299. });
  300. }
  301. },
  302. switchScreen: function(mode) {
  303. pageObj.pageMode = mode;
  304. $('.itp_det_head').find('button[id^="ITP_BTN_OPER01010_"]').each(function(i) {
  305. $(this).hide();
  306. });
  307. $('#ITP_TAB_OPER01010').find('div[id$="_CONTAINER"]').each(function(i) {
  308. $(this).hide();
  309. });
  310. if(mode === 'LIST') { // 목록
  311. itp_fn_fire_window_resize();
  312. $('#ITP_AJAX_OPER01010_LIST_CONTAINER').show();
  313. if(fn_make_user_info.get('authTpCd') === '10') {
  314. $('#ITP_FORM_OPER01010_SEARCH_AFFL_SHOP_NM').attr('readonly', false);
  315. } else {
  316. pageObj.ui.afflInfo.init();
  317. $('#ITP_FORM_OPER01010_SEARCH_AFFL_SHOP_ID').val(fn_make_user_info.get('afflShopId'));
  318. $('#ITP_FORM_OPER01010_SEARCH_AFFL_SHOP_NM').val(fn_make_user_info.get('afflShopNm'));
  319. $('#ITP_FORM_OPER01010_SEARCH_AFFL_SHOP_NM').attr('readonly', true);
  320. }
  321. fn_show_btn_auth_array(['#ITP_BTN_OPER01010_SRH', '#ITP_BTN_OPER01010_NEWREG']);
  322. } else if(mode == 'ADD') { // 등록
  323. $('#ITP_AJAX_OPER01010_DETAIL_CONTAINER').show();
  324. fn_show_btn_auth_array(['#ITP_BTN_OPER01010_CANCELLIST', '#ITP_BTN_OPER01010_SAVE']);
  325. $('#ITP_FORM_OPER01010_DETAIL').find('input, textarea, select, checkbox').each(function(i, elem) {
  326. $(this).attr('id') === 'ITP_FORM_OPER01010_DETAIL_VIEW_CD' ? $(this).val('C') : $(this).val('');
  327. if(elem.type === 'select') {
  328. $(this).val('').prop('selected', true);
  329. }
  330. });
  331. //console.log(fn_make_user_info.get('afflShopId]'));
  332. //$('#ITP_FORM_OPER01010_DETAIL_AFFL_SHOP_ID').val(fn_make_user_info.get('afflShopId]'));
  333. //$('#ITP_FORM_OPER01010_DETAIL_BRAND_ID').val(fn_make_user_info.get('brandId]'));
  334. if (fn_make_user_info.get('authTpCd') == "10" || fn_make_user_info.get('authTpCd') == "20") {
  335. $('#ITP_FORM_OPER01010_DETAIL_DELETE_AFFL_SHOP').attr("disabled", false);
  336. $('#ITP_FORM_OPER01010_DETAIL_AFFL_SHOP').attr("disabled", false);
  337. } else if (fn_make_user_info.get('authTpCd') == "30") {
  338. $('#ITP_FORM_OPER01010_DETAIL_DELETE_AFFL_SHOP').attr("disabled", true);
  339. $('#ITP_FORM_OPER01010_DETAIL_AFFL_SHOP').attr("disabled", true);
  340. $('#ITP_FORM_OPER01010_DETAIL_BRAND_ID').attr("disabled", false);
  341. } else {
  342. $('#ITP_FORM_OPER01010_DETAIL_DELETE_AFFL_SHOP').attr("disabled", true);
  343. $('#ITP_FORM_OPER01010_DETAIL_AFFL_SHOP').attr("disabled", true);
  344. $('#ITP_FORM_OPER01010_DETAIL_BRAND_ID').attr("disabled", true);
  345. }
  346. pageObj.ui.afflInfo.init();
  347. } else if(mode === 'MODIFY') { // 수정
  348. $('#ITP_AJAX_OPER01010_NEW_CONTAINER').show();
  349. fn_show_btn_auth_array(['#ITP_BTN_OPER01010_CANCELLIST', '#ITP_BTN_OPER01010_SAVE', '#ITP_BTN_OPER01010_RESET_PW']);
  350. // $('#ITP_FORM_OPER01010_DETAIL #ITP_FORM_OPER01010_DETAIL_AFFL_SHOP_NM').prop('readonly', true);
  351. } else if(mode === 'VIEW') { // 보기
  352. $('#ITP_AJAX_OPER01010_VIEW_CONTAINER').show();
  353. fn_show_btn_auth_array(['#ITP_BTN_OPER01010_MODIFY', '#ITP_BTN_OPER01010_CANCELLIST']);
  354. }
  355. }
  356. };
  357. /*목록화면 Object*/
  358. let listObj = {
  359. init: function () {
  360. // Grid
  361. this.grid.init();
  362. },
  363. itp_OPER01010_param: {},
  364. itp_OPER01010_search: false,
  365. button: {
  366. search: function () {
  367. listObj.itp_OPER01010_search = true;
  368. let param = $('#ITP_FORM_OPER01010_SEARCH').serializeObject();
  369. param.gridSize = $.jgrid.defaults.rowNum;
  370. param.gridPage = $.jgrid.defaults.page;
  371. $(OPER01010_GRID_ID).data('grid-param',param);
  372. $(OPER01010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
  373. },
  374. create: function () {
  375. pageObj.switchScreen('ADD');
  376. itp_fn_form_clear_validate(null, '#ITP_FORM_OPER01010_DETAIL');
  377. createObj.init();
  378. }
  379. },
  380. grid: {
  381. init: function() {
  382. // 데이터 없을때
  383. this.itp_fn_OPER01010_empty.push();
  384. itp_fn_jqgrid_resize(OPER01010_GRID_ID, OPER01010_GRID_LIST, 'lg');
  385. this.search();
  386. },
  387. colModel: gridColModel.list,
  388. search: function() {
  389. pageObj.switchScreen('LIST');
  390. this.unload();
  391. this.load();
  392. },
  393. load: function() {
  394. var _this = this;
  395. let param = $('#ITP_FORM_OPER01010_SEARCH').serializeObject();
  396. param.gridSize = $.jgrid.defaults.rowNum;
  397. var option = {
  398. gridId: OPER01010_GRID_ID,
  399. colModel: this.colModel,
  400. param: param,
  401. url: DOMAIN + API_DETAIL_GRID_LIST,
  402. pager: OPER01010_GRID_PAGER,
  403. autowidth: true,
  404. shrinkToFit :false,
  405. onCellSelect: function(rowId, cellIdx, cellValue) {
  406. var cm = $(this).jqGrid('getGridParam', 'colModel');
  407. var colNm = cm[cellIdx].name;
  408. if (colNm === 'userNm') {
  409. const selectVal = $(this).jqGrid('getCell', rowId, 'userId');
  410. const key = {userId: selectVal, viewCd: 'R'};
  411. var param = $.param(key);
  412. viewObj.init(param);
  413. }
  414. },
  415. loadComplete: function(data) {
  416. console.log(data);
  417. itp_fn_grid_load_complete(data, OPER01010_GRID_ID, true, 'number', 'OPER01010', listObj.itp_OPER01010_search, _this.itp_fn_OPER01010_empty, true, data.gridRecords, true);
  418. var ids = $(OPER01010_GRID_ID).getDataIDs();
  419. $.each(ids, function(idx, rowId) {
  420. $(OPER01010_GRID_ID).jqGrid('setCell', rowId, 'userNm', '', ITP_GRID_COL_STYLE.link);
  421. });
  422. }
  423. };
  424. itp_fn_grid_make_remote(option);
  425. },
  426. itp_fn_OPER01010_empty: {
  427. push: function() {
  428. let param = $('#ITP_FORM_OPER01010_SEARCH').serializeObject();
  429. listObj.itp_OPER01010_param = param;
  430. },
  431. back: function() {
  432. $('#ITP_FORM_OPER01010_DEVI_TP_CD').val(listObj.itp_OPER01010_param.safflShopId);
  433. $('#ITP_FORM_OPER01010_ORDER_YN').val(listObj.itp_OPER01010_param.safflShopNm);
  434. $('#ITP_FORM_OPER01010_ADT_AUTH_CD').val(listObj.itp_OPER01010_param.sbrandId);
  435. $('#ITP_FORM_OPER01010_EMAIL_RCV_YN').val(listObj.itp_OPER01010_param.snticeTitl);
  436. $('#ITP_FORM_OPER01010_FROM_DT').val(listObj.itp_OPER01010_param.fromDt);
  437. $('#ITP_FORM_OPER01010_TO_DT').val(listObj.itp_OPER01010_param.toDt);
  438. }
  439. },
  440. reload : function() {
  441. $(OPER01010_GRID_EMPTY).off('click').on('click', function() {
  442. _this.itp_fn_OPER01010_empty.back();
  443. listObj.itp_OPER01010_param.gridSize = $.jgrid.defaults.rowNum;
  444. $(OPER01010_GRID_ID).setGridParam({'postData': JSON.stringify(listObj.itp_OPER01010_param)}).trigger('reloadGrid');
  445. });
  446. },
  447. clearData : function() {
  448. $(OPER01010_GRID_ID).jqGrid('clearGridData', true);
  449. $(OPER01010_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
  450. $(OPER01010_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
  451. $(OPER01010_GRID_EMPTY).show();
  452. },
  453. unload : function() {
  454. $.jgrid.gridUnload(OPER01010_GRID_ID);
  455. }
  456. }
  457. };
  458. /*상세화면 Object*/
  459. let viewObj = {
  460. init: function (param) {
  461. this.load(param);
  462. },
  463. button: {
  464. },
  465. load: function(param) {
  466. fn_ajax_call(API_DETAIL_INFO, param, this.callback, 'GET');
  467. },
  468. callback: function (result) {
  469. console.log(result);
  470. pageObj.switchScreen('VIEW');
  471. $('#ITP_FORM_OPER01010_VIEW #ITP_FORM_OPER01010_VIEW_USER_ID').val(result.userId);
  472. $('#ITP_FORM_OPER01010_VIEW .fnAfflShopNm').text(result.afflShopNm);
  473. $('#ITP_FORM_OPER01010_VIEW .fnBrandNm').text(result.brandNm);
  474. $('#ITP_FORM_OPER01010_VIEW .fnUserNm').text(result.userNm);
  475. $('#ITP_FORM_OPER01010_VIEW .fnAuthTpNm').text(result.authTpNm);
  476. $('#ITP_FORM_OPER01010_VIEW .fnUserStatNm').text(result.userStatNm);
  477. $('#ITP_FORM_OPER01010_VIEW .fnUserId').text(result.userId);
  478. $('#ITP_FORM_OPER01010_VIEW .fnEmail').text(result.email);
  479. $('#ITP_FORM_OPER01010_VIEW .fnTelNo').text(result.telNo);
  480. $('#ITP_FORM_OPER01010_VIEW .fnAddDt').text(result.addDt);
  481. $('#ITP_FORM_OPER01010_VIEW .fnLastLoginDt').text(result.lastLoginDt);
  482. $('#ITP_FORM_OPER01010_VIEW .fnStoreNm').text(result.storeNm);
  483. $('#ITP_FORM_OPER01010_VIEW .fnSpplyNm').text(result.spplyNm);
  484. // 권한정보 리스트 조회
  485. //pageObj.grid.init('VIEW');
  486. }
  487. };
  488. /*수정화면 Object*/
  489. let modifyObj = {
  490. init: function (param) {
  491. },
  492. button: {
  493. modify: function () {
  494. itp_fn_form_clear_validate(null, '#ITP_FORM_OPER01010_NEW');
  495. const userIdVal = $('#ITP_FORM_OPER01010_VIEW_USER_ID').val();
  496. const key = {userId: userIdVal, viewCd: 'R'};
  497. var param = $.param(key);
  498. modifyObj.load(param);
  499. }
  500. },
  501. load: function(param) {
  502. fn_ajax_call(API_DETAIL_INFO, param, this.callback, 'GET');
  503. },
  504. callback: function (result) {
  505. console.log(result);
  506. pageObj.switchScreen('MODIFY');
  507. $('#ITP_FORM_OPER01010_NEW #ITP_FORM_OPER01010_NEW_VIEW_CD').val('U');
  508. $('#ITP_FORM_OPER01010_NEW #ITP_FORM_OPER01010_NEW_AFFL_SHOP_ID').val(result.afflShopId);
  509. $('#ITP_FORM_OPER01010_NEW .fnAfflShopNm').text(result.afflShopNm);
  510. $('#ITP_FORM_OPER01010_NEW .fnBrandNm').text(result.brandNm);
  511. $('#ITP_FORM_OPER01010_NEW #ITP_FORM_OPER01010_NEW_BRAND_ID').val(result.brandId);
  512. $('#ITP_FORM_OPER01010_NEW #ITP_FORM_OPER01010_NEW_USER_NM').val(result.userNm);
  513. $('#ITP_FORM_OPER01010_NEW #ITP_FORM_OPER01010_NEW_USER_STAT_CD').val(result.userStatCd);
  514. $('#ITP_FORM_OPER01010_NEW #ITP_FORM_OPER01010_NEW_USER_ID').val(result.userId);
  515. $('#ITP_FORM_OPER01010_NEW .fnBrandKey').text(result.brandKey);
  516. $('#ITP_FORM_OPER01010_NEW .fnUserId').text(result.userId);
  517. $('#ITP_FORM_OPER01010_NEW #ITP_FORM_OPER01010_NEW_USER_PW').val(result.userPw);
  518. $('#ITP_FORM_OPER01010_NEW #ITP_FORM_OPER01010_NEW_TEL_NO').val(result.telNo);
  519. $('#ITP_FORM_OPER01010_NEW #ITP_FORM_OPER01010_NEW_EMAIL').val(result.email);
  520. $('#ITP_FORM_OPER01010_NEW .fnAddDt').text(result.userStatDt);
  521. $('#ITP_FORM_OPER01010_NEW .fnAuthTpNm').text(result.authTpNm);
  522. $('#ITP_FORM_OPER01010_NEW .fnStoreNm').text(result.storeNm);
  523. $('#ITP_FORM_OPER01010_NEW .fnSpplyNm').text(result.spplyNm);
  524. // $('#ITP_FORM_OPER01010_NEW .fnAddDt').text(result.addDt);
  525. // $('#ITP_FORM_OPER01010_NEW .fnLastLoginDt').text(result.lastLoginDt);
  526. //ITP_FORM_OPER01010_DETAIL_USER_ID
  527. // 리스트 조회
  528. //pageObj.grid.init('NEW');
  529. }
  530. };
  531. /*신규화면 Object*/
  532. let createObj = {
  533. init: function () {
  534. },
  535. button: {
  536. duplicate: function() {
  537. const formId = '#ITP_FORM_OPER01010_DETAIL';
  538. itp_fn_form_clear_validate(null, formId);
  539. var vali_userId = itp_fn_form_validate(formId, formId + '_USER_ID', ['empty'], undefined);
  540. if (vali_userId) {
  541. var dupFn = function(result) {
  542. if (result.code == 'N') {
  543. ITP_FORM_OPER01010_DETAIL_IS_DUPLICATE = false;
  544. } else {
  545. ITP_FORM_OPER01010_DETAIL_IS_DUPLICATE = true;
  546. }
  547. };
  548. const key = {'userId': $(formId + '_USER_ID').val()};
  549. const param = $.param(key);
  550. fn_ajax_call(API_CHECK_DUPLICATE, param, dupFn, 'GET');
  551. }
  552. },
  553. resetPass: function() {
  554. var resetPwFn = {
  555. callBack: function(args) {
  556. const key = {'userId': $('#ITP_FORM_OPER01010_NEW_USER_ID').val()};
  557. const param = $.param(key);
  558. fn_ajax_call(API_INTI_USERPW, param, undefined, 'GET');
  559. }
  560. };
  561. itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.askResetUserPw, resetPwFn, null);
  562. },
  563. save: function() {
  564. const formId = (pageObj.pageMode === 'MODIFY') ? '#ITP_FORM_OPER01010_NEW' : '#ITP_FORM_OPER01010_DETAIL';
  565. itp_fn_form_clear_validate(null, formId);
  566. if (itp_fn_form_event.isValid(formId)) {
  567. if($(formId + ' #ITP_FORM_OPER01010_DETAIL_USER_PW').val() !== $(formId + ' #ITP_FORM_OPER01010_DETAIL_USER_PW_CONFIRM').val()) {
  568. var element = '#ITP_FORM_OPER01010_DETAIL_USER_PW';
  569. $(element).closest('.itp_ip').addClass('has-error');
  570. var error_msg = $('<span class="help-block">' + ITP_MSG_LOCALE.message.form.wrongPwd + '</span>');
  571. error_msg.insertAfter($(element));
  572. return;
  573. }
  574. if (ITP_FORM_OPER01010_DETAIL_IS_DUPLICATE) {
  575. itp_fn_modal_duplicate(ITP_MSG_LOCALE.label.userId, formId + '_USER_ID');
  576. } else {
  577. let param = $(formId).serializeObject();
  578. if (fn_make_user_info.get('authTpCd') == "40") {
  579. param.brandId = fn_make_user_info.get('brandId');
  580. }
  581. var searhFn = function() {
  582. ITP_FORM_OPER01010_DETAIL_IS_WRITING = false;
  583. listObj.grid.search();
  584. };
  585. fn_ajax_call(API_DETAIL_SAVE, JSON.stringify(param), searhFn, 'POST');
  586. }
  587. } else {
  588. console.log('유효성 실패');
  589. }
  590. },
  591. cancel: function() {
  592. listObj.grid.search();
  593. }
  594. }
  595. };
  596. /*브랜드그룹 Object*/
  597. let afflShopObj = {
  598. init: function () {
  599. this.action();
  600. },
  601. action: function () {
  602. var _this = this;
  603. // 브랜드그룹 조회 버튼 클릭
  604. $('#ITP_FORM_OPER01010_SEARCH_AFFL_SHOP').on('click', function() {
  605. _this.popup('L');
  606. });
  607. // 브랜드그룹 텍스트 삭제 버튼 클릭
  608. $('#ITP_FORM_OPER01010_DELETE_AFFL_SHOP').on('click', function() {
  609. $('#ITP_FORM_OPER01010_SEARCH_AFFL_SHOP_NM').val('');
  610. $('select#ITP_FORM_OPER01010_SEARCH_BRAND_ID option').remove();
  611. });
  612. // 신규등록 브랜드그룹 조회 버튼 클릭
  613. $('#ITP_FORM_OPER01010_DETAIL_AFFL_SHOP').on('click', function() {
  614. _this.popup('C');
  615. });
  616. // 신규등록 브랜드그룹 텍스트 삭제 버튼 클릭
  617. $('#ITP_FORM_OPER01010_DETAIL_DELETE_AFFL_SHOP').on('click', function() {
  618. $('#ITP_FORM_OPER01010_DETAIL_AFFL_SHOP_NM').val('');
  619. $('select#ITP_FORM_OPER01010_DETAIL_BRAND_ID option').remove();
  620. });
  621. },
  622. popup: function (view) {
  623. // 팝업
  624. var popFn = (view === 'C') ? this.callback.create : this.callback.list;
  625. fn_call_popup('biz', 'BIZPOP_AFFL_SHOP', '#ITP_ASIDE', popFn, null, 'S');
  626. },
  627. callback: {
  628. list: function(rowDataPop) {
  629. // console.log(rowDataPop);
  630. if(rowDataPop.AFFL_SHOP) {
  631. $('#ITP_FORM_OPER01010_SEARCH_AFFL_SHOP_ID').val(rowDataPop.AFFL_SHOP.afflShopId);
  632. $('#ITP_FORM_OPER01010_SEARCH_AFFL_SHOP_NM').val(rowDataPop.AFFL_SHOP.afflShopNm);
  633. }
  634. if(rowDataPop.AFFL_BRAND) {
  635. fn_make_select_brand(rowDataPop.AFFL_BRAND, 'ITP_FORM_OPER01010_SEARCH_BRAND_ID', true, '선택');
  636. }
  637. },
  638. create: function(rowDataPop) {
  639. console.log(rowDataPop);
  640. if(rowDataPop.AFFL_SHOP) {
  641. $('#ITP_FORM_OPER01010_DETAIL_AFFL_SHOP_ID').val(rowDataPop.AFFL_SHOP.afflShopId);
  642. $('#ITP_FORM_OPER01010_DETAIL_AFFL_SHOP_NM').val(rowDataPop.AFFL_SHOP.afflShopNm);
  643. }
  644. if(rowDataPop.AFFL_BRAND) {
  645. fn_make_select_brand(rowDataPop.AFFL_BRAND, 'ITP_FORM_OPER01010_DETAIL_BRAND_ID', true, '선택');
  646. }
  647. }
  648. }
  649. };