feat: 모든 상위메뉴 소메뉴에 아이콘 표시(기본정보관리 방식 확대)
기본정보관리에만 적용되던 사이드바 소메뉴 아이콘을 전체 상위메뉴로 확대. 전화접수·발주·입고·재고·판매·수불·분석·반품/취소·바코드 등 실제 메뉴명에 맞는 Font Awesome 아이콘 키워드 매핑 확장(서버 렌더 + JS 재구성 동일 유지).
This commit is contained in:
@@ -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 '<i class="fa-solid ' + sidebarIcon(childName) + '" style="width:1.15em;margin-right:.45em;opacity:.85;"></i>';
|
||||
}
|
||||
|
||||
|
||||
@@ -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-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-gift',
|
||||
'포장' => 'fa-box',
|
||||
'단가' => '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',
|
||||
];
|
||||
foreach ($rules as $kw => $icon) {
|
||||
if (mb_stripos($name, $kw) !== false) {
|
||||
|
||||
Reference in New Issue
Block a user