기능 추가 및 버그 수정 — 처리시간 지표, 대시보드 차트, UI 개선
## 처리시간 지표 - 업무시간 기준(09-18 평일) / 공휴일 제외 24h / 달력 기준 3가지 모드 선택 - 공휴일 DB 관리 (holidays 테이블, 수동 등록·삭제·일괄 추가) - 2026년 공휴일 등록 지원 - 설정 페이지에서 라디오 버튼으로 모드 선택 ## 대시보드 차트 - 월별 평균 처리시간 막대 차트 추가 - 월별 신고 접수 건수 누적 막대 차트 추가 - 월별 → 일별 드릴다운 (막대 클릭 시 해당 월의 일별 차트로 전환) - 일별 막대 클릭 시 처리 완료/신고 접수 상세 내역 모달 - 충전기별 누적 고장 건수 Top 10 수평 막대 차트 추가 ## 신고 목록 - # 컬럼을 DB PK 대신 현재 목록 순서(1, 2, 3…)로 표시 - 엑셀 export 접수번호도 순차번호로 변경 ## 모바일 네비게이션 버그 수정 - 모바일에서 가로 오버플로우 시 nav가 body 넓이로 늘어나 햄버거 버튼이 화면 밖으로 밀리는 문제 수정 - nav를 position:fixed + body padding-top:54px 로 변경 (전체 페이지 적용) - 충전기 관리·신고 목록 페이지 지도 컨테이너에 isolation:isolate 적용 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -17,12 +17,21 @@
|
||||
body{font-family:'Noto Sans KR',sans-serif;background:var(--gray1);color:var(--text);font-size:14px;min-height:100vh;}
|
||||
|
||||
/* ── NAV ── */
|
||||
.nav{background:var(--navy);color:white;padding:0 24px;height:54px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;box-shadow:0 2px 8px rgba(0,0,0,.3);}
|
||||
.nav{background:var(--navy);color:white;padding:0 24px;height:54px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:400;box-shadow:0 2px 8px rgba(0,0,0,.3);}
|
||||
.nav-brand{font-size:16px;font-weight:700;color:var(--accent);}
|
||||
.nav-user{font-size:13px;color:rgba(255,255,255,.7);display:flex;align-items:center;gap:12px;}
|
||||
.nav-user a{color:rgba(255,255,255,.7);text-decoration:none;cursor:pointer;}
|
||||
.nav-user a:hover{color:white;}
|
||||
|
||||
/* ── 햄버거 버튼 (데스크톱 숨김) ── */
|
||||
.nav-hamburger{display:none;background:none;border:none;color:white;font-size:22px;
|
||||
cursor:pointer;padding:4px 10px;margin-right:2px;border-radius:6px;line-height:1;}
|
||||
.nav-hamburger:hover{background:rgba(255,255,255,.12);}
|
||||
|
||||
/* ── 모바일 오버레이 ── */
|
||||
.mobile-nav-overlay{display:none;position:fixed;inset:54px 0 0 0;
|
||||
background:rgba(0,0,0,.45);z-index:299;}
|
||||
|
||||
/* ── SIDEBAR (admin/mechanic) ── */
|
||||
.layout{display:flex;min-height:calc(100vh - 54px);}
|
||||
.sidebar{background:var(--navy2);width:200px;flex-shrink:0;padding:16px 0;}
|
||||
@@ -139,10 +148,38 @@ textarea{resize:vertical;min-height:80px;}
|
||||
.spinner{display:inline-block;width:18px;height:18px;border:2px solid var(--gray3);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;}
|
||||
@keyframes spin{to{transform:rotate(360deg);}}
|
||||
|
||||
/* ── 2컬럼 상세 그리드 ── */
|
||||
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
|
||||
|
||||
/* ── RESPONSIVE ── */
|
||||
@media(max-width:768px){
|
||||
.form-row,.form-row-3{grid-template-columns:1fr;}
|
||||
.sidebar{display:none;}
|
||||
.main{padding:16px;}
|
||||
.stats{grid-template-columns:repeat(2,1fr);}
|
||||
.detail-grid{grid-template-columns:1fr;}
|
||||
|
||||
/* nav: sticky → fixed (가로 오버플로우 시 body 넓이에 끌려 햄버거 버튼이 밀려나는 문제 방지) */
|
||||
.nav{position:fixed;left:0;width:100%;box-sizing:border-box;}
|
||||
body{padding-top:54px;}
|
||||
|
||||
/* 사이드바 → 슬라이드 드로어 */
|
||||
.sidebar{
|
||||
position:fixed;top:54px;left:0;bottom:0;
|
||||
width:220px;z-index:300;overflow-y:auto;
|
||||
transform:translateX(-100%);
|
||||
transition:transform .25s ease;
|
||||
box-shadow:none;
|
||||
}
|
||||
.sidebar.mobile-open{
|
||||
transform:translateX(0);
|
||||
box-shadow:4px 0 28px rgba(0,0,0,.45);
|
||||
}
|
||||
.mobile-nav-overlay.show{display:block;}
|
||||
.nav-hamburger{display:inline-flex;align-items:center;}
|
||||
}
|
||||
|
||||
/* ── 정비사 모바일 탭 바 ── */
|
||||
.mech-tab-bar{display:none;background:var(--navy2);position:sticky;top:54px;z-index:200;border-bottom:1px solid rgba(255,255,255,.15);}
|
||||
.mech-tab-bar a{flex:1;display:flex;flex-direction:column;align-items:center;padding:8px 4px 7px;color:rgba(255,255,255,.6);text-decoration:none;font-size:11px;border-bottom:3px solid transparent;transition:all .15s;gap:1px;line-height:1.4;}
|
||||
.mech-tab-bar a:hover,.mech-tab-bar a.active{color:white;border-bottom-color:var(--accent);background:rgba(255,255,255,.06);}
|
||||
@media(max-width:768px){.mech-tab-bar{display:flex;}}
|
||||
|
||||
Reference in New Issue
Block a user