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 비용분석계산() {