견문통계 개인실적탭 작업중.
parent
17ad411b38
commit
b2f516ce1e
|
|
@ -41,12 +41,10 @@ public class FaispInterceptor implements HandlerInterceptor {
|
|||
@Override
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
|
||||
//페이지 렌더링 후 실행.
|
||||
if(request.getParameter("dashboardFlag") == null){
|
||||
// 대시보드 ajax 조회 로그 저장시 키 중첩으로 오류 발생.
|
||||
// 대시보드 ajax 조회는 로그를 쌓지 않음.
|
||||
String uri = request.getRequestURI();
|
||||
UserRequestLog log = new UserRequestLog();
|
||||
log.setContactIp(Utils.getClientIP(request));
|
||||
log.setRequestUrl(request.getRequestURI());
|
||||
log.setRequestUrl(uri);
|
||||
log.setRequestMethod(request.getMethod());
|
||||
log.setSearchParams(request.getQueryString());
|
||||
log.setHandlerDescription(((HandlerMethod) handler).toString());
|
||||
|
|
@ -55,4 +53,3 @@ public class FaispInterceptor implements HandlerInterceptor {
|
|||
userLogService.saveRequestLog(log);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
|
|||
"/fileDisplay",
|
||||
"/css/**",
|
||||
"/img/**",
|
||||
"/font/**",
|
||||
"/js/**",
|
||||
"/vendor/**",
|
||||
"/Crosseditor/**",
|
||||
|
|
|
|||
|
|
@ -1,33 +1,23 @@
|
|||
package com.dbnt.faisp.main.fpiMgt.affair;
|
||||
|
||||
import com.dbnt.faisp.config.FileInfo;
|
||||
import com.dbnt.faisp.main.authMgt.service.AuthMgtService;
|
||||
import com.dbnt.faisp.main.codeMgt.model.CodeMgt;
|
||||
import com.dbnt.faisp.main.codeMgt.service.CodeMgtService;
|
||||
import com.dbnt.faisp.main.fpiMgt.affair.model.AffairBoard;
|
||||
import com.dbnt.faisp.main.fpiMgt.affair.model.AffairFile;
|
||||
import com.dbnt.faisp.main.fpiMgt.affair.model.AffairRating;
|
||||
import com.dbnt.faisp.main.fpiMgt.affair.model.TypeStatistics;
|
||||
import com.dbnt.faisp.main.fpiMgt.affair.service.AffairService;
|
||||
import com.dbnt.faisp.main.organMgt.service.OrganConfigService;
|
||||
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
||||
import com.dbnt.faisp.util.Utils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
import java.io.*;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
|
|
@ -210,7 +200,7 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
|
|||
|
||||
@GetMapping("/statistics")
|
||||
public ModelAndView statistics(@AuthenticationPrincipal UserInfo loginUser, TypeStatistics typeStatistics){
|
||||
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/affairStatistics");
|
||||
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/statistics/affairStatistics");
|
||||
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
|
||||
mav.addObject("searchParams", typeStatistics);
|
||||
|
||||
|
|
@ -218,13 +208,13 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
|
|||
}
|
||||
|
||||
@PostMapping("/fieldStatistics")
|
||||
public ModelAndView fieldStatistics(@AuthenticationPrincipal UserInfo loginUser, TypeStatistics typeStatistics){
|
||||
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/fieldStatistics");
|
||||
public ModelAndView fieldStatistics(TypeStatistics typeStatistics){
|
||||
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/statistics/fieldStatistics");
|
||||
List<TypeStatistics> totalList = affairService.selectStatusTotal(typeStatistics);
|
||||
List<TypeStatistics> type1List = affairService.selecType1ListCnt(typeStatistics);
|
||||
List<TypeStatistics> type2List = affairService.selecType2ListCnt(typeStatistics);
|
||||
List<TypeStatistics> type3List = affairService.selecType3ListCnt(typeStatistics);
|
||||
List<TypeStatistics> type4List = affairService.selecType4ListCnt(typeStatistics);
|
||||
List<TypeStatistics> type1List = affairService.selectType1ListCnt(typeStatistics);
|
||||
List<TypeStatistics> type2List = affairService.selectType2ListCnt(typeStatistics);
|
||||
List<TypeStatistics> type3List = affairService.selectType3ListCnt(typeStatistics);
|
||||
List<TypeStatistics> type4List = affairService.selectType4ListCnt(typeStatistics);
|
||||
if(!totalList.isEmpty()) {
|
||||
TypeStatistics total = new TypeStatistics();
|
||||
total.setItemValue("누계");
|
||||
|
|
@ -237,16 +227,16 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
|
|||
}
|
||||
mav.addObject("totalList", totalList);
|
||||
if(typeStatistics.getCategory1() != null) {
|
||||
type1List = addTotalRow(typeStatistics.getCategory1(), type1List);
|
||||
addTotalRow(typeStatistics.getCategory1(), type1List);
|
||||
}
|
||||
if(typeStatistics.getCategory2() != null) {
|
||||
type2List = addTotalRow(typeStatistics.getCategory2(), type2List);
|
||||
addTotalRow(typeStatistics.getCategory2(), type2List);
|
||||
}
|
||||
if(typeStatistics.getCategory3() != null) {
|
||||
type3List = addTotalRow(typeStatistics.getCategory3(), type3List);
|
||||
addTotalRow(typeStatistics.getCategory3(), type3List);
|
||||
}
|
||||
if(typeStatistics.getCategory4() != null) {
|
||||
type4List = addTotalRow(typeStatistics.getCategory4(), type4List);
|
||||
addTotalRow(typeStatistics.getCategory4(), type4List);
|
||||
}
|
||||
mav.addObject("type1List", type1List);
|
||||
mav.addObject("type2List", type2List);
|
||||
|
|
@ -257,8 +247,8 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
|
|||
}
|
||||
|
||||
@PostMapping("/ratingStatistics")
|
||||
public ModelAndView ratingStatistics(@AuthenticationPrincipal UserInfo loginUser, TypeStatistics typeStatistics){
|
||||
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/affair/ratingStatistics");
|
||||
public ModelAndView ratingStatistics(TypeStatistics typeStatistics){
|
||||
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/statistics/ratingStatistics");
|
||||
List<TypeStatistics> totalList = affairService.selectRatingStatusTotal(typeStatistics);
|
||||
List<TypeStatistics> sangboCntList = affairService.selectSangboTotal(typeStatistics);
|
||||
List<TypeStatistics> arrCntList = affairService.selectArrCntList(typeStatistics);
|
||||
|
|
@ -273,10 +263,10 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
|
|||
totalList.add(total);
|
||||
}
|
||||
if(typeStatistics.getSangbo() != null) {
|
||||
sangboCntList = addTotalRow(typeStatistics.getSangbo(), sangboCntList);
|
||||
addTotalRow(typeStatistics.getSangbo(), sangboCntList);
|
||||
}
|
||||
if(typeStatistics.getRating() != null) {
|
||||
arrCntList = addTotalRow(typeStatistics.getRating(), arrCntList);
|
||||
addTotalRow(typeStatistics.getRating(), arrCntList);
|
||||
}
|
||||
mav.addObject("totalList", totalList);
|
||||
mav.addObject("sangboList", sangboCntList);
|
||||
|
|
@ -285,7 +275,16 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
|
|||
return mav;
|
||||
}
|
||||
|
||||
private List<TypeStatistics> addTotalRow(List<String> type, List<TypeStatistics> typeList){
|
||||
@PostMapping("/personalStatistics")
|
||||
public ModelAndView personalStatistics(TypeStatistics typeStatistics){
|
||||
ModelAndView mav = new ModelAndView("igActivities/fpiMgt/statistics/personalStatistics");
|
||||
List<TypeStatistics> totalList = affairService.selectPersonalStatusTotal(typeStatistics);
|
||||
mav.addObject("totalList", totalList);
|
||||
mav.addObject("searchParams", typeStatistics);
|
||||
return mav;
|
||||
}
|
||||
|
||||
private void addTotalRow(List<String> type, List<TypeStatistics> typeList){
|
||||
Map<String, Integer> totalMap = new HashMap<>();
|
||||
for(String t: type) {
|
||||
totalMap.put(t, 0);
|
||||
|
|
@ -293,9 +292,7 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
|
|||
for(TypeStatistics t: typeList) {
|
||||
totalMap.put(t.getAffairType(), totalMap.get(t.getAffairType())+t.getCnt());
|
||||
}
|
||||
Iterator<String> keys = totalMap.keySet().iterator();
|
||||
while(keys.hasNext()) {
|
||||
String affairType = keys.next();
|
||||
for (String affairType : totalMap.keySet()) {
|
||||
Integer cnt = totalMap.get(affairType);
|
||||
TypeStatistics total = new TypeStatistics();
|
||||
total.setWrtOrgan("total");
|
||||
|
|
@ -303,7 +300,6 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
|
|||
total.setCnt(cnt);
|
||||
typeList.add(total);
|
||||
}
|
||||
return typeList;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -21,13 +21,13 @@ public interface AffairMapper {
|
|||
|
||||
List<TypeStatistics> selectStatusTotal(TypeStatistics typeStatistics);
|
||||
|
||||
List<TypeStatistics> selecType1ListCnt(TypeStatistics typeStatistics);
|
||||
List<TypeStatistics> selectType1ListCnt(TypeStatistics typeStatistics);
|
||||
|
||||
List<TypeStatistics> selecType2ListCnt(TypeStatistics typeStatistics);
|
||||
List<TypeStatistics> selectType2ListCnt(TypeStatistics typeStatistics);
|
||||
|
||||
List<TypeStatistics> selecType3ListCnt(TypeStatistics typeStatistics);
|
||||
List<TypeStatistics> selectType3ListCnt(TypeStatistics typeStatistics);
|
||||
|
||||
List<TypeStatistics> selecType4ListCnt(TypeStatistics typeStatistics);
|
||||
List<TypeStatistics> selectType4ListCnt(TypeStatistics typeStatistics);
|
||||
|
||||
List<TypeStatistics> selectRatingStatusTotal(TypeStatistics typeStatistics);
|
||||
|
||||
|
|
|
|||
|
|
@ -39,15 +39,6 @@ public class TypeStatistics extends BaseModel {
|
|||
private List<String> organList;
|
||||
@Transient
|
||||
private List<String> sangbo;
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TypeStatistics [wrtOrgan=" + wrtOrgan + ", itemValue=" + itemValue + ", affairType=" + affairType + ", cnt="
|
||||
+ cnt + ", rating=" + rating + ", category1=" + category1 + ", category2=" + category2 + ", category3="
|
||||
+ category3 + ", category4=" + category4 + ", organList=" + organList + "]";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -295,35 +295,6 @@ public class AffairService extends BaseService { // 견문보고
|
|||
return affairFileRepository.findByAffairKeyIn(affairKeyList);
|
||||
}
|
||||
|
||||
public List<TypeStatistics> selectStatusTotal(TypeStatistics typeStatistics) {
|
||||
return affairMapper.selectStatusTotal(typeStatistics);
|
||||
}
|
||||
|
||||
public List<TypeStatistics> selecType1ListCnt(TypeStatistics typeStatistics) {
|
||||
return affairMapper.selecType1ListCnt(typeStatistics);
|
||||
}
|
||||
|
||||
public List<TypeStatistics> selecType2ListCnt(TypeStatistics typeStatistics) {
|
||||
return affairMapper.selecType2ListCnt(typeStatistics);
|
||||
}
|
||||
|
||||
public List<TypeStatistics> selecType3ListCnt(TypeStatistics typeStatistics) {
|
||||
return affairMapper.selecType3ListCnt(typeStatistics);
|
||||
}
|
||||
|
||||
public List<TypeStatistics> selecType4ListCnt(TypeStatistics typeStatistics) {
|
||||
return affairMapper.selecType4ListCnt(typeStatistics);
|
||||
}
|
||||
public List<TypeStatistics> selectRatingStatusTotal(TypeStatistics typeStatistics) {
|
||||
return affairMapper.selectRatingStatusTotal(typeStatistics);
|
||||
}
|
||||
public List<TypeStatistics> selectSangboTotal(TypeStatistics typeStatistics) {
|
||||
return affairMapper.selectSangboTotal(typeStatistics);
|
||||
}
|
||||
public List<TypeStatistics> selectArrCntList(TypeStatistics typeStatistics) {
|
||||
return affairMapper.selectArrCntList(typeStatistics);
|
||||
}
|
||||
|
||||
public AffairBoard getPrintTypeAffairBoard(AffairBoard affair, Map<String, List<CodeMgt>> codeMap) {
|
||||
affair.setWrtPart(Utils.searchCodeValue(affair.getWrtPart(), codeMap.get(affair.getWrtOrgan())));
|
||||
affair.setWrtUserGrd(Utils.searchCodeValue(affair.getWrtUserGrd(), codeMap.get("JT")));
|
||||
|
|
@ -382,4 +353,37 @@ public class AffairService extends BaseService { // 견문보고
|
|||
return affairRating;
|
||||
}
|
||||
|
||||
|
||||
public List<TypeStatistics> selectStatusTotal(TypeStatistics typeStatistics) {
|
||||
return affairMapper.selectStatusTotal(typeStatistics);
|
||||
}
|
||||
|
||||
public List<TypeStatistics> selectType1ListCnt(TypeStatistics typeStatistics) {
|
||||
return affairMapper.selectType1ListCnt(typeStatistics);
|
||||
}
|
||||
|
||||
public List<TypeStatistics> selectType2ListCnt(TypeStatistics typeStatistics) {
|
||||
return affairMapper.selectType2ListCnt(typeStatistics);
|
||||
}
|
||||
|
||||
public List<TypeStatistics> selectType3ListCnt(TypeStatistics typeStatistics) {
|
||||
return affairMapper.selectType3ListCnt(typeStatistics);
|
||||
}
|
||||
|
||||
public List<TypeStatistics> selectType4ListCnt(TypeStatistics typeStatistics) {
|
||||
return affairMapper.selectType4ListCnt(typeStatistics);
|
||||
}
|
||||
public List<TypeStatistics> selectRatingStatusTotal(TypeStatistics typeStatistics) {
|
||||
return affairMapper.selectRatingStatusTotal(typeStatistics);
|
||||
}
|
||||
public List<TypeStatistics> selectSangboTotal(TypeStatistics typeStatistics) {
|
||||
return affairMapper.selectSangboTotal(typeStatistics);
|
||||
}
|
||||
public List<TypeStatistics> selectArrCntList(TypeStatistics typeStatistics) {
|
||||
return affairMapper.selectArrCntList(typeStatistics);
|
||||
}
|
||||
|
||||
public List<TypeStatistics> selectPersonalStatusTotal(TypeStatistics typeStatistics) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -187,7 +187,7 @@ public class UserInfo extends BaseModel implements UserDetails{
|
|||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
return userStatus.equals("USC003");
|
||||
return userStatus.equals("USC003")||userStatus.equals("USC007");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -329,7 +329,7 @@
|
|||
order by wrt_organ asc
|
||||
</select>
|
||||
|
||||
<select id="selecType1ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
|
||||
<select id="selectType1ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
|
||||
select b.item_cd as wrt_organ ,
|
||||
b.item_value,
|
||||
a.item_cd as affair_type,
|
||||
|
|
@ -367,7 +367,7 @@
|
|||
order by wrt_organ,affair_type asc
|
||||
</select>
|
||||
|
||||
<select id="selecType2ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
|
||||
<select id="selectType2ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
|
||||
select b.item_cd as wrt_organ ,
|
||||
b.item_value,
|
||||
a.item_cd as affair_type,
|
||||
|
|
@ -405,7 +405,7 @@
|
|||
order by wrt_organ,affair_type asc
|
||||
</select>
|
||||
|
||||
<select id="selecType3ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
|
||||
<select id="selectType3ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
|
||||
select b.item_cd as wrt_organ ,
|
||||
b.item_value,
|
||||
a.item_cd as affair_type,
|
||||
|
|
@ -443,7 +443,7 @@
|
|||
order by wrt_organ,affair_type asc
|
||||
</select>
|
||||
|
||||
<select id="selecType4ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
|
||||
<select id="selectType4ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
|
||||
select b.item_cd as wrt_organ ,
|
||||
b.item_value,
|
||||
a.item_cd as affair_type,
|
||||
|
|
|
|||
|
|
@ -235,7 +235,7 @@
|
|||
}
|
||||
@font-face {
|
||||
font-family: 'GmarketSansMedium';
|
||||
src: url("/img/GmarketSansTTFMedium.ttf");
|
||||
src: url("/font/GmarketSansTTFMedium.ttf");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ div {margin:0px;padding:0px;box-sizing:border-box;}
|
|||
|
||||
@font-face {
|
||||
font-family: 'Montserrat-Bold';
|
||||
src: url("/font/Montserrat-Bold.ttf");
|
||||
src: url("../../font/Montserrat-Bold.ttf");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,29 +22,6 @@ $(document).on('click', '#fieldTab', function (){
|
|||
goFieldStatistics();
|
||||
})
|
||||
|
||||
function goFieldStatistics(){
|
||||
|
||||
const formData = new FormData($("#searchFm")[0]);
|
||||
$.ajax({
|
||||
url: '/affair/fieldStatistics',
|
||||
data: formData,
|
||||
type: 'POST',
|
||||
dataType:"html",
|
||||
contentType: false,
|
||||
processData: false,
|
||||
success: function(html){
|
||||
$("#statisticsBody").empty().append(html)
|
||||
$("#statisticsBody").show();
|
||||
$(".statisticsMenu").hide();
|
||||
|
||||
},
|
||||
error:function(e){
|
||||
|
||||
ajaxErrorAction(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$(document).on('click', '#ratingSearch', function (){
|
||||
if($('input:checkbox[name=rating]:checked').length < 1){
|
||||
alert("평가항목을 선택해주세요");
|
||||
|
|
@ -60,8 +37,38 @@ $(document).on('click', '#ratingTab', function (){
|
|||
goRatingStatistics();
|
||||
})
|
||||
|
||||
function goRatingStatistics(){
|
||||
$(document).on('click', '#personalSearch', function (){
|
||||
goPersonalStatistics();
|
||||
})
|
||||
|
||||
$(document).on('click', '#personalTab', function (){
|
||||
goPersonalStatistics();
|
||||
})
|
||||
|
||||
function goFieldStatistics(){
|
||||
contentFade("in")
|
||||
const formData = new FormData($("#searchFm")[0]);
|
||||
$.ajax({
|
||||
url: '/affair/fieldStatistics',
|
||||
data: formData,
|
||||
type: 'POST',
|
||||
dataType:"html",
|
||||
contentType: false,
|
||||
processData: false,
|
||||
success: function(html){
|
||||
contentFade("out")
|
||||
$("#statisticsBody").empty().append(html).show();
|
||||
$(".statisticsMenu").hide();
|
||||
},
|
||||
error:function(e){
|
||||
contentFade("out")
|
||||
ajaxErrorAction(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function goRatingStatistics(){
|
||||
contentFade("in")
|
||||
const formData = new FormData($("#searchFm")[0]);
|
||||
$.ajax({
|
||||
url: '/affair/ratingStatistics',
|
||||
|
|
@ -71,13 +78,34 @@ function goRatingStatistics(){
|
|||
contentType: false,
|
||||
processData: false,
|
||||
success: function(html){
|
||||
$("#statisticsBody").empty().append(html)
|
||||
$("#statisticsBody").show();
|
||||
contentFade("out")
|
||||
$("#statisticsBody").empty().append(html).show();
|
||||
$(".statisticsMenu").hide();
|
||||
|
||||
},
|
||||
error:function(e){
|
||||
contentFade("out")
|
||||
ajaxErrorAction(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function goPersonalStatistics(){
|
||||
contentFade("in")
|
||||
const formData = new FormData($("#searchFm")[0]);
|
||||
$.ajax({
|
||||
url: '/affair/personalStatistics',
|
||||
data: formData,
|
||||
type: 'GET',
|
||||
dataType:"html",
|
||||
contentType: false,
|
||||
processData: false,
|
||||
success: function(html){
|
||||
contentFade("out")
|
||||
$("#statisticsBody").empty().append(html).show();
|
||||
$(".statisticsMenu").hide();
|
||||
},
|
||||
error:function(e){
|
||||
contentFade("out")
|
||||
ajaxErrorAction(e);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{layout/layout}">
|
||||
<th:block layout:fragment="script">
|
||||
<script type="text/javascript" th:src="@{/js/igActivities/fpiMgt/affair/statistics.js}"></script>
|
||||
<script type="text/javascript" th:src="@{/js/igActivities/statistics.js}"></script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="css">
|
||||
<link rel="stylesheet" th:href="@{/css/affair/affair.css}">
|
||||
|
|
@ -133,6 +133,7 @@
|
|||
<div class="col-1 d-grid gap-2">
|
||||
<button type="button" id="fieldSearch" class="btn btn-primary">분야별 검색</button>
|
||||
<button type="button" id="ratingSearch" class="btn btn-primary">평가별 검색</button>
|
||||
<button type="button" id="personalSearch" class="btn btn-primary">개인실적 검색</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -5,6 +5,9 @@
|
|||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="ratingTab" data-bs-toggle="tab" type="button" role="tab">평가별</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="personalTab" data-bs-toggle="tab" type="button" role="tab">개인실적</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content bg-white border border-top-0 p-2">
|
||||
<div class="row justify-content-end">
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
<ul class="nav nav-tabs" id="userTab" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="fieldTab" data-bs-toggle="tab" type="button" role="tab">분야별</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="ratingTab" data-bs-toggle="tab" type="button" role="tab">평가별</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link active" id="personalTab" data-bs-toggle="tab" type="button" role="tab">개인실적</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content bg-white border border-top-0 p-2">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-auto">
|
||||
<button class="btn btn-primary" id="showMenu">검색조건열기</button>
|
||||
<button class="btn btn-success" id="fieldDownExcel">엑셀다운</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row pt-2" id="statisticsDiv">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -5,6 +5,9 @@
|
|||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link active" id="ratingTab" data-bs-toggle="tab" type="button" role="tab">평가별</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="personalTab" data-bs-toggle="tab" type="button" role="tab">개인실적</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content bg-white border border-top-0 p-2">
|
||||
<div class="row justify-content-end">
|
||||
|
|
@ -25,9 +25,9 @@
|
|||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" th:classappend="${activeTab ne 'dashboard'?'active':''}" id="infoTab" data-bs-toggle="tab" data-bs-target="#infoTabPanel" type="button" role="tab" aria-controls="infoTabPanel" th:aria-selected="${activeTab ne 'dashboard'?'true':'false'}">개인정보</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<!--<li class="nav-item" role="presentation">
|
||||
<button class="nav-link disabled" th:classappend="${activeTab eq 'dashboard'?'active':''}" id="dashboardTab" data-bs-toggle="tab" data-bs-target="#dashboardTabPanel" type="button" role="tab" aria-controls="dashboardTabPanel" th:aria-selected="${activeTab eq 'dashboard'?'true':'false'}">대시보드</button>
|
||||
</li>
|
||||
</li>-->
|
||||
</ul>
|
||||
<div class="tab-content bg-white border border-top-0 p-2">
|
||||
<div class="tab-pane fade p-2" th:classappend="${activeTab ne 'dashboard'?'show active':''}" id="infoTabPanel" role="tabpanel" aria-labelledby="infoTabPanel" tabindex="0">
|
||||
|
|
|
|||
Loading…
Reference in New Issue