refactor(WEB): DataTable 개선 및 회계 상세 컴포넌트 리팩토링
- DataTable 컴포넌트 기능 확장 및 코드 개선 - 회계 상세 컴포넌트(Bill/Deposit/Purchase/Sales/Withdrawal) 리팩토링 - 엑셀 다운로드 유틸리티 개선 - 대시보드 및 각종 리스트 페이지 업데이트 - dashboard_type2 페이지 추가 - 프론트엔드 개선 로드맵 문서 추가 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -93,28 +93,29 @@ export function PurchaseDetail({ purchaseId, mode }: PurchaseDetailProps) {
|
||||
// ===== 다이얼로그 상태 =====
|
||||
const [documentModalOpen, setDocumentModalOpen] = useState(false);
|
||||
|
||||
// ===== 거래처 목록 로드 =====
|
||||
// ===== 초기 데이터 로드 (거래처 + 매입 상세 병렬) =====
|
||||
useEffect(() => {
|
||||
async function loadClients() {
|
||||
const result = await getClients({ size: 1000, only_active: true });
|
||||
if (result.success) {
|
||||
setClients(result.data.map(v => ({
|
||||
async function loadInitialData() {
|
||||
const isEditMode = purchaseId && mode !== 'new';
|
||||
setIsLoading(true);
|
||||
|
||||
const [clientsResult, purchaseResult] = await Promise.all([
|
||||
getClients({ size: 1000, only_active: true }),
|
||||
isEditMode ? getPurchaseById(purchaseId) : Promise.resolve(null),
|
||||
]);
|
||||
|
||||
// 거래처 목록
|
||||
if (clientsResult.success) {
|
||||
setClients(clientsResult.data.map(v => ({
|
||||
id: v.id,
|
||||
name: v.vendorName,
|
||||
})));
|
||||
}
|
||||
}
|
||||
loadClients();
|
||||
}, []);
|
||||
|
||||
// ===== 매입 상세 데이터 로드 =====
|
||||
useEffect(() => {
|
||||
async function loadPurchaseDetail() {
|
||||
if (purchaseId && mode !== 'new') {
|
||||
setIsLoading(true);
|
||||
const result = await getPurchaseById(purchaseId);
|
||||
if (result.success && result.data) {
|
||||
const data = result.data;
|
||||
// 매입 상세
|
||||
if (purchaseResult) {
|
||||
if (purchaseResult.success && purchaseResult.data) {
|
||||
const data = purchaseResult.data;
|
||||
setPurchaseNo(data.purchaseNo);
|
||||
setPurchaseDate(data.purchaseDate);
|
||||
setVendorId(data.vendorId);
|
||||
@@ -126,16 +127,13 @@ export function PurchaseDetail({ purchaseId, mode }: PurchaseDetailProps) {
|
||||
setWithdrawalAccount(data.withdrawalAccount);
|
||||
setCreatedAt(data.createdAt);
|
||||
}
|
||||
setIsLoading(false);
|
||||
} else if (isNewMode) {
|
||||
// 신규: 매입번호는 서버에서 자동 생성
|
||||
setPurchaseNo('(자동생성)');
|
||||
setIsLoading(false);
|
||||
} else {
|
||||
setIsLoading(false);
|
||||
}
|
||||
|
||||
setIsLoading(false);
|
||||
}
|
||||
loadPurchaseDetail();
|
||||
loadInitialData();
|
||||
}, [purchaseId, mode, isNewMode]);
|
||||
|
||||
// ===== 합계 계산 =====
|
||||
|
||||
Reference in New Issue
Block a user