| | |
| | | |
| | | // 함수 |
| | | $scope.fn = { |
| | | getPageList : getPageList, // 업체 관리 리스트 |
| | | makeTableConfigs : makeTableConfigs, // 테이블 설정 |
| | | changePageRowCount : changePageRowCount, // 페이지 변경 |
| | | initSearch : initSearch, //검색 조건 초기화 |
| | | add : add, //업체 생성 |
| | | makeSearchConditions : makeSearchConditions, //엑셀 다운로드 |
| | | removes : removes, //업체 삭제 |
| | | importExcel : importExcel, // 엑셀 import 기능 팝업 호출 |
| | | }; |
| | | |
| | | // 변수 |
| | |
| | | tableConfigs : [], |
| | | }; |
| | | |
| | | $scope.tableEvent = { |
| | | modify : modify //업체 정보 변경 |
| | | }; |
| | | |
| | | $scope.vm.search = { |
| | | name : "", // 업체명 |
| | | }; |
| | | |
| | | $scope.vm.page = { |
| | | selectedPage : 0, |
| | | selectedPageRowCount : String(10) |
| | | }; |
| | | |
| | | $scope.vm.responseData = { |
| | | data : [] |
| | | }; |
| | | |
| | | // 업체 관리 리스트 불러오기 |
| | | $scope.$on("getPageList", function () { |
| | | $scope.fn.getPageList(0); |
| | | }); |
| | | |
| | | // 업체 목록 데이터 갱신 |
| | | $scope.$on("getCompanyFieldList", function () { |
| | | $scope.fn.getPageList(0); |
| | | }); |
| | | |
| | | // 검색 조건 초기화 |
| | | function initSearch() { |
| | | $scope.vm.search.name = ""; |
| | | $scope.fn.getPageList(0); |
| | | } |
| | | |
| | | // 업체 관리 검색 조건을 만든다. |
| | | function makeSearchConditions() { |
| | | return{ |
| | | name: $scope.vm.search.name |
| | | }; |
| | | } |
| | | |
| | | // 페이지 변경 |
| | | function changePageRowCount() { |
| | | $scope.fn.getPageList(0); |
| | | } |
| | | |
| | | // 사용자 정의 필드 목록 테이블 설정 |
| | | function makeTableConfigs() { |
| | |
| | | .setDName("name") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | | .setDRenderer("COMMON_MODIFY")); |
| | | .setDRenderer("COMPANYFIELD_MODIFY")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("companyField.manager") |
| | | .setHWidth("bold") |
| | | .setDName("name") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | | .setDRenderer("COMMON_MODIFY")); |
| | | .setDName("manager") |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("companyField.tel") |
| | | .setHWidth("bold") |
| | | .setDName("name") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | | .setDRenderer("COMMON_MODIFY")); |
| | | .setHWidth("width-200-p bold") |
| | | .setDName("tel") |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("companyField.email") |
| | | .setHWidth("bold") |
| | | .setDName("name") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | | .setDRenderer("COMMON_MODIFY")); |
| | | .setHWidth("width-200-p bold") |
| | | .setDName("email") |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("companyField.desc") |
| | | .setHWidth("bold") |
| | | .setDName("name") |
| | | .setHName("companyField.url") |
| | | .setHWidth("width-200-p bold") |
| | | .setDName("url") |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("companyField.ipRange") |
| | | .setHWidth("width-120-p bold") |
| | | .setDName("ipRange") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | | .setDRenderer("COMMON_MODIFY")); |
| | | .setDRenderer("COMPANYFIELD_IP")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("common.isp") |
| | | .setHWidth("bold") |
| | | .setDName("ispName") |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("common.hosting") |
| | | .setHWidth("bold") |
| | | .setDName("hostingName") |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("companyField.companyType") |
| | | .setHWidth("bold") |
| | | .setDName("companyTypeName") |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("companyField.parentSector") |
| | | .setHWidth("bold") |
| | | .setDName("parentSectorName") |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("companyField.childSector") |
| | | .setHWidth("bold") |
| | | .setDName("childSectorName") |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("companyField.region") |
| | | .setHWidth("width-80-p bold") |
| | | .setDName("regionName") |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("companyField.status") |
| | | .setHWidth("bold") |
| | | .setDName("statusName") |
| | | .setDAlign("text-center")); |
| | | } |
| | | |
| | | // 업체 관리 목록 조회 |
| | | function getPageList(selectedPage) { |
| | | if (selectedPage < 0) { |
| | | selectedPage = 0; |
| | | } |
| | | // 현재 페이지 정보 |
| | | var currentPage = 0; |
| | | |
| | | // 쿠키에 선택한 페이지 정보가 없으면 기본 페이지 정보 0 을 저장 |
| | | if (angular.isUndefined(selectedPage) || selectedPage === "") { |
| | | currentPage = $scope.vm.page.selectedPage; |
| | | } |
| | | else { |
| | | currentPage = selectedPage; |
| | | } |
| | | |
| | | // 업체 관리 검색 조건을 만든다. |
| | | var conditions = $scope.fn.makeSearchConditions(); |
| | | |
| | | //테이블 리스트 데이터 컨트롤러 요청 |
| | | CompanyField.find($resourceProvider.getContent(conditions, |
| | | $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $scope.vm.page.selectedPage = currentPage + 1; |
| | | |
| | | result.data.data.forEach(function (data) { |
| | | // 전화번호 조회시 하이픈 추가, 배열 형태 제거, 콤마 기준 줄바꿈 |
| | | if (data.tel != null && data.tel !== "") { |
| | | var tels = data.tel; |
| | | if (data.tel.indexOf("[") !== -1){ |
| | | tels = data.tel.substr(1, data.tel.indexOf("]")-1); |
| | | } |
| | | var telArr = tels.split(","); |
| | | |
| | | for (var i = 0; i < telArr.length; i++) { |
| | | let hyphen = telArr[i].trim(); |
| | | if (hyphen.length < 9) { |
| | | telArr[i] = hyphen.replace(/^(\d{3,4})(\d{4})$/, "$1-$2"); |
| | | } else { |
| | | telArr[i] = hyphen.replace(/(^02.{0}|^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/, "$1-$2-$3"); |
| | | } |
| | | if (telArr[i] === "") { |
| | | telArr.splice(i,1); |
| | | } |
| | | } |
| | | data.tel = telArr.join(); |
| | | data.tel = data.tel.replace(/\,/g,"</br>"); |
| | | } |
| | | // 이메일 조회시 배열 형태 제거 및 콤마 기준으로 줄바꿈 |
| | | if ($rootScope.isDefined(data.email)) { |
| | | if (data.email.indexOf("[") !== -1){ |
| | | data.email = data.email.substr(1, data.email.indexOf("]")-1); |
| | | } |
| | | if (data.email.indexOf(",") !== -1) { |
| | | data.email = data.email.replace(/\,/g,"</br>"); |
| | | } |
| | | } |
| | | // url 조회시 콤마 기준으로 줄바꿈 |
| | | if ($rootScope.isDefined(data.url)) { |
| | | data.url = data.url.trim(); |
| | | if (data.url.indexOf(",") !== -1) { |
| | | data.url = data.url.replace(/\,/g,"</br>"); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | $scope.vm.responseData = result.data; |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("companyField.failedToSelectCompanyFieldFullList"), result.data.message.message); // 업체 관리 목록 조회 실패 |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 업체 생성 |
| | | function add() { |
| | | $uibModal.open({ |
| | | templateUrl : 'views/companyField/companyFieldAdd.html', |
| | | size : "md", |
| | | controller : 'companyFieldAddController', |
| | | backdrop : 'static', |
| | | resolve : { |
| | | parameter : function () { |
| | | return { |
| | | }; |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 업체 수정 |
| | | function modify(id) { |
| | | $uibModal.open({ |
| | | templateUrl : 'views/companyField/companyFieldModify.html', |
| | | size : "md", |
| | | controller : 'companyFieldModifyController', |
| | | backdrop : 'static', |
| | | resolve : { |
| | | parameter : function () { |
| | | return { |
| | | id : id |
| | | }; |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 엑셀 import 팝업 호출 |
| | | function importExcel() { |
| | | $uibModal.open({ |
| | | templateUrl : 'views/companyField/companyFieldExcelImport.html', |
| | | size : "lg", |
| | | controller : 'companyFieldImportExcelController', |
| | | backdrop : 'static' |
| | | }); |
| | | } |
| | | |
| | | // 업체 삭제 |
| | | function removes() { |
| | | var removeIds = []; |
| | | |
| | | angular.forEach($scope.vm.responseData.data, function (data) { |
| | | if (data.checked) { |
| | | removeIds.push(data.id); |
| | | } |
| | | }); |
| | | |
| | | if (removeIds.length < 1) { |
| | | SweetAlert.swal({ |
| | | title : $filter("translate")("common.checkPurgingTargets"), // 삭제 대상 확인 |
| | | text : $filter("translate")("common.selectDestinationDeletion"), // 삭제 대상을 선택하세요. |
| | | type : "warning" |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | // 삭제 알림 |
| | | SweetAlert.swal({ |
| | | title : $filter("translate")("companyField.delete"), // "업체 삭제" |
| | | text : $filter("translate")("companyField.wantToDeleteSelectCompanyField"), // "선택한 부서를 삭제하겠습니까? 삭제된 부서는 복구할 수 없습니다." |
| | | type : "warning", |
| | | showCancelButton : true, |
| | | confirmButtonColor : "#DD6B55", |
| | | confirmButtonText : $filter("translate")("common.delete"), // 삭제 |
| | | cancelButtonText : $filter("translate")("common.cancel"), // 취소 |
| | | closeOnConfirm : false, |
| | | closeOnCancel : true |
| | | }, |
| | | function (isConfirm) { |
| | | SweetAlert.close(); |
| | | |
| | | if (isConfirm) { |
| | | $rootScope.spinner = true; |
| | | |
| | | CompanyField.removes($resourceProvider.getContent( |
| | | { removeIds : removeIds }, |
| | | $resourceProvider.getPageContent(0, 0))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $timeout(function () { |
| | | SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // 삭제 성공 |
| | | }, 100); |
| | | |
| | | $scope.fn.getPageList(0); |
| | | } |
| | | else { |
| | | $timeout(function () { |
| | | SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // 삭제 실패 |
| | | }, 100); |
| | | } |
| | | |
| | | $rootScope.spinner = false; |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | $scope.fn.makeTableConfigs(); |
| | | $scope.fn.getPageList(); |
| | | } |
| | | ]); |
| | | } |