refactor(tkfb): "구매 관리" → "소모품 관리" 리네이밍 — UI 라벨을 실제 기능에 맞게 변경

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-03-16 13:19:31 +09:00
parent 817002f798
commit cc47d25851
39 changed files with 56 additions and 56 deletions

View File

@@ -190,7 +190,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script type="module">

View File

@@ -324,7 +324,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="/js/department-management.js"></script>
<script>initAuth();</script>

View File

@@ -314,7 +314,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script type="module">

View File

@@ -190,7 +190,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script type="module">

View File

@@ -329,7 +329,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script type="module" src="/js/issue-category-manage.js"></script>
<script>initAuth();</script>

View File

@@ -387,7 +387,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script>
let currentPage = 1;

View File

@@ -384,7 +384,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script>
let allProjects = [];

View File

@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>구매 분석 - TK 공장관리</title>
<title>소모품 분석 - TK 공장관리</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="/static/css/tkfb.css">
@@ -33,8 +33,8 @@
<div class="page-header">
<div class="page-title-section">
<h1 class="page-title">구매 분석</h1>
<p class="page-description">월간 구매 현황 분석 및 업체별 정산 관리</p>
<h1 class="page-title">소모품 분석</h1>
<p class="page-description">월간 소모품 현황 분석 및 업체별 정산 관리</p>
</div>
</div>
@@ -74,7 +74,7 @@
<!-- 상세 구매 목록 -->
<div class="bg-white rounded-xl shadow-sm p-5 mb-6">
<h2 class="text-base font-semibold text-gray-800 mb-4"><i class="fas fa-list text-orange-500 mr-2"></i>상세 구매 목록</h2>
<h2 class="text-base font-semibold text-gray-800 mb-4"><i class="fas fa-list text-orange-500 mr-2"></i>상세 소모품 목록</h2>
<div class="overflow-x-auto">
<table class="w-full text-sm">
<thead class="bg-gray-50 text-gray-600 text-xs uppercase">
@@ -107,7 +107,7 @@
</div>
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/purchase-analysis.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/static/js/purchase-analysis.js?v=2026031601"></script>
</body>
</html>

View File

@@ -487,7 +487,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script>
let currentReportId = null;

View File

@@ -285,7 +285,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script>
let workTypes = [];

View File

@@ -431,7 +431,7 @@
</div>
<!-- 작업장 관리 모듈 (리팩토링된 구조) -->
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="/js/workplace-management/state.js?v=2026031401"></script>
<script src="/js/workplace-management/utils.js?v=2026031401"></script>

View File

@@ -328,7 +328,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script>

View File

@@ -222,7 +222,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script>

View File

@@ -70,7 +70,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script>

View File

@@ -474,7 +474,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script>

View File

@@ -265,7 +265,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script>

View File

@@ -353,7 +353,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script type="module" src="/js/vacation-allocation.js" defer></script>
<script>initAuth();</script>

View File

@@ -123,7 +123,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script src="/js/vacation-common.js"></script>

View File

@@ -123,7 +123,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script src="/js/vacation-common.js"></script>

View File

@@ -205,7 +205,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script src="/js/vacation-common.js"></script>

View File

@@ -117,7 +117,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script src="/js/vacation-common.js"></script>

View File

@@ -276,7 +276,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script>

View File

@@ -138,7 +138,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/static/js/tkfb-dashboard.js"></script>
</body>
</html>

View File

@@ -323,7 +323,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script type="module" src="/js/modern-dashboard.js?v=2026031401"></script>
<script type="module" src="/js/group-leader-dashboard.js?v=2026031401"></script>

View File

@@ -209,7 +209,7 @@
}, 50);
})();
</script>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="/js/daily-patrol.js?v=2026031401"></script>
<script>initAuth();</script>

View File

@@ -304,7 +304,7 @@
}, 50);
})();
</script>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="/js/zone-detail.js?v=2026031401"></script>
<script>initAuth();</script>

View File

@@ -320,7 +320,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script type="module" src="/js/my-profile.js"></script>
<script>initAuth();</script>

View File

@@ -390,7 +390,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script type="module" src="/js/change-password.js"></script>
<script>initAuth();</script>

View File

@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>구매신청 - TK 공장관리</title>
<title>소모품 신청 - TK 공장관리</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="/static/css/tkfb.css">
@@ -45,14 +45,14 @@
<div class="page-header">
<div class="page-title-section">
<h1 class="page-title">구매신청</h1>
<p class="page-description">생산소모품 구매를 신청하고 처리 현황을 확인합니다</p>
<h1 class="page-title">소모품 신청</h1>
<p class="page-description">소모품 신청하고 처리 현황을 확인합니다</p>
</div>
</div>
<!-- 구매신청 폼 -->
<div class="bg-white rounded-xl shadow-sm p-5 mb-6">
<h2 class="text-base font-semibold text-gray-800 mb-4"><i class="fas fa-plus-circle text-orange-500 mr-2"></i>신규 구매신청</h2>
<h2 class="text-base font-semibold text-gray-800 mb-4"><i class="fas fa-plus-circle text-orange-500 mr-2"></i>신규 소모품 신청</h2>
<div class="grid grid-cols-1 sm:grid-cols-4 gap-4 items-start">
<div class="sm:col-span-2 relative">
<label class="block text-xs font-medium text-gray-600 mb-1">소모품 <span class="text-red-400">*</span></label>
@@ -104,7 +104,7 @@
</div>
<div class="mt-4 flex justify-end">
<button onclick="submitPurchaseRequest()" class="px-5 py-2 bg-orange-600 text-white rounded-lg text-sm hover:bg-orange-700">
<i class="fas fa-paper-plane mr-1"></i>구매신청
<i class="fas fa-paper-plane mr-1"></i>소모품 신청
</button>
</div>
</div>
@@ -221,7 +221,7 @@
</div>
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/purchase-request.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/static/js/purchase-request.js?v=2026031601"></script>
</body>
</html>

