feat: 다중 도메인 UI 개선 및 컴포넌트 리팩토링
- 게시판, HR, 설정, 차량관리, 건설, 견적 등 전반적 UI 개선 - FormField, TabChip, Select 등 공통 컴포넌트 개선 - 가격배분 edit 페이지 제거 및 상세 페이지 통합 - 체크리스트, 근태, 급여, 권한 관리 등 폼 개선 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -96,11 +96,11 @@ export function ProcessDetail({ process, onProcessUpdate }: ProcessDetailProps)
|
||||
};
|
||||
|
||||
const handleAddStep = () => {
|
||||
router.push(`/ko/master-data/process-management/${process.id}/steps/new`);
|
||||
router.push(`/ko/master-data/process-management/${process.id}/steps/new?mode=new`);
|
||||
};
|
||||
|
||||
const handleStepClick = (stepId: string) => {
|
||||
router.push(`/ko/master-data/process-management/${process.id}/steps/${stepId}`);
|
||||
router.push(`/ko/master-data/process-management/${process.id}/steps/${stepId}?mode=view`);
|
||||
};
|
||||
|
||||
// ===== 드래그&드롭 (HTML5 네이티브) =====
|
||||
|
||||
@@ -246,14 +246,14 @@ export function ProcessForm({ mode, initialData }: ProcessFormProps) {
|
||||
// 단계 상세 이동
|
||||
const handleStepClick = (stepId: string) => {
|
||||
if (isEdit && initialData?.id) {
|
||||
router.push(`/ko/master-data/process-management/${initialData.id}/steps/${stepId}`);
|
||||
router.push(`/ko/master-data/process-management/${initialData.id}/steps/${stepId}?mode=view`);
|
||||
}
|
||||
};
|
||||
|
||||
// 단계 등록 이동
|
||||
const handleAddStep = () => {
|
||||
if (isEdit && initialData?.id) {
|
||||
router.push(`/ko/master-data/process-management/${initialData.id}/steps/new`);
|
||||
router.push(`/ko/master-data/process-management/${initialData.id}/steps/new?mode=new`);
|
||||
} else {
|
||||
toast.info('공정을 먼저 등록한 후 단계를 추가할 수 있습니다.');
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ export function StepDetail({ step, processId }: StepDetailProps) {
|
||||
};
|
||||
|
||||
const handleBack = () => {
|
||||
router.push(`/ko/master-data/process-management/${processId}`);
|
||||
router.push(`/ko/master-data/process-management/${processId}?mode=view`);
|
||||
};
|
||||
|
||||
const handleDelete = async () => {
|
||||
@@ -62,7 +62,7 @@ export function StepDetail({ step, processId }: StepDetailProps) {
|
||||
const result = await deleteProcessStep(processId, step.id);
|
||||
if (result.success) {
|
||||
toast.success('단계가 삭제되었습니다.');
|
||||
router.push(`/ko/master-data/process-management/${processId}`);
|
||||
router.push(`/ko/master-data/process-management/${processId}?mode=view`);
|
||||
} else {
|
||||
toast.error(result.error || '삭제에 실패했습니다.');
|
||||
}
|
||||
|
||||
@@ -145,7 +145,7 @@ export function StepForm({ mode, processId, initialData }: StepFormProps) {
|
||||
const result = await updateProcessStep(processId, initialData.id, stepData);
|
||||
if (result.success) {
|
||||
toast.success('단계가 수정되었습니다.');
|
||||
router.push(`/ko/master-data/process-management/${processId}/steps/${initialData.id}`);
|
||||
router.push(`/ko/master-data/process-management/${processId}/steps/${initialData.id}?mode=view`);
|
||||
return { success: true };
|
||||
} else {
|
||||
toast.error(result.error || '수정에 실패했습니다.');
|
||||
@@ -155,7 +155,7 @@ export function StepForm({ mode, processId, initialData }: StepFormProps) {
|
||||
const result = await createProcessStep(processId, stepData);
|
||||
if (result.success) {
|
||||
toast.success('단계가 등록되었습니다.');
|
||||
router.push(`/ko/master-data/process-management/${processId}`);
|
||||
router.push(`/ko/master-data/process-management/${processId}?mode=view`);
|
||||
return { success: true };
|
||||
} else {
|
||||
toast.error(result.error || '등록에 실패했습니다.');
|
||||
@@ -171,7 +171,7 @@ export function StepForm({ mode, processId, initialData }: StepFormProps) {
|
||||
};
|
||||
|
||||
const handleCancel = () => {
|
||||
router.push(`/ko/master-data/process-management/${processId}`);
|
||||
router.push(`/ko/master-data/process-management/${processId}?mode=view`);
|
||||
};
|
||||
|
||||
const renderFormContent = useCallback(
|
||||
|
||||
Reference in New Issue
Block a user