Index: arms/js/analysisCost.js =================================================================== diff -u -rfbb8554d00c1b2e96b898485db2cc066209212a7 -r927c642d0613b7be2f76131be468c7936bf84471 --- arms/js/analysisCost.js (.../analysisCost.js) (revision fbb8554d00c1b2e96b898485db2cc066209212a7) +++ arms/js/analysisCost.js (.../analysisCost.js) (revision 927c642d0613b7be2f76131be468c7936bf84471) @@ -394,117 +394,9 @@ console.log(" [ analysisCost :: costInput ] :: 인력데이터 => " + JSON.stringify(전체담당자목록)); file_upload_setting(); - //versionInput(pdServiceVersionLinks); manpowerInput(전체담당자목록); } -/*function versionInput(pdServiceVersionLinks) { - - if ($.fn.dataTable.isDataTable('#version-cost')) { - $('#version-cost').DataTable().clear().destroy(); - } - - let selectedVersions = pdServiceVersionLinks.split(','); - - let versionTableData = selectedVersions.map(versionId => { - let item = versionListData[versionId]; - let startDate = item.c_pds_version_start_date === "start" ? formatDate(new Date()) : formatDate(item.c_pds_version_start_date); - let endDate = item.c_pds_version_end_date === "end" ? formatDate(new Date()) : formatDate(item.c_pds_version_end_date); - return { // 객체를 바로 반환 - version: item.c_title, - period: startDate + " ~ " + endDate, - cost: 0, - c_id: item.c_id - }; - }); - - var columnList = [ - { - name: "versionId", - title: "버전아이디", - data: "c_id", - render: function (data, type, row, meta) { - if (isEmpty(data) || data === "unknown") { - return "
N/A
"; - } else { - return "
" + data + "
"; - } - return data; - }, - className: "dt-center", - visible: false - }, - { - name: "version", - title: "버전", - data: "version", - render: function (data, type, row, meta) { - if (isEmpty(data) || data === "unknown") { - return "
N/A
"; - } else { - return "
" + data + "
"; - } - return data; - }, - className: "dt-center", - visible: true - }, - { - name: "period", - title: "기간", - data: "period", - render: function (data, type, row, meta) { - var dates = data.split(' ~ '); - if(type === 'sort' || type === 'type'){ - return dates[0]; // startDate로 정렬 - } - return data; // 원래 형태로 표시 - }, - className: "dt-center", - visible: true - }, - { - name: "cost", - title: "비용 (입력)", - data: "cost", - render: function(data, type, row) { - return ' 만원'; - }, - className: "dt-center", - visible: true - } - ]; - - var rowsGroupList = []; - var columnDefList = []; - var orderList = [[2, "desc"]]; - var jquerySelector = "#version-cost"; - var ajaxUrl = ""; - var jsonRoot = ""; - var buttonList = []; - var selectList = {}; - var isServerSide = false; - var scrollY = false; - var data = versionTableData; - var isAjax = false; - - dataTableRef = dataTable_build( - jquerySelector, - ajaxUrl, - jsonRoot, - columnList, - rowsGroupList, - columnDefList, - selectList, - orderList, - buttonList, - isServerSide, - scrollY, - data, - isAjax - ); -}*/ - function manpowerInput(전체담당자목록) { if ($.fn.dataTable.isDataTable('#manpower-annual-income')) { @@ -593,7 +485,8 @@ isAjax ); - excel_download(); + // 템플릿 다운로드 + excel_download(manpowerData); } // 데이터 테이블 구성 이후 꼭 구현해야 할 메소드 : 열 클릭시 이벤트 @@ -638,27 +531,34 @@ }); } -function excel_download() { +function excel_download(manpowerData) { + console.log(" [ analysisCost :: excel_download ] :: manpowerData => " + JSON.stringify(manpowerData)); - /* var tempDataTable = $("#manpower-annual-income").DataTable(); - var data = tempDataTable.rows().data().toArray(); - var json = JSON.stringify(data); - console.log(" [ analysisCost :: 비용 분석 계산 ] :: 인력 테이블 -> " + json); + let fileName = "인력별_연봉정보_템플릿.xlsx"; - - $("#excel-annual-income-template-download").click(function () { - $.ajax({ - url: "/auth-user/api/arms/analysis/cost/excel-download.do?excelFileName=" + "test", - type: "POST", - data: json, - contentType: "application/json", - statusCode: { - 200: function (data) { - console.log("success"); - } - } - }) - });*/ + $("#excel-annual-income-template-download").click(function () { + $.ajax({ + url: "/auth-user/api/arms/analysis/cost/excel-download.do?excelFileName=" + fileName, + type: "POST", + data: JSON.stringify(manpowerData), + contentType: "application/json", + xhrFields: { + responseType: 'blob' // 응답 데이터 타입을 blob으로 설정 + }, + statusCode: { + 200: function (data) { + var url = window.URL.createObjectURL(data); // blob 데이터로 URL 생성 + var a = document.createElement('a'); // 다운로드 링크를 위한 태그 생성 + a.href = url; // url 설정 + a.download = fileName; // 파일명 설정 + a.style.display = 'none'; // 태그를 브라우저에 보이지 않게 설정 + document.body.appendChild(a); // 태그를 body에 추가 + a.click(); // 다운로드 링크 클릭 + document.body.removeChild(a); // 태그 제거 + } + } + }) + }); } function 비용분석계산() {