From fe5f7cd155c79ccb9af9574a446cf98f4fb466e6 Mon Sep 17 00:00:00 2001
From: Hyungi Ahn
Date: Sat, 14 Mar 2026 17:57:47 +0900
Subject: [PATCH] =?UTF-8?q?feat(ux):=20=EC=A0=84=EC=B2=B4=20=EC=8B=9C?=
=?UTF-8?q?=EC=8A=A4=ED=85=9C=20=EB=AA=A8=EB=B0=94=EC=9D=BC=20UX=20?=
=?UTF-8?q?=EA=B0=9C=EC=84=A0=20=E2=80=94=20=ED=96=84=EB=B2=84=EA=B1=B0?=
=?UTF-8?q?=EB=A9=94=EB=89=B4=C2=B7=ED=95=84=ED=84=B0=EB=B0=98=EC=9D=91?=
=?UTF-8?q?=ED=98=95=C2=B7=ED=84=B0=EC=B9=98=ED=83=80=EA=B2=9F=C2=B7iOS?=
=?UTF-8?q?=EC=A4=8C=EB=B0=A9=EC=A7=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
7개 시스템(tkpurchase/tksafety/tksupport/tkuser/system1/system2/system3)의
모바일 사용성 일괄 개선. system1(tkfb)의 모바일 메뉴 패턴을 3개 신규 시스템에 적용.
주요 변경:
- 모바일 햄버거 메뉴: tkpurchase/tksafety/tksupport에 toggleMobileMenu+overlay 추가
- 필터 반응형: 768px 이하 2열 그리드 전환 (filter-bar/filter-actions 클래스)
- 터치 타겟 44px: 테이블 액션 버튼 36px+gap, tksafety ±버튼 w-11
- iOS 줌 방지: input/select/textarea font-size 16px
- tkuser: 탭 가로스크롤+fade힌트, 사이드바·grid·드롭다운 반응형
- system1: 대시보드 인라인 width 제거, 이동설비 그리드 1열
- system2: 사진그리드 4열, 유형버튼 2열 (480px 이하)
- system3: 카드 내 액션 버튼 stopPropagation 추가
- 캐시 무효화: 전체 HTML ?v=2026031401
Co-Authored-By: Claude Opus 4.6
---
system1-factory/web/css/modern-dashboard.css | 3 ++
system1-factory/web/index.html | 2 +-
.../web/pages/admin/attendance-report.html | 6 +--
.../web/pages/admin/departments.html | 4 +-
.../web/pages/admin/equipment-detail.html | 10 ++---
.../web/pages/admin/equipments.html | 10 ++---
.../web/pages/admin/issue-categories.html | 4 +-
.../web/pages/admin/notifications.html | 4 +-
system1-factory/web/pages/admin/projects.html | 4 +-
.../web/pages/admin/purchase-analysis.html | 4 +-
.../web/pages/admin/repair-management.html | 4 +-
system1-factory/web/pages/admin/tasks.html | 4 +-
.../web/pages/admin/workplaces.html | 18 ++++----
.../web/pages/attendance/annual-overview.html | 4 +-
.../web/pages/attendance/checkin.html | 4 +-
.../web/pages/attendance/daily.html | 4 +-
.../web/pages/attendance/monthly.html | 4 +-
.../pages/attendance/my-vacation-info.html | 4 +-
.../pages/attendance/vacation-allocation.html | 4 +-
.../pages/attendance/vacation-approval.html | 4 +-
.../web/pages/attendance/vacation-input.html | 4 +-
.../pages/attendance/vacation-management.html | 4 +-
.../pages/attendance/vacation-request.html | 4 +-
.../web/pages/attendance/work-status.html | 4 +-
system1-factory/web/pages/dashboard-new.html | 2 +-
system1-factory/web/pages/dashboard.html | 16 +++----
.../web/pages/inspection/daily-patrol.html | 10 ++---
.../web/pages/inspection/zone-detail.html | 10 ++---
system1-factory/web/pages/profile/info.html | 4 +-
.../web/pages/profile/password.html | 4 +-
.../web/pages/purchase/request.html | 4 +-
system1-factory/web/pages/work/analysis.html | 8 ++--
.../web/pages/work/nonconformity.html | 2 +-
.../web/pages/work/report-create-mobile.html | 18 ++++----
.../web/pages/work/report-create.html | 18 ++++----
.../web/pages/work/tbm-create.html | 16 +++----
.../web/pages/work/tbm-mobile.html | 18 ++++----
system1-factory/web/pages/work/tbm.html | 18 ++++----
.../web/pages/safety/chat-report.html | 10 ++---
.../web/pages/safety/issue-detail.html | 10 ++---
.../web/pages/safety/issue-report.html | 12 +++--
.../web/pages/safety/report-status.html | 12 ++---
system3-nonconformance/web/ai-assistant.html | 22 ++++-----
system3-nonconformance/web/app.html | 2 +-
system3-nonconformance/web/issue-view.html | 26 +++++------
.../web/issues-archive.html | 26 +++++------
.../web/issues-dashboard.html | 24 +++++-----
system3-nonconformance/web/issues-inbox.html | 28 ++++++------
.../web/issues-management.html | 26 +++++------
system3-nonconformance/web/m/dashboard.html | 14 +++---
system3-nonconformance/web/m/inbox.html | 14 +++---
system3-nonconformance/web/m/management.html | 14 +++---
system3-nonconformance/web/reports-daily.html | 8 ++--
.../web/reports-monthly.html | 8 ++--
.../web/reports-weekly.html | 8 ++--
system3-nonconformance/web/reports.html | 8 ++--
.../web/static/js/m/m-management.js | 8 ++--
tkpurchase/web/accounts.html | 13 +++---
tkpurchase/web/daylabor.html | 26 ++++++-----
tkpurchase/web/index.html | 9 ++--
tkpurchase/web/partner-history.html | 6 +--
tkpurchase/web/partner-portal.html | 6 +--
tkpurchase/web/partner.html | 9 ++--
tkpurchase/web/schedule.html | 26 ++++++-----
tkpurchase/web/static/css/tkpurchase.css | 45 +++++++++++++++++++
tkpurchase/web/static/js/tkpurchase-core.js | 25 +++++++++++
.../static/js/tkpurchase-partner-portal.js | 4 +-
tkpurchase/web/workreport-summary.html | 9 ++--
tkpurchase/web/workreport.html | 25 ++++++-----
tksafety/web/checklist.html | 7 ++-
tksafety/web/education.html | 9 ++--
tksafety/web/entry-dashboard.html | 7 ++-
tksafety/web/index.html | 17 ++++---
tksafety/web/static/css/tksafety.css | 45 +++++++++++++++++++
tksafety/web/static/js/tksafety-core.js | 25 +++++++++++
tksafety/web/training.html | 5 ++-
tksafety/web/visit-management.html | 7 ++-
tksafety/web/visit-request.html | 7 ++-
tksupport/web/index.html | 7 ++-
tksupport/web/static/css/tksupport.css | 45 +++++++++++++++++++
tksupport/web/static/js/tksupport-core.js | 25 +++++++++++
tksupport/web/vacation-approval.html | 11 +++--
tksupport/web/vacation-request.html | 7 ++-
tksupport/web/vacation-status.html | 7 ++-
user-management/web/index.html | 39 ++++++++--------
user-management/web/static/css/tkuser.css | 18 ++++++++
86 files changed, 667 insertions(+), 373 deletions(-)
diff --git a/system1-factory/web/css/modern-dashboard.css b/system1-factory/web/css/modern-dashboard.css
index 33effbf..b288d28 100644
--- a/system1-factory/web/css/modern-dashboard.css
+++ b/system1-factory/web/css/modern-dashboard.css
@@ -3848,6 +3848,9 @@
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 16px;
}
+@media (max-width: 768px) {
+ .moved-equipment-grid { grid-template-columns: 1fr; }
+}
.moved-equipment-card {
background: white;
diff --git a/system1-factory/web/index.html b/system1-factory/web/index.html
index c631df7..f468fb2 100644
--- a/system1-factory/web/index.html
+++ b/system1-factory/web/index.html
@@ -10,7 +10,7 @@
if('serviceWorker' in navigator){navigator.serviceWorker.getRegistrations().then(function(r){r.forEach(function(reg){reg.unregister()});})}
if('caches' in window){caches.keys().then(function(k){k.forEach(function(key){caches.delete(key)})})}
-
+
-
+
+
-
+
+
@@ -314,11 +314,11 @@
-
-
+
+
-
+