View File

@@ -277,7 +277,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script type="module" src="/js/work-analysis.js?v=2026031401"></script>

View File

@@ -90,7 +90,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/static/js/tkfb-nonconformity.js"></script>
</body>
</html>

View File

@@ -189,7 +189,7 @@
</div>
<!-- 공통 모듈 -->
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="/js/common/utils.js?v=2026031401"></script>
<script src="/js/common/base-state.js?v=2026031401"></script>

View File

@@ -149,7 +149,7 @@
</div>
</div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="/js/common/utils.js?v=2026031401"></script>
<script src="/js/common/base-state.js?v=2026031401"></script>

View File

@@ -843,7 +843,7 @@
</div>
<!-- Scripts -->
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<!-- 공통 모듈 -->
<script src="/js/common/utils.js?v=2026031401"></script>

View File

@@ -296,7 +296,7 @@
</div>
<!-- 공통 모듈 -->
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="/js/common/utils.js?v=2026031401"></script>
<script src="/js/common/base-state.js?v=2026031401"></script>

View File

@@ -560,7 +560,7 @@
<!-- 토스트 -->
<div class="toast-container" id="toastContainer"></div>
<script src="/static/js/tkfb-core.js?v=2026031401"></script>
<script src="/static/js/tkfb-core.js?v=2026031601"></script>
<script src="/js/api-base.js?v=2026031401"></script>
<script src="/js/common/utils.js?v=2026031401"></script>
<script src="/js/common/base-state.js?v=2026031401"></script>

View File

@@ -1,4 +1,4 @@
/* ===== 구매신청 페이지 ===== */
/* ===== 소모품 신청 페이지 ===== */
const TKUSER_BASE_URL = location.hostname.includes('technicalkorea.net')
? 'https://tkuser.technicalkorea.net'
: location.protocol + '//' + location.hostname + ':30180';
@@ -247,7 +247,7 @@ function removePhoto() {
document.getElementById('prPhotoStatus').textContent = '';
}
/* ===== 구매신청 제출 ===== */
/* ===== 소모품 신청 제출 ===== */
async function submitPurchaseRequest() {
const itemId = document.getElementById('prItemId').value;
const customItemName = document.getElementById('prCustomItemName').value;
@@ -273,7 +273,7 @@ async function submitPurchaseRequest() {
method: 'POST',
body: JSON.stringify(body)
});
showToast('구매신청이 등록되었습니다.');
showToast('소모품 신청이 등록되었습니다.');
// 폼 초기화
document.getElementById('prItemSearch').value = '';
document.getElementById('prItemId').value = '';
@@ -306,7 +306,7 @@ async function loadRequests() {
function renderRequests() {
const tbody = document.getElementById('prRequestList');
if (!requestsList.length) {
tbody.innerHTML = '<tr><td colspan="7" class="px-4 py-8 text-center text-gray-400">구매신청 내역이 없습니다.</td></tr>';
tbody.innerHTML = '<tr><td colspan="7" class="px-4 py-8 text-center text-gray-400">소모품 신청 내역이 없습니다.</td></tr>';
return;
}
tbody.innerHTML = requestsList.map(r => {
@@ -495,7 +495,7 @@ async function revertRequest(requestId) {
}
async function deleteRequest(requestId) {
if (!confirm('이 구매신청을 삭제하시겠습니까?')) return;
if (!confirm('이 소모품 신청을 삭제하시겠습니까?')) return;
try {
await api(`/purchase-requests/${requestId}`, { method: 'DELETE' });
showToast('삭제되었습니다.');

View File

@@ -119,9 +119,9 @@ const NAV_MENU = [
{ href: '/pages/attendance/checkin.html', icon: 'fa-user-check', label: '출근 체크', key: 'inspection.checkin' },
{ href: '/pages/attendance/work-status.html', icon: 'fa-briefcase', label: '근무 현황', key: 'inspection.work_status' },
]},
{ cat: '구매 관리', items: [
{ href: '/pages/purchase/request.html', icon: 'fa-shopping-cart', label: '구매신청', key: 'purchase.request' },
{ href: '/pages/admin/purchase-analysis.html', icon: 'fa-chart-line', label: '구매 분석', key: 'purchase.analysis', admin: true },
{ cat: '소모품 관리', items: [
{ href: '/pages/purchase/request.html', icon: 'fa-shopping-cart', label: '소모품 신청', key: 'purchase.request' },
{ href: '/pages/admin/purchase-analysis.html', icon: 'fa-chart-line', label: '소모품 분석', key: 'purchase.analysis', admin: true },
]},
{ cat: '근태 관리', items: [
{ href: '/pages/attendance/my-vacation-info.html', icon: 'fa-info-circle', label: '내 연차 정보', key: 'attendance.my_vacation_info' },