| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319 |
- <!DOCTYPE html>
- <html lang="ko"
- xmlns:th="http://www.thymeleaf.org">
- <!--
- *******************************************************************************
- * @source : NotiinfoForm.html
- * @desc : 정보고시 목록
- *============================================================================
- * STYLE24
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER DATE AUTHOR DESCRIPTION
- * === =========== ========== =============================================
- * 1.0 2020.10.19 eskim 최초 작성
- *******************************************************************************
- -->
- <div id="main">
- <!-- 메인타이틀 영역 -->
- <div class="main-title">
- </div>
- <!-- //메인타이틀 영역 -->
-
- <!-- 메뉴 설명 -->
- <div class="infoBox menu-desc">
- </div>
- <!-- //메뉴 설명 -->
- <!-- 테이블 영역 -->
- <div class="panelStyle">
- <form id="searchForm" name="searchForm" action="#" th:action="@{'/goods/notiInfo/list'}" >
- <input type="hidden" id="niClsfCd" name="niClsfCd"/>
- <div class="boxTitle"></div>
- <ul class="boxContent">
- <li class="boxContentBtnT">
- <span style="padding:5.5px 15px; background:#e9ecfb; border-top:1px solid #dae0fd; border-bottom:0.5px solid #dae0fd;">업체</span>
- <select name="supplyCompCd" id="supplyCompCd">
- <option value="S0001" th:if="${sessionInfo.roleCd != 'G001_B000' }" th:selected="${sessionInfo.roleCd != 'G001_B000'}">한세엠케이</option>
- <option value="S0002" th:if="${sessionInfo.roleCd != 'G001_B000' }">한세드림</option>
- <option value="E" th:selected="${sessionInfo.roleCd == 'G001_B000'}">입점</option>
- </select>
- </li>
- <li class="boxContentTop">
- <table class="w100p">
- <colgroup>
- <col style="width:39%;"/>
- <col style="width:2%;"/>
- <col/>
- <col style="width:10%;"/>
- </colgroup>
- <tr>
- <td><h4>고시분류</h4></td>
- <td> </td>
- <td><h4>고시항목</h4></td>
- <td class="aR padB10"><button type="button" class="btn btn-success btn-lg" id="btnNotiItemlSave">저장</button></td>
- </tr>
- <tr>
- <td><div id="gridNotiList" style="width: 100%; height: 600px;" class="ag-theme-balham"></div></td>
- <td> </td>
- <td colspan="2"><div id="gridNotiItemlList" style="width: 100%; height: 600px;" class="ag-theme-balham"></div></td>
- </tr>
- </table>
- </li>
- </ul>
- </form>
- </div>
- <!-- //테이블 영역 -->
- </div>
- <script th:inline="javascript">
- /*<![CDATA[*/
- var useYnList = gagajf.convertToArray([[${useYnList}]]);
- var niItemCdList = gagajf.convertToArray([[${niItemCdList}]]);
- // specify the columns
- var columnNotiDefs = [
- /* {width: 40, minWidth: 40, cellClass: 'text-right', headerCheckboxSelection: true, checkboxSelection: true, filter: false}, */
- {headerName: "CRUD", field: "crud", width: 75, minWidth: 75, hide: true},
- //{headerName: 'No', width: 60, cellClass: 'text-center', valueGetter: function(params) { return params.node.rowIndex + 1 }},
- {headerName: "고시분류코드", field: "niClsfCd", width: 150, cellClass: 'text-center',editable: true,
- editable : function(params){return params.data.crud=='C' ? true : false;},
- cellEditor: 'textCellEditor',
- cellEditorParams: { maxlength: 50, required: true },
- cellRenderer: function(params) {
- return '<a href="javascript:void(0);">' + params.value + '</a>';
- }
- },
- {headerName: "상품 정보고시명", field: "niClsfNm", width: 440, cellClass: 'text-center',editable: true,
- editable : function(params){return params.data.crud=='C' ? true : false;}
- },
- {headerName: "등록일자", field: "regDt" , width: 150, cellClass: 'text-center', hide: true},
- {headerName: "수정일자", field: "udtDt", width: 150, cellClass: 'text-center', hide: true}
- ];
-
- var columnNotiItemlDefs = [
- {width: 40, minWidth: 40, cellClass: 'text-right', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
- {headerName: "CRUD", field: "crud", width: 75, minWidth: 75, hide: true},
- {headerName: "항목명", field: "niItemCd" , width: 200, cellClass: 'text-left' ,editable: true,
- editable : function(params){return params.data.crud=='C' ? true : false;},
- cellEditor: 'agRichSelectCellEditor',
- cellEditorParams: { values: gagaAgGrid.extractValues(niItemCdList) },
- valueFormatter: function (params) { return gagaAgGrid.lookupValue(niItemCdList, params.value); },
- valueParser: function (params) { return gagaAgGrid.lookupKey(niItemCdList, params.newValue); }
- },
- {headerName: "내용", field: "niContent" , width: 350, cellClass: 'text-left' ,editable: true,
- cellEditor: 'textCellEditor',
- cellEditorParams: { maxlength: 500, required: true }
- },
- {headerName: "필수여부", field: "reqYn" , width: 110, cellClass: 'text-center',editable: false,
- cellEditor: 'agRichSelectCellEditor',
- cellEditorParams: { values: gagaAgGrid.extractValues(useYnList), required: true },
- valueFormatter: function (params) { return gagaAgGrid.lookupValue(useYnList, params.value); },
- valueParser: function (params) { return gagaAgGrid.lookupKey(useYnList, params.newValue); }
- },
- {headerName: "노출여부", field: "dispYn" , width: 110, cellClass: 'text-center',editable: true,
- cellEditor: 'agRichSelectCellEditor',
- cellEditorParams: { values: gagaAgGrid.extractValues(useYnList), required: true },
- valueFormatter: function (params) { return gagaAgGrid.lookupValue(useYnList, params.value); },
- valueParser: function (params) { return gagaAgGrid.lookupKey(useYnList, params.newValue); }
- },
- {headerName: "노출순서", field: "dispOrd" , width: 110, cellClass: 'text-center',editable: true,
- cellEditor: 'textCellEditor',
- cellEditorParams: { maxlength: 3, validType: 'integer', required: true }
- },
- {headerName: "등록일자", field: "regDt" , width: 150, cellClass: 'text-center', hide: true},
- {headerName: "수정일자", field: "udtDt", width: 150, cellClass: 'text-center', hide: true},
- {headerName: "niClsfCd", field: "niClsfCd", hide: true},
- {headerName: "supplyCompCd", field: "supplyCompCd", hide: true}
- ];
- // Get GridOptions
- var gridNotiOptions = gagaAgGrid.getGridOptions(columnNotiDefs);
-
- var gridNotiItemlOptions = gagaAgGrid.getGridOptions(columnNotiItemlDefs);
-
- //그리드 셀에디트 하는 화면에 옵션 추가해 주면 포커스 잃을 시 에디트 바로 중지(데이터 변경후 엔터 안쳐도 됩)
- gridNotiItemlOptions.stopEditingWhenGridLosesFocus = true;
- // Add on options
- gridNotiItemlOptions.rowSelection = 'multiple';
- gridNotiItemlOptions.suppressRowClickSelection = true;
-
- //Row Click
- gridNotiOptions.onCellClicked = function(event) {
- var niClsfCd = event.data.niClsfCd;
- if (event.colDef.field == "niClsfCd" && event.data.crud != "C"){
- fnNotiItemlSearch(niClsfCd);
- }
- }
-
- // 조회
- var fnSearch = function() {
- var formId = '#searchForm';
- $('#searchForm input[name=niClsfCd]').val('');
-
- if (gagajf.isNull($('#searchForm select[name=supplyCompCd]').val())){
- mcxDialog.alertC("업체를 선택해 주세요.", {
- sureBtnText: "확인",
- sureBtnClick: function() {
- $('#searchForm select[name=supplyCompCd]').focus();
- }
- });
- return;
- }
- gagaAgGrid.fetch($(formId).prop('action'), gridNotiOptions, formId);
- fnNotiItemlSearch('01'); // 임의값을 넣어서 고시항목 초기화
-
- }
- // 상세 조회
- var fnNotiItemlSearch = function(niClsfCd){
- $('#searchForm input[name=niClsfCd]').val(niClsfCd);
-
- var actionUrl = "/goods/notiInfo/item/list";
- gagaAgGrid.fetch(actionUrl, gridNotiItemlOptions, '#searchForm');
- }
- // 고시항목 행추가
- $('#btnNotiItemlAddRow').on('click', function() {
-
- if ($('#searchForm input[name=niClsfCd]').val() == ""){
- mcxDialog.alert("고시분류 선택 후 추가해 주세요.");
- return;
- }
- var iRow = gridNotiItemlOptions.api.getDisplayedRowCount();
-
- var allRowData = gagaAgGrid.getAllRowData(gridNotiItemlOptions);
- var maxDispOrd = 0;
- allRowData.forEach(function(item, index) {
- if (item.dispOrd > maxDispOrd){
- maxDispOrd = item.dispOrd;
- }
- });
-
- var niClsfCd = $('#searchForm input[name=niClsfCd]').val();
- var supplyCompCd = $('#searchForm select[name=supplyCompCd]').val();
-
- var data = { crud: "C", niItemCd: "", niContent: "", dispOrd: Number(maxDispOrd)+1, niClsfCd: niClsfCd, supplyCompCd: supplyCompCd};
-
- //그리드 마지막에 추가해야함
- gridNotiItemlOptions.api.updateRowData({add: [data], addIndex: 0});
- });
-
- // 고시항목 행삭제
- $('#btnNotiItemlDeleteRow').on('click', function() {
-
- var selectedData = gagaAgGrid.selectedRowData(gridNotiItemlOptions);
- var iTotalCnt = 0;
- var iCnt = 0;
- selectedData.forEach(function(item, index) {
- iTotalCnt ++;
- if (item.crud == "C"){
- gridNotiItemlOptions.api.updateRowData({remove: [item]});
- iCnt ++;
- }
- });
-
- if (iTotalCnt > 0 && iTotalCnt == iCnt){
- return;
- }
-
- if (selectedData.length == 0) {
- mcxDialog.alert('선택된 행이 없습니다.');
- return;
- }
-
- mcxDialog.confirm('삭제하시겠습니까?', {
- cancelBtnText: "취소",
- sureBtnText: "확인",
- sureBtnClick: function(){
- //화면에서 삭제
- var removedData = gagaAgGrid.removeRowData(gridNotiItemlOptions, false);
-
- var jsonData = JSON.stringify(removedData);
- gagajf.ajaxJsonSubmit('/goods/notiInfo/item/delete', jsonData, fnNotiItemlCollBack);
- }
- });
- });
-
- // 고시항목 저장
- $('#btnNotiItemlSave').on('click', function() {
-
- var checkFlag = false;
-
- var selectedData = gagaAgGrid.selectedRowData(gridNotiItemlOptions);
-
- if (selectedData.length == 0) {
- mcxDialog.alert('선택된 행이 없습니다.');
- return;
- }
-
- // Validation
- if (!gagaAgGrid.validation(gridNotiItemlOptions, selectedData))
- return;
-
- //항목 중복 여부 확인
- var allRowData = gagaAgGrid.getAllRowData(gridNotiItemlOptions);
- var loopRowData = gagaAgGrid.getAllRowData(gridNotiItemlOptions);
- var selIndex = 0;
-
- selectedData.forEach(function(item, index) {
-
- if(checkFlag) return false;
-
- if (item.crud == "C"){
- selIndex = index;
- loopRowData.forEach(function(loopItem, loopIndex) {
- if (selIndex != loopIndex){
- if(item.niItemCd == loopItem.niItemCd){
- checkFlag = true;
- mcxDialog.alertC("항목명이 중복됩니다. 확인해주세요.", {
- sureBtnText: "확인",
- sureBtnClick: function() {
- gridNotiItemlOptions.api.setFocusedCell(selIndex, "niItemCd", null);
- }
- });
- return;
- }
- }
- });
- }
- });
-
- if(checkFlag) return false;
-
-
- mcxDialog.confirm('저장하시겠습니까?', {
- cancelBtnText: "취소",
- sureBtnText: "확인",
- sureBtnClick: function(){
- var jsonData = JSON.stringify(selectedData);
- gagajf.ajaxJsonSubmit('/goods/notiInfo/item/save', jsonData, fnNotiItemlCollBack);
- }
- });
- });
-
- var fnNotiItemlCollBack = function(){
- fnNotiItemlSearch($('#searchForm input[name=niClsfCd]').val());
- }
-
- $("#supplyCompCd").on("change", function(){
- fnSearch();
- });
-
- $(document).ready(function() {
- // Create a agGrid
- gagaAgGrid.createGrid('gridNotiList', gridNotiOptions);
-
- // Create a agGrid
- gagaAgGrid.createGrid('gridNotiItemlList', gridNotiItemlOptions);
-
- fnSearch();
- });
- /*]]>*/
- </script>
- </html>
|