refactor(WEB): 회계/견적/설정/생산 등 전반적 코드 개선 및 공통화 2차
- 회계 모듈 전면 개선: 청구/입금/출금/매입/매출/세금계산서/일반전표/거래처원장 등 - 견적 모듈 금액 포맷/할인/수식/미리보기 등 코드 정리 - 설정 모듈: 계정관리/직급/직책/권한 상세 간소화 - 생산 모듈: 작업지시서/작업자화면/검수 문서 코드 정리 - UniversalListPage 엑셀 다운로드 및 필터 기능 확장 - 대시보드/게시판/수주 등 날짜 유틸 공통화 적용 - claudedocs 문서 인덱스 업데이트 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -23,6 +23,7 @@ import {
|
||||
USER_ROLE_LABELS,
|
||||
USER_ACCOUNT_STATUS_LABELS,
|
||||
} from './types';
|
||||
import { formatNumber } from '@/lib/utils/amount';
|
||||
|
||||
interface EmployeeDetailProps {
|
||||
employee: Employee;
|
||||
@@ -87,7 +88,7 @@ export function EmployeeDetail({ employee, onEdit, onDelete }: EmployeeDetailPro
|
||||
{employee.salary && (
|
||||
<div>
|
||||
<dt className="text-sm font-medium text-muted-foreground">연봉</dt>
|
||||
<dd className="text-sm mt-1">{employee.salary.toLocaleString()}원</dd>
|
||||
<dd className="text-sm mt-1">{formatNumber(employee.salary)}원</dd>
|
||||
</div>
|
||||
)}
|
||||
{employee.bankAccount && (
|
||||
|
||||
@@ -255,17 +255,17 @@ export function EmployeeManagement() {
|
||||
// 테이블 컬럼 정의
|
||||
const tableColumns = useMemo(() => [
|
||||
{ key: 'rowNumber', label: '번호', className: 'w-[60px] text-center' },
|
||||
{ key: 'employeeCode', label: '사원코드', className: 'min-w-[100px]' },
|
||||
{ key: 'department', label: '부서', className: 'min-w-[100px]' },
|
||||
{ key: 'position', label: '직책', className: 'min-w-[100px]' },
|
||||
{ key: 'name', label: '이름', className: 'min-w-[80px]' },
|
||||
{ key: 'rank', label: '직급', className: 'min-w-[80px]' },
|
||||
{ key: 'phone', label: '휴대폰', className: 'min-w-[120px]' },
|
||||
{ key: 'email', label: '이메일', className: 'min-w-[150px]' },
|
||||
{ key: 'hireDate', label: '입사일', className: 'min-w-[100px]' },
|
||||
{ key: 'status', label: '상태', className: 'min-w-[80px]' },
|
||||
{ key: 'userId', label: '사용자아이디', className: 'min-w-[100px]' },
|
||||
{ key: 'userRole', label: '권한', className: 'min-w-[80px]' },
|
||||
{ key: 'employeeCode', label: '사원코드', className: 'min-w-[100px]', sortable: true },
|
||||
{ key: 'department', label: '부서', className: 'min-w-[100px]', sortable: true },
|
||||
{ key: 'position', label: '직책', className: 'min-w-[100px]', sortable: true },
|
||||
{ key: 'name', label: '이름', className: 'min-w-[80px]', sortable: true },
|
||||
{ key: 'rank', label: '직급', className: 'min-w-[80px]', sortable: true },
|
||||
{ key: 'phone', label: '휴대폰', className: 'min-w-[120px]', sortable: true },
|
||||
{ key: 'email', label: '이메일', className: 'min-w-[150px]', sortable: true },
|
||||
{ key: 'hireDate', label: '입사일', className: 'min-w-[100px]', sortable: true },
|
||||
{ key: 'status', label: '상태', className: 'min-w-[80px]', sortable: true },
|
||||
{ key: 'userId', label: '사용자아이디', className: 'min-w-[100px]', sortable: true },
|
||||
{ key: 'userRole', label: '권한', className: 'min-w-[80px]', sortable: true },
|
||||
{ key: 'actions', label: '작업', className: 'w-[100px] text-right' },
|
||||
], []);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user