
--- client/views/pages/result/ExecRuleResult.vue
+++ client/views/pages/result/ExecRuleResult.vue
... | ... | @@ -271,7 +271,6 @@ |
271 | 271 |
vm.rowTotalCount = response.data.count; |
272 | 272 |
}) |
273 | 273 |
.catch(function (error) { |
274 |
- console.log("selectExecResult 오류 : ", error); |
|
275 | 274 |
vm.$showAlert("error", "selectExecResult 오류"); |
276 | 275 |
}); |
277 | 276 |
}, |
... | ... | @@ -296,11 +295,8 @@ |
296 | 295 |
}) |
297 | 296 |
.then(function (response) { |
298 | 297 |
vm.dbmsOption = response.data; |
299 |
- console.log("selectDbms 실행"); |
|
300 |
- console.log("selectDbms : ", response.data); |
|
301 | 298 |
}) |
302 | 299 |
.catch(function (error) { |
303 |
- console.log("selectDbms 오류 : ", error); |
|
304 | 300 |
vm.$showAlert("error", "selectDbms 오류"); |
305 | 301 |
}); |
306 | 302 |
}, |
... | ... | @@ -321,11 +317,8 @@ |
321 | 317 |
}) |
322 | 318 |
.then(function (response) { |
323 | 319 |
vm.schemaOption = response.data; |
324 |
- console.log("selectSchema 실행"); |
|
325 |
- console.log("selectSchema : ", response.data); |
|
326 | 320 |
}) |
327 | 321 |
.catch(function (error) { |
328 |
- console.log("selectSchema 오류 : ", error); |
|
329 | 322 |
vm.$showAlert("error", "selectSchema 오류"); |
330 | 323 |
}); |
331 | 324 |
}, |
... | ... | @@ -362,9 +355,7 @@ |
362 | 355 |
SvgIcon: SvgIcon, |
363 | 356 |
}, |
364 | 357 |
mounted() { |
365 |
- console.log("execRuleResult.vue mounted"); |
|
366 | 358 |
this.selectDbms(); |
367 |
- // this.selectExecResult(); |
|
368 | 359 |
}, |
369 | 360 |
}; |
370 | 361 |
</script> |
--- client/views/pages/result/TotalRuleResult.vue
+++ client/views/pages/result/TotalRuleResult.vue
... | ... | @@ -1,263 +1,238 @@ |
1 | 1 |
<template> |
2 |
- <div class="container"> |
|
3 |
- <div class="page-titleZone flex justify-between"> |
|
4 |
- <p class="main-title">진단 결과 > 품질진단종합현황</p> |
|
2 |
+ <div class="container"> |
|
3 |
+ <div class="page-titleZone flex justify-between"> |
|
4 |
+ <p class="main-title">진단 결과 > 품질진단종합현황</p> |
|
5 |
+ </div> |
|
6 |
+ <div class="content"> |
|
7 |
+ <div class="row"> |
|
8 |
+ <div class="content-titleZone"> |
|
9 |
+ <p class="box-title">> 검색 조건</p> |
|
10 |
+ </div> |
|
11 |
+ <div class="table-zone"> |
|
12 |
+ <table class="list-table"> |
|
13 |
+ <colgroup> |
|
14 |
+ <col style="width: 5%" /> |
|
15 |
+ <col style="width: " /> |
|
16 |
+ <col style="width: 5%" /> |
|
17 |
+ <col style="width: " /> |
|
18 |
+ <col style="width: 5%" /> |
|
19 |
+ </colgroup> |
|
20 |
+ <thead class="totalRuleResultTable"> |
|
21 |
+ <tr> |
|
22 |
+ <th>진단대상DBMS명</th> |
|
23 |
+ <td style="display: flex; min-height: 64px; align-items: center"> |
|
24 |
+ <select v-model="searchData.dbms_name"> |
|
25 |
+ <option value="all">DBMS명</option> |
|
26 |
+ <option v-for="item in dbmsOption" :key="item"> |
|
27 |
+ {{ item }} |
|
28 |
+ </option> |
|
29 |
+ </select> |
|
30 |
+ |
|
31 |
+ <select v-model="searchData.schema_name"> |
|
32 |
+ <option value="all">스키마명</option> |
|
33 |
+ <option v-for="item in schemaOption" :key="item"> |
|
34 |
+ {{ item }} |
|
35 |
+ </option> |
|
36 |
+ </select> |
|
37 |
+ </td> |
|
38 |
+ <th>테이블명</th> |
|
39 |
+ <td> |
|
40 |
+ <input type="text" v-model="searchData.table_nm" /> |
|
41 |
+ </td> |
|
42 |
+ <th>컬럼명</th> |
|
43 |
+ <td><input type="text" v-model="searchData.column_nm" /></td> |
|
44 |
+ <th> |
|
45 |
+ <button class="blue-btn small-btn" @click="selectTotalResult()">검색</button> |
|
46 |
+ </th> |
|
47 |
+ </tr> |
|
48 |
+ </thead> |
|
49 |
+ </table> |
|
50 |
+ </div> |
|
51 |
+ </div> |
|
52 |
+ |
|
53 |
+ <div class="flex justify-between align-center" style="margin: 50px 5px 5px"> |
|
54 |
+ <div class="count-zone"> |
|
55 |
+ <p> |
|
56 |
+ 선택한 DBMS명 : |
|
57 |
+ <span>{{ totalResultList.dbms_name }}</span> 스키마명 : |
|
58 |
+ <span>{{ totalResultList.schema_name }}</span> 테이블명 : |
|
59 |
+ <span>{{ totalResultList.table_nm }}</span> 컬럼명 : |
|
60 |
+ <span>{{ totalResultList.column_nm }}</span> |
|
61 |
+ </p> |
|
62 |
+ </div> |
|
63 |
+ </div> |
|
64 |
+ |
|
65 |
+ <div class="table-zone"> |
|
66 |
+ <table class="list-table"> |
|
67 |
+ <colgroup> |
|
68 |
+ <col style="width: 5%" /> |
|
69 |
+ <col style="width: 20%" /> |
|
70 |
+ <col style="width: 20%" /> |
|
71 |
+ <col style="width: " /> |
|
72 |
+ <col style="width: " /> |
|
73 |
+ <col style="width: " /> |
|
74 |
+ <col style="width: " /> |
|
75 |
+ <col style="width: " /> |
|
76 |
+ </colgroup> |
|
77 |
+ <thead> |
|
78 |
+ <tr> |
|
79 |
+ <th>No.</th> |
|
80 |
+ <th>상위품질지표명</th> |
|
81 |
+ <th>품질지표명</th> |
|
82 |
+ <th>테이블수</th> |
|
83 |
+ <th>컬럼수</th> |
|
84 |
+ <th>전체건수</th> |
|
85 |
+ <th>오류건수</th> |
|
86 |
+ <th>오류율(%)</th> |
|
87 |
+ </tr> |
|
88 |
+ </thead> |
|
89 |
+ <tbody> |
|
90 |
+ <!-- 상위품질지표명 rowspan --> |
|
91 |
+ <tr class="text-ct" v-for="(item, index) in totalResultList" :key="item.dqi_nm_high"> |
|
92 |
+ <td>{{ index + 1 }}</td> |
|
93 |
+ <td |
|
94 |
+ v-if="index === 0 || item.dqi_nm_high !== totalResultList[index - 1].dqi_nm_high" |
|
95 |
+ :rowspan="getRowSpan(totalResultList, item)" |
|
96 |
+ > |
|
97 |
+ {{ item.dqi_nm_high }} |
|
98 |
+ </td> |
|
99 |
+ <td>{{ item.dqi_nm }}</td> |
|
100 |
+ <td>{{ item.table_count }}</td> |
|
101 |
+ <td>{{ item.column_count }}</td> |
|
102 |
+ <td>{{ item.total_count }}</td> |
|
103 |
+ <td>{{ item.error_count }}</td> |
|
104 |
+ <td>{{ item.error_percent }}</td> |
|
105 |
+ </tr> |
|
106 |
+ </tbody> |
|
107 |
+ </table> |
|
108 |
+ </div> |
|
109 |
+ </div> |
|
5 | 110 |
</div> |
6 |
- <div class="content"> |
|
7 |
- <div class="row"> |
|
8 |
- <div class="content-titleZone"> |
|
9 |
- <p class="box-title">> 검색 조건</p> |
|
10 |
- </div> |
|
11 |
- <div class="table-zone"> |
|
12 |
- <table class="list-table"> |
|
13 |
- <colgroup> |
|
14 |
- <col style="width: 5%" /> |
|
15 |
- <col style="width: " /> |
|
16 |
- <col style="width: 5%" /> |
|
17 |
- <col style="width: " /> |
|
18 |
- <col style="width: 5%" /> |
|
19 |
- </colgroup> |
|
20 |
- <thead class="totalRuleResultTable"> |
|
21 |
- <tr> |
|
22 |
- <th>진단대상DBMS명</th> |
|
23 |
- <td |
|
24 |
- style="display: flex; min-height: 64px; align-items: center" |
|
25 |
- > |
|
26 |
- <select v-model="searchData.dbms_name"> |
|
27 |
- <option value="all">DBMS명</option> |
|
28 |
- <option v-for="item in dbmsOption" :key="item"> |
|
29 |
- {{ item }} |
|
30 |
- </option> |
|
31 |
- </select> |
|
32 |
- |
|
33 |
- <select v-model="searchData.schema_name"> |
|
34 |
- <option value="all">스키마명</option> |
|
35 |
- <option v-for="item in schemaOption" :key="item"> |
|
36 |
- {{ item }} |
|
37 |
- </option> |
|
38 |
- </select> |
|
39 |
- </td> |
|
40 |
- <th>테이블명</th> |
|
41 |
- <td> |
|
42 |
- <input type="text" v-model="searchData.table_nm" /> |
|
43 |
- </td> |
|
44 |
- <th>컬럼명</th> |
|
45 |
- <td><input type="text" v-model="searchData.column_nm" /></td> |
|
46 |
- <th> |
|
47 |
- <button |
|
48 |
- class="blue-btn small-btn" |
|
49 |
- @click="selectTotalResult()" |
|
50 |
- > |
|
51 |
- 검색 |
|
52 |
- </button> |
|
53 |
- </th> |
|
54 |
- </tr> |
|
55 |
- </thead> |
|
56 |
- </table> |
|
57 |
- </div> |
|
58 |
- </div> |
|
59 |
- |
|
60 |
- <div |
|
61 |
- class="flex justify-between align-center" |
|
62 |
- style="margin: 50px 5px 5px" |
|
63 |
- > |
|
64 |
- <div class="count-zone"> |
|
65 |
- <p> |
|
66 |
- 선택한 DBMS명 : |
|
67 |
- <span>{{ totalResultList.dbms_name }}</span> 스키마명 : |
|
68 |
- <span>{{ totalResultList.schema_name }}</span> 테이블명 : |
|
69 |
- <span>{{ totalResultList.table_nm }}</span> 컬럼명 : |
|
70 |
- <span>{{ totalResultList.column_nm }}</span> |
|
71 |
- </p> |
|
72 |
- </div> |
|
73 |
- </div> |
|
74 |
- |
|
75 |
- <div class="table-zone"> |
|
76 |
- <table class="list-table"> |
|
77 |
- <colgroup> |
|
78 |
- <col style="width: 5%" /> |
|
79 |
- <col style="width: 20%" /> |
|
80 |
- <col style="width: 20%" /> |
|
81 |
- <col style="width: " /> |
|
82 |
- <col style="width: " /> |
|
83 |
- <col style="width: " /> |
|
84 |
- <col style="width: " /> |
|
85 |
- <col style="width: " /> |
|
86 |
- </colgroup> |
|
87 |
- <thead> |
|
88 |
- <tr> |
|
89 |
- <th>No.</th> |
|
90 |
- <th>상위품질지표명</th> |
|
91 |
- <th>품질지표명</th> |
|
92 |
- <th>테이블수</th> |
|
93 |
- <th>컬럼수</th> |
|
94 |
- <th>전체건수</th> |
|
95 |
- <th>오류건수</th> |
|
96 |
- <th>오류율(%)</th> |
|
97 |
- </tr> |
|
98 |
- </thead> |
|
99 |
- <tbody> |
|
100 |
- <!-- 상위품질지표명 rowspan --> |
|
101 |
- <tr |
|
102 |
- class="text-ct" |
|
103 |
- v-for="(item, index) in totalResultList" |
|
104 |
- :key="item.dqi_nm_high" |
|
105 |
- > |
|
106 |
- <td>{{ index + 1 }}</td> |
|
107 |
- <td |
|
108 |
- v-if=" |
|
109 |
- index === 0 || |
|
110 |
- item.dqi_nm_high !== totalResultList[index - 1].dqi_nm_high |
|
111 |
- " |
|
112 |
- :rowspan="getRowSpan(totalResultList, item)" |
|
113 |
- > |
|
114 |
- {{ item.dqi_nm_high }} |
|
115 |
- </td> |
|
116 |
- <td>{{ item.dqi_nm }}</td> |
|
117 |
- <td>{{ item.table_count }}</td> |
|
118 |
- <td>{{ item.column_count }}</td> |
|
119 |
- <td>{{ item.total_count }}</td> |
|
120 |
- <td>{{ item.error_count }}</td> |
|
121 |
- <td>{{ item.error_percent }}</td> |
|
122 |
- </tr> |
|
123 |
- </tbody> |
|
124 |
- </table> |
|
125 |
- </div> |
|
126 |
- </div> |
|
127 |
- </div> |
|
128 | 111 |
</template> |
129 | 112 |
|
130 | 113 |
<script> |
131 |
-import { mdiMagnify } from "@mdi/js"; |
|
132 |
-import axios from "axios"; |
|
114 |
+import { mdiMagnify } from '@mdi/js'; |
|
115 |
+import axios from 'axios'; |
|
133 | 116 |
export default { |
134 |
- data() { |
|
135 |
- return { |
|
136 |
- searchPath: mdiMagnify, |
|
137 |
- inputValue: null, |
|
117 |
+ data() { |
|
118 |
+ return { |
|
119 |
+ searchPath: mdiMagnify, |
|
120 |
+ inputValue: null, |
|
138 | 121 |
|
139 |
- //SELECT한 데이터 저장 리스트 |
|
140 |
- totalResultList: [], |
|
141 |
- //옵션리스트 |
|
142 |
- dbmsOption: [], |
|
143 |
- schemaOption: [], |
|
122 |
+ //SELECT한 데이터 저장 리스트 |
|
123 |
+ totalResultList: [], |
|
124 |
+ //옵션리스트 |
|
125 |
+ dbmsOption: [], |
|
126 |
+ schemaOption: [], |
|
144 | 127 |
|
145 |
- //검색 조건 데이터 |
|
146 |
- searchData: { |
|
147 |
- user_id: $cookies.get("USER_ID"), |
|
148 |
- dbms_name: "all", |
|
149 |
- schema_name: "all", |
|
150 |
- table_nm: "", |
|
151 |
- column_nm: "", |
|
152 |
- }, |
|
153 |
- }; |
|
154 |
- }, |
|
155 |
- methods: { |
|
156 |
- /** |
|
157 |
- * 내용 : 검색 조건 바탕으로 데이터 SELECT |
|
158 |
- * 작성자 : 임재현 |
|
159 |
- * 시간 : 2024.01.31 |
|
160 |
- */ |
|
161 |
- selectTotalResult: function () { |
|
162 |
- const vm = this; |
|
163 |
- if (vm.$checkLogin() == true) { |
|
164 |
- return; |
|
165 |
- } |
|
166 |
- axios({ |
|
167 |
- url: "selectTotalResult.json", |
|
168 |
- method: "post", |
|
169 |
- headers: { |
|
170 |
- "Content-Type": "application/json; charset=UTF-8", |
|
128 |
+ //검색 조건 데이터 |
|
129 |
+ searchData: { |
|
130 |
+ user_id: $cookies.get('USER_ID'), |
|
131 |
+ dbms_name: 'all', |
|
132 |
+ schema_name: 'all', |
|
133 |
+ table_nm: '', |
|
134 |
+ column_nm: '', |
|
135 |
+ }, |
|
136 |
+ }; |
|
137 |
+ }, |
|
138 |
+ methods: { |
|
139 |
+ /** |
|
140 |
+ * 내용 : 검색 조건 바탕으로 데이터 SELECT |
|
141 |
+ * 작성자 : 임재현 |
|
142 |
+ * 시간 : 2024.01.31 |
|
143 |
+ */ |
|
144 |
+ selectTotalResult: function () { |
|
145 |
+ const vm = this; |
|
146 |
+ if (vm.$checkLogin() == true) { |
|
147 |
+ return; |
|
148 |
+ } |
|
149 |
+ axios({ |
|
150 |
+ url: 'selectTotalResult.json', |
|
151 |
+ method: 'post', |
|
152 |
+ headers: { |
|
153 |
+ 'Content-Type': 'application/json; charset=UTF-8', |
|
154 |
+ }, |
|
155 |
+ data: vm.searchData, |
|
156 |
+ }) |
|
157 |
+ .then(function (response) { |
|
158 |
+ vm.totalResultList = response.data; |
|
159 |
+ }) |
|
160 |
+ .catch(function (error) { |
|
161 |
+ vm.$showAlert('error', 'selectTotalResult 오류'); |
|
162 |
+ }); |
|
171 | 163 |
}, |
172 |
- data: vm.searchData, |
|
173 |
- }) |
|
174 |
- .then(function (response) { |
|
175 |
- vm.totalResultList = response.data; |
|
176 |
- }) |
|
177 |
- .catch(function (error) { |
|
178 |
- console.log("selectTotalResult 오류 : ", error); |
|
179 |
- vm.$showAlert("error", "selectTotalResult 오류"); |
|
180 |
- }); |
|
164 |
+ |
|
165 |
+ /** |
|
166 |
+ * 내용 : DBMS option을 user_id와 매칭시켜 가져옴 |
|
167 |
+ * 작성자 : 임재현 |
|
168 |
+ * 시간 : 2024.01.31 |
|
169 |
+ */ |
|
170 |
+ selectDbms: function () { |
|
171 |
+ const vm = this; |
|
172 |
+ if (vm.$checkLogin() == true) { |
|
173 |
+ return; |
|
174 |
+ } |
|
175 |
+ axios({ |
|
176 |
+ url: 'selectDbms.json', |
|
177 |
+ method: 'post', |
|
178 |
+ headers: { |
|
179 |
+ 'Content-Type': 'application/json; charset=UTF-8', |
|
180 |
+ }, |
|
181 |
+ data: vm.searchData, |
|
182 |
+ }) |
|
183 |
+ .then(function (response) { |
|
184 |
+ vm.dbmsOption = response.data; |
|
185 |
+ }) |
|
186 |
+ .catch(function (error) { |
|
187 |
+ vm.$showAlert('error', 'selectDbms 오류'); |
|
188 |
+ }); |
|
189 |
+ }, |
|
190 |
+ /** |
|
191 |
+ * 내용 : 선택한 DBMS_ID에 해당하는 스키마 SELECT함수 실행 |
|
192 |
+ * 작성자 : 임재현 |
|
193 |
+ * 시간 : 2024.01.31 |
|
194 |
+ */ |
|
195 |
+ selectSchema: function () { |
|
196 |
+ const vm = this; |
|
197 |
+ axios({ |
|
198 |
+ url: 'selectSchema.json', |
|
199 |
+ method: 'post', |
|
200 |
+ headers: { |
|
201 |
+ 'Content-Type': 'application/json; charset=UTF-8', |
|
202 |
+ }, |
|
203 |
+ data: vm.searchData, |
|
204 |
+ }) |
|
205 |
+ .then(function (response) { |
|
206 |
+ vm.schemaOption = response.data; |
|
207 |
+ }) |
|
208 |
+ .catch(function (error) { |
|
209 |
+ vm.$showAlert('error', 'selectSchema 오류'); |
|
210 |
+ }); |
|
211 |
+ }, |
|
181 | 212 |
}, |
182 | 213 |
|
183 |
- /** |
|
184 |
- * 내용 : DBMS option을 user_id와 매칭시켜 가져옴 |
|
185 |
- * 작성자 : 임재현 |
|
186 |
- * 시간 : 2024.01.31 |
|
187 |
- */ |
|
188 |
- selectDbms: function () { |
|
189 |
- const vm = this; |
|
190 |
- if (vm.$checkLogin() == true) { |
|
191 |
- return; |
|
192 |
- } |
|
193 |
- axios({ |
|
194 |
- url: "selectDbms.json", |
|
195 |
- method: "post", |
|
196 |
- headers: { |
|
197 |
- "Content-Type": "application/json; charset=UTF-8", |
|
214 |
+ watch: { |
|
215 |
+ //dbmsOption이 선택되는지 감시 |
|
216 |
+ 'searchData.dbms_name'() { |
|
217 |
+ this.selectSchema(); |
|
198 | 218 |
}, |
199 |
- data: vm.searchData, |
|
200 |
- }) |
|
201 |
- .then(function (response) { |
|
202 |
- vm.dbmsOption = response.data; |
|
203 |
- console.log("selectDbms 실행"); |
|
204 |
- console.log("selectDbms : ", response.data); |
|
205 |
- }) |
|
206 |
- .catch(function (error) { |
|
207 |
- console.log("selectDbms 오류 : ", error); |
|
208 |
- vm.$showAlert("error", "selectDbms 오류"); |
|
209 |
- }); |
|
210 | 219 |
}, |
211 |
- /** |
|
212 |
- * 내용 : 선택한 DBMS_ID에 해당하는 스키마 SELECT함수 실행 |
|
213 |
- * 작성자 : 임재현 |
|
214 |
- * 시간 : 2024.01.31 |
|
215 |
- */ |
|
216 |
- selectSchema: function () { |
|
217 |
- const vm = this; |
|
218 |
- axios({ |
|
219 |
- url: "selectSchema.json", |
|
220 |
- method: "post", |
|
221 |
- headers: { |
|
222 |
- "Content-Type": "application/json; charset=UTF-8", |
|
223 |
- }, |
|
224 |
- data: vm.searchData, |
|
225 |
- }) |
|
226 |
- .then(function (response) { |
|
227 |
- vm.schemaOption = response.data; |
|
228 |
- console.log("selectSchema 실행"); |
|
229 |
- console.log("selectSchema : ", response.data); |
|
230 |
- }) |
|
231 |
- .catch(function (error) { |
|
232 |
- console.log("selectSchema 오류 : ", error); |
|
233 |
- vm.$showAlert("error", "selectSchema 오류"); |
|
234 |
- }); |
|
220 |
+ computed: {}, |
|
221 |
+ components: {}, |
|
222 |
+ mounted() { |
|
223 |
+ this.selectDbms(); |
|
224 |
+ // this.selectTotalResult(); |
|
235 | 225 |
}, |
236 |
- }, |
|
237 |
- |
|
238 |
- watch: { |
|
239 |
- //dbmsOption이 선택되는지 감시 |
|
240 |
- "searchData.dbms_name"() { |
|
241 |
- this.selectSchema(); |
|
242 |
- }, |
|
243 |
- }, |
|
244 |
- computed: {}, |
|
245 |
- components: {}, |
|
246 |
- mounted() { |
|
247 |
- console.log("execRuleResult.vue mounted"); |
|
248 |
- this.selectDbms(); |
|
249 |
- // this.selectTotalResult(); |
|
250 |
- }, |
|
251 | 226 |
}; |
252 | 227 |
</script> |
253 | 228 |
|
254 | 229 |
<style scoped> |
255 | 230 |
.totalRuleResultTable tr td select, |
256 | 231 |
input { |
257 |
- width: 100%; |
|
232 |
+ width: 100%; |
|
258 | 233 |
} |
259 | 234 |
|
260 | 235 |
.totalRuleResultTable th td { |
261 |
- height: 40px; /* 테이블 셀의 높이 조절 */ |
|
236 |
+ height: 40px; /* 테이블 셀의 높이 조절 */ |
|
262 | 237 |
} |
263 | 238 |
</style> |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?