Index: vue/src/assets/images/devops/DevSupport/github.png =================================================================== diff -u -re7ebd0efd58799e15e03fb6ba670dd324bca255b -rc2daa239f27d57721d85547f67fdd874545059b4 --- vue/src/assets/images/devops/DevSupport/github.png (.../github.png) (revision e7ebd0efd58799e15e03fb6ba670dd324bca255b) +++ vue/src/assets/images/devops/DevSupport/github.png (.../github.png) (revision c2daa239f27d57721d85547f67fdd874545059b4) @@ -1979,6 +1979,12 @@ z-index: 900; } +.kanban_assist { + display: flex; + align-items: center; + justify-content: space-between; +} + .kanban_search_clear { position: absolute; top: 50%; @@ -1987,4 +1993,14 @@ cursor: pointer; display: none; z-index: 5; +} + +.kanban_stats { + display: flex; + flex-direction: row; + justify-content: space-between; + border-radius: 3px; + padding: 4.9px; + background: rgba(51, 51, 51, 0.425); + border: 1px solid rgba(51, 51, 51, 0.5); } \ No newline at end of file Index: arms/html/reqKanban/content-container.html =================================================================== diff -u -re7ebd0efd58799e15e03fb6ba670dd324bca255b -rc2daa239f27d57721d85547f67fdd874545059b4 --- arms/html/reqKanban/content-container.html (.../content-container.html) (revision e7ebd0efd58799e15e03fb6ba670dd324bca255b) +++ arms/html/reqKanban/content-container.html (.../content-container.html) (revision c2daa239f27d57721d85547f67fdd874545059b4) @@ -363,17 +363,38 @@
-
-
- - +
+
+
+ + +
+
+
+ : + 0% +
+
+ : + 0% +
+
+ : + 0% +
+
+ : + 0% +
+
Index: arms/js/reqKanban.js =================================================================== diff -u -re7ebd0efd58799e15e03fb6ba670dd324bca255b -rc2daa239f27d57721d85547f67fdd874545059b4 --- arms/js/reqKanban.js (.../reqKanban.js) (revision e7ebd0efd58799e15e03fb6ba670dd324bca255b) +++ arms/js/reqKanban.js (.../reqKanban.js) (revision c2daa239f27d57721d85547f67fdd874545059b4) @@ -1,15 +1,21 @@ let selectedPdServiceId; // 선택한 제품(서비스) 아이디 let selectedPdService; // 선택한 제품(서비스) 이름 let selectedVersionId; // 선택한 버전 아이디 -const reqStateToIdMapping = { // 요구사항 상태에 id 매핑 +const reqStateToIdMapping = { // 요구사항 상태에 id 매핑 '열림': '10', '진행중': '11', '해결됨': '12', '닫힘': '13' }; +const reqStateToIconMapping = { // 요구사항 상태에 아이콘 매핑 + '열림': '', + '진행중': '', + '해결됨': '', + '닫힘': '' +}; let boardData = Object.keys(reqStateToIdMapping).map(state => ({ // 기본 보드 데이터 id: reqStateToIdMapping[state], - title: state + title: `${reqStateToIconMapping[state]} ${state}` })); const reqKanbanTg = new tourguide.TourGuideClient({ // 상세 정보 투어 가이드 @@ -307,9 +313,9 @@ // 칸반 보드 구성 const reqBoardByState = Object.keys(reqStateToIdMapping).map(state => ({ - id: reqStateToIdMapping[state], // 요구사항 상태 별 id - title: state, // 요구사항 제목 - item: reqListByState[state] // 요구사항 상태 별 리스트 + id: reqStateToIdMapping[state], // 요구사항 상태 별 id + title: `${reqStateToIconMapping[state]} ${state}`, // 요구사항 제목 + item: reqListByState[state] // 요구사항 상태 별 리스트 })); // 칸반 보드 로드 @@ -477,8 +483,20 @@ $("#req-resolve-count").text(counts["해결됨"]); $("#req-close-count").text(counts["닫힘"]); + // 통계 표시 + $("#req-open-stats").text(setStatsFormat(counts["열림"], 총합)); + $("#req-progress-stats").text(setStatsFormat(counts["진행중"], 총합)); + $("#req-resolve-stats").text(setStatsFormat(counts["해결됨"], 총합)); + $("#req-close-stats").text(setStatsFormat(counts["닫힘"], 총합)); } +function setStatsFormat(값, 총합) { + if (총합 == 0) { + return 0; + } + return Math.round((값 / 총합) * 1000) / 10; +} + function initKanban() { KanbanBoard.init('myKanban', boardData); adjustHeight();