Index: vue/src/assets/images/devops/DevSupport/github.png =================================================================== diff -u -r98818496532eb9a8a85b244ef3968c242cdd7d86 -r85d9a4380809352c2b0a2a99085e7eafd684c4b3 --- vue/src/assets/images/devops/DevSupport/github.png (.../github.png) (revision 98818496532eb9a8a85b244ef3968c242cdd7d86) +++ vue/src/assets/images/devops/DevSupport/github.png (.../github.png) (revision 85d9a4380809352c2b0a2a99085e7eafd684c4b3) @@ -1615,7 +1615,7 @@ } .cost-input-complete { - font-size: 13px; + font-size: 15px; background-color: rgb(51, 51, 51); box-shadow: none; margin: 0; @@ -1635,14 +1635,18 @@ } .cost-version-info { + width: 30%; margin: 10px 0 10px 0; + padding: 20px; + border-radius: 7px; + background-color: #4b4a4a; } .cost-version-info div { - padding: 5px 0 0 17px; + padding-top: 10px; } -.version-input, .salary-input { +.cost-input, .salary-input { color: black; width: 30%; text-align: center; @@ -1652,7 +1656,11 @@ background: rgba(157, 156, 156, 0.22); } -select[name="manpower-annual-income_length"] { +.version-input { + width: 70%; +} + +select[name="version-cost_length"], select[name="manpower-annual-income_length"] { color: black; } Index: arms/html/analysisCost/content-container.html =================================================================== diff -u -r5533a414ca8176a61c99ecab0b769ab2fcf8ac3d -r85d9a4380809352c2b0a2a99085e7eafd684c4b3 --- arms/html/analysisCost/content-container.html (.../content-container.html) (revision 5533a414ca8176a61c99ecab0b769ab2fcf8ac3d) +++ arms/html/analysisCost/content-container.html (.../content-container.html) (revision 85d9a4380809352c2b0a2a99085e7eafd684c4b3) @@ -415,6 +415,7 @@ +
@@ -487,15 +488,15 @@
-
+

- 프로젝트 비용 예측 + 버전 비용

@@ -549,85 +550,97 @@
- 제품(서비스) - 버전 - 요구사항 - 인력별 예산을 계산할 수 있습니다. -
- -
+ 각 버전에 투자한 비용을 입력합니다.
+ +
+
+
+
-
-
- - - - -
- -
- - - 버전 정보 - -
-
- - - 버전 기간 - -
- 2024-01-01 ~ 2024-01-31 -
-
-
- - - 버전 설명 - -
- 버전 설명입니다. -
-
-
- - - 버전 비용 - -
- 만원 -
-
-
- -
- - - 연봉 정보 - -
- -
-
+
+
+
+

+ + + 연봉 정보 + +

+ -
+ -
- +
+
+
+ 각 버전에 투입된 인력의 연봉 정보를 입력합니다. +
+ +
-
+ + +
+ +
+
Index: arms/js/analysisCost.js =================================================================== diff -u -r5533a414ca8176a61c99ecab0b769ab2fcf8ac3d -r85d9a4380809352c2b0a2a99085e7eafd684c4b3 --- arms/js/analysisCost.js (.../analysisCost.js) (revision 5533a414ca8176a61c99ecab0b769ab2fcf8ac3d) +++ arms/js/analysisCost.js (.../analysisCost.js) (revision 85d9a4380809352c2b0a2a99085e7eafd684c4b3) @@ -253,41 +253,192 @@ function costInput() { // 버전 정보 + var mockVersionData = [ + { + "version": "BaseVersion", + "period": "2023-10-01 ~ 2023-10-31", + "cost": "" + }, + { + "version": "1.0.0", + "period": "2023-11-01 ~ 2023-11-30", + "cost": "" + }, + { + "version": "1.0.1", + "period": "2023-12-01 ~ 2023-12-31", + "cost": "" + }, + { + "version": "24.01", + "period": "2024-01-01 ~ 2024-01-30", + "cost": "" + }, + { + "version": "24.02", + "period": "2024-02-01 ~ 2024-02-29", + "cost": "" + } + ]; + $('#version-cost').DataTable({ + data: mockVersionData, + columns: [ + { data: "version", title: "버전", className: "dt-center" }, + { data: "period", title: "기간", className: "dt-center" }, + { + data: "cost", + title: "비용 (입력)", + className: "dt-center", + render: function(data, type, row) { + return ' 만원'; + } + } + ], + drawCallback: function(settings) { + $('.cost-input').on('input', function() { + var value = this.value.replace(/,/g, ''); + this.value = value.replace(/\B(?=(\d{3})+(?!\d))/g, ","); + }); + } + }); // 연봉 정보 - var mockData = [ + var mockManpowerData = [ { "name": "홍길동", + "version": "1.0.0", "salary": "" }, { + "name": "홍길동", + "version": "1.0.1", + "salary": "" + }, + { "name": "이순신", + "version": "BaseVersion", "salary": "" }, - // 추가적인 데이터 객체... + { + "name": "이순신", + "version": "1.0.0", + "salary": "" + }, + { + "name": "이순신", + "version": "24.01", + "salary": "" + }, + { + "name": "유관순", + "version": "24.01", + "salary": "" + }, + { + "name": "안중근", + "version": "BaseVersion", + "salary": "" + }, + { + "name": "안중근", + "version": "1.0.0", + "salary": "" + }, + { + "name": "안중근", + "version": "1.0.1", + "salary": "" + }, + { + "name": "세종대왕", + "version": "BaseVersion", + "salary": "" + }, + { + "name": "세종대왕", + "version": "1.0.1", + "salary": "" + }, + { + "name": "세종대왕", + "version": "24.01", + "salary": "" + } + /*['홍길동', '1.0', ''], + ['홍길동', '1.1', ''], + ['이순신', 'BaseVersion', ''], + ['이순신', '1.0', ''], + ['이순신', '24.01', ''], + ['유관순', '24.01', '']*/ ]; $('#manpower-annual-income').DataTable({ - "data": mockData, - "columns": [ - { "data": "name", "title": "투입 인력", "className": "dt-center" }, + data: mockManpowerData, + columns: [ { - "data": "salary", - "title": "연봉 (입력)", - "className": "dt-center", - "render": function(data, type, row) { + name: "name", + data: "name", + title: "투입 인력", + className: "dt-center" + }, + { + title: "버전", + data: "version", + className: "dt-center" + }, + { + title: "연봉 (입력)", + data: "salary", + className: "dt-center", + render: function(data, type, row) { return ' 만원'; } } ], - "drawCallback": function(settings) { + drawCallback: function(settings) { $('.salary-input').on('input', function() { var value = this.value.replace(/,/g, ''); this.value = value.replace(/\B(?=(\d{3})+(?!\d))/g, ","); + + // 같은 그룹의 모든 연봉 입력 필드를 찾아 값 업데이트 + var name = $(this).parents('tr').find('td').first().text(); + var salaryInputs = $('td:contains("' + name + '")').siblings().find('.salary-input'); + salaryInputs.val(this.value); }); - } + }, + rowsGroup: [ + "name:name", + ] }); + + /*var data = [ + ['11111', '010-1111-1111', '33333'], + ['11111', '02-2222-2222', '33333'], + ['aaa', '010-3333-3333', 'bbb'], + ['aaa', '02-4444-4444', 'bbb'], + ['ㄱㄱㄱ', '010-5555-5555', 'ㅎㅎㅎ'], + ['ㄱㄱㄱ', '02-5555-5555', 'ㅎㅎㅎ'] + ]; + + var table = $('#manpower-annual-income').DataTable({ + columns: [ + { + name: 'rowspan', + title: 'First group', + }, + { + title: 'Second group', + }, + { + title: 'Third group', + } + ], + data: data, + rowsGroup: [ + 'rowspan:name' + ] + });*/ } /////////////////////////////////////////////////////////