Files
tk-factory-services/user-management/web/static/js/tkuser-tabs.js
Hyungi Ahn 3623551a6b feat(purchase): 생산소모품 구매 관리 시스템 구현
tkuser: 업체(공급업체) CRUD + 소모품 마스터 CRUD (사진 업로드 포함)
tkfb: 구매신청 → 구매 처리 → 월간 분석/정산 전체 워크플로
설비(equipment) 분류 구매 시 자동 등록 + 실패 시 admin 알림

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 21:21:59 +09:00

36 lines
2.0 KiB
JavaScript

/* ===== Tab ===== */
function switchTab(name) {
// 권한 guard: currentUserAllowedTabs가 Set이면 허용된 탭만 접근
if (typeof currentUserAllowedTabs !== 'undefined'
&& currentUserAllowedTabs
&& !currentUserAllowedTabs.has(name)) return;
document.querySelectorAll('[id^="tab-"]').forEach(el => el.classList.add('hidden'));
document.getElementById('tab-' + name)?.classList.remove('hidden');
document.querySelectorAll('.tab-btn').forEach(btn => btn.classList.remove('active'));
event.currentTarget.classList.add('active');
// 사이드바 레이아웃 탭에서 main/nav/header 너비 확장
const mainEl = document.querySelector('main');
const navInner = document.getElementById('tabNavInner');
const headerInner = document.getElementById('headerInner');
const wideClass = 'max-w-[1600px]';
const defaultClass = 'max-w-7xl';
if (name === 'workplaces' || name === 'tasks' || name === 'vacations') {
[mainEl, navInner, headerInner].forEach(el => { el.classList.remove(defaultClass); el.classList.add(wideClass); });
} else {
[mainEl, navInner, headerInner].forEach(el => { el.classList.remove(wideClass); el.classList.add(defaultClass); });
}
if (name === 'projects' && !projectsLoaded) loadProjects();
if (name === 'workers' && !workersLoaded) loadWorkers();
if (name === 'departments' && !departmentsLoaded) loadDepartments();
if (name === 'workplaces' && !workplacesLoaded) loadWorkplaces();
if (name === 'tasks' && !tasksLoaded) loadTasksTab();
if (name === 'vacations' && !vacationsLoaded) loadVacationsTab();
if (name === 'issueTypes' && !issueTypesLoaded) loadIssueTypes();
if (name === 'permissions' && !permissionsTabLoaded) loadPermissionsTab();
if (name === 'partners' && !partnersLoaded) loadPartnersTab();
if (name === 'vendors' && !vendorsLoaded) loadVendorsTab();
if (name === 'consumables' && !consumablesLoaded) loadConsumablesTab();
if (name === 'notificationRecipients' && !nrLoaded) loadNotificationRecipientsTab();
}