From f624c13b5b3b816412a324ce60c7f9394f83cfdb Mon Sep 17 00:00:00 2001 From: taekyoungc Date: Tue, 14 Jul 2026 12:09:31 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=AA=A8=EB=93=A0=20=EC=83=81=EC=9C=84?= =?UTF-8?q?=EB=A9=94=EB=89=B4=20=EC=86=8C=EB=A9=94=EB=89=B4=EC=97=90=20?= =?UTF-8?q?=EC=95=84=EC=9D=B4=EC=BD=98=20=ED=91=9C=EC=8B=9C(=EA=B8=B0?= =?UTF-8?q?=EB=B3=B8=EC=A0=95=EB=B3=B4=EA=B4=80=EB=A6=AC=20=EB=B0=A9?= =?UTF-8?q?=EC=8B=9D=20=ED=99=95=EB=8C=80)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 기본정보관리에만 적용되던 사이드바 소메뉴 아이콘을 전체 상위메뉴로 확대. 전화접수·발주·입고·재고·판매·수불·분석·반품/취소·바코드 등 실제 메뉴명에 맞는 Font Awesome 아이콘 키워드 매핑 확장(서버 렌더 + JS 재구성 동일 유지). --- .../_dashboard_gov_portal_nav_script_base.php | 31 ++++++--- .../home/_dashboard_gov_portal_sidebar.php | 66 ++++++++++++++----- 2 files changed, 73 insertions(+), 24 deletions(-) diff --git a/app/Views/home/_dashboard_gov_portal_nav_script_base.php b/app/Views/home/_dashboard_gov_portal_nav_script_base.php index a2630c4..c2d2e89 100644 --- a/app/Views/home/_dashboard_gov_portal_nav_script_base.php +++ b/app/Views/home/_dashboard_gov_portal_nav_script_base.php @@ -6,17 +6,31 @@ var listEl = document.getElementById('portalSidebarList'); var titleEl = document.getElementById('portalSidebarTitle'); - // 기본정보관리 소메뉴 아이콘(Font Awesome solid) — 이름 키워드 기준(구체적인 것 먼저) + // 모든 상위메뉴의 소메뉴 아이콘(Font Awesome solid) — 이름 키워드 기준(구체적인 것 먼저). + // 서버 렌더(_dashboard_gov_portal_sidebar.php)의 매핑과 동일하게 유지할 것. function sidebarIcon(name) { var n = String(name || ''); var rules = [ - ['바코드', 'fa-barcode'], ['조회', 'fa-magnifying-glass'], - ['신규', 'fa-chart-column'], ['현황', 'fa-chart-column'], - ['판매소', 'fa-store'], ['대행소', 'fa-handshake'], - ['담당자', 'fa-user-tie'], ['업체', 'fa-building'], - ['무료', 'fa-gift'], ['포장', 'fa-box'], - ['단가', 'fa-won-sign'], ['코드', 'fa-list-ol'], - ['비밀번호', 'fa-key'], ['설정', 'fa-gear'] + ['바코드', 'fa-barcode'], ['스캐너', 'fa-barcode'], ['번호', 'fa-hashtag'], + ['판매대장', 'fa-book'], ['대장', 'fa-book'], + ['집계표', 'fa-table-list'], ['일계표', 'fa-table-list'], + ['수불', 'fa-right-left'], ['입출고', 'fa-right-left'], + ['무료', 'fa-gift'], ['반품', 'fa-rotate-left'], ['파기', 'fa-trash-can'], + ['신규', 'fa-chart-column'], ['취소', 'fa-ban'], + ['발주파일', 'fa-file-arrow-down'], ['발주', 'fa-cart-shopping'], + ['입고', 'fa-dolly'], ['재고', 'fa-warehouse'], ['불출', 'fa-truck-ramp-box'], + ['전화', 'fa-phone'], ['접수', 'fa-clipboard-list'], + ['판매현황', 'fa-chart-column'], ['판매소', 'fa-store'], ['대행소', 'fa-handshake'], + ['담당자', 'fa-user-tie'], ['대상자', 'fa-user-check'], ['업체', 'fa-building'], + ['단가', 'fa-won-sign'], ['코드', 'fa-list-ol'], ['포장', 'fa-box'], + ['계획', 'fa-clipboard-check'], ['실사', 'fa-clipboard-check'], + ['분석', 'fa-chart-line'], ['추이', 'fa-chart-line'], ['통계', 'fa-chart-line'], + ['홈텍스', 'fa-file-invoice-dollar'], ['판매', 'fa-cash-register'], + ['현황', 'fa-chart-column'], ['조회', 'fa-magnifying-glass'], + ['대시보드', 'fa-gauge-high'], ['회원', 'fa-users'], ['승인', 'fa-user-check'], + ['로그', 'fa-clock-rotate-left'], ['이력', 'fa-clock-rotate-left'], + ['메뉴', 'fa-bars'], ['지자체', 'fa-city'], ['문의', 'fa-comment-dots'], + ['비밀번호', 'fa-key'], ['설정', 'fa-gear'], ['관리', 'fa-folder-open'] ]; for (var i = 0; i < rules.length; i++) { if (n.indexOf(rules[i][0]) !== -1) return rules[i][1]; @@ -25,7 +39,6 @@ return 'fa-angle-right'; } function iconHtml(parentName, childName) { - if (String(parentName || '').replace(/\s/g, '') !== '기본정보관리') return ''; return ''; } diff --git a/app/Views/home/_dashboard_gov_portal_sidebar.php b/app/Views/home/_dashboard_gov_portal_sidebar.php index 97e92dd..b5a4384 100644 --- a/app/Views/home/_dashboard_gov_portal_sidebar.php +++ b/app/Views/home/_dashboard_gov_portal_sidebar.php @@ -7,24 +7,60 @@ $activeParent = $govNavItems[$govActiveParentIdx] ?? $govNavItems[0] ?? null; $sidebarTitle = $activeParent['name'] ?? 'MY MENU'; $activeChildHref = strtolower(ltrim((string) ($govActiveChildHref ?? ''), '/')); -// 기본정보관리 소메뉴에 어울리는 아이콘(Font Awesome solid) 매핑 — 이름 키워드 기준(구체적인 것 먼저) -$showSidebarIcons = (str_replace(' ', '', (string) $sidebarTitle) === '기본정보관리'); +// 모든 상위메뉴의 소메뉴에 어울리는 아이콘(Font Awesome solid) 매핑 — 이름 키워드 기준(구체적인 것 먼저). +$showSidebarIcons = true; $sidebarIconFor = static function (string $name): string { $rules = [ - '바코드' => 'fa-barcode', // 지정판매소 바코드 출력 - '조회' => 'fa-magnifying-glass', // 지정 판매소 조회 - '신규' => 'fa-chart-column', // 지정 판매소 신규/취소 현황 - '현황' => 'fa-chart-column', - '판매소' => 'fa-store', // 지정 판매소 관리 - '대행소' => 'fa-handshake', - '담당자' => 'fa-user-tie', - '업체' => 'fa-building', - '무료' => 'fa-gift', - '포장' => 'fa-box', - '단가' => 'fa-won-sign', - '코드' => 'fa-list-ol', + '바코드' => 'fa-barcode', + '스캐너' => 'fa-barcode', + '번호' => 'fa-hashtag', + '판매대장' => 'fa-book', + '대장' => 'fa-book', + '집계표' => 'fa-table-list', + '일계표' => 'fa-table-list', + '수불' => 'fa-right-left', + '입출고' => 'fa-right-left', + '무료' => 'fa-gift', + '반품' => 'fa-rotate-left', + '파기' => 'fa-trash-can', + '신규' => 'fa-chart-column', + '취소' => 'fa-ban', + '발주파일' => 'fa-file-arrow-down', + '발주' => 'fa-cart-shopping', + '입고' => 'fa-dolly', + '재고' => 'fa-warehouse', + '불출' => 'fa-truck-ramp-box', + '전화' => 'fa-phone', + '접수' => 'fa-clipboard-list', + '판매현황' => 'fa-chart-column', + '판매소' => 'fa-store', + '대행소' => 'fa-handshake', + '담당자' => 'fa-user-tie', + '대상자' => 'fa-user-check', + '업체' => 'fa-building', + '단가' => 'fa-won-sign', + '코드' => 'fa-list-ol', + '포장' => 'fa-box', + '계획' => 'fa-clipboard-check', + '실사' => 'fa-clipboard-check', + '분석' => 'fa-chart-line', + '추이' => 'fa-chart-line', + '통계' => 'fa-chart-line', + '홈텍스' => 'fa-file-invoice-dollar', + '판매' => 'fa-cash-register', + '현황' => 'fa-chart-column', + '조회' => 'fa-magnifying-glass', + '대시보드' => 'fa-gauge-high', + '회원' => 'fa-users', + '승인' => 'fa-user-check', + '로그' => 'fa-clock-rotate-left', + '이력' => 'fa-clock-rotate-left', + '메뉴' => 'fa-bars', + '지자체' => 'fa-city', + '문의' => 'fa-comment-dots', '비밀번호' => 'fa-key', - '설정' => 'fa-gear', + '설정' => 'fa-gear', + '관리' => 'fa-folder-open', ]; foreach ($rules as $kw => $icon) { if (mb_stripos($name, $kw) !== false) {