UI 수정:화면 수정
This commit is contained in:
@@ -56,6 +56,7 @@ interface CowWithGenes extends Cow {
|
||||
cowShortNo?: string // 개체 요약번호
|
||||
cowReproType?: string // 번식 타입
|
||||
anlysDt?: string // 분석일자
|
||||
unavailableReason?: string // 분석불가 사유 (부불일치, 모불일치, 모이력제부재 등)
|
||||
}
|
||||
|
||||
function MyCowContent() {
|
||||
@@ -266,7 +267,7 @@ function MyCowContent() {
|
||||
// response는 { items: RankingResultItem[], total, criteriaType, timestamp } 형식
|
||||
// items의 각 요소는 { entity, rank, sortValue, grade, details } 형식
|
||||
interface RankingItem {
|
||||
entity: Cow & { genes?: Record<string, number>; calvingCount?: number; bcs?: number; inseminationCount?: number; inbreedingPercent?: number; sireKpn?: string; anlysDt?: string };
|
||||
entity: Cow & { genes?: Record<string, number>; calvingCount?: number; bcs?: number; inseminationCount?: number; inbreedingPercent?: number; sireKpn?: string; anlysDt?: string; unavailableReason?: string };
|
||||
rank: number;
|
||||
sortValue: number;
|
||||
grade: string;
|
||||
@@ -351,6 +352,8 @@ function MyCowContent() {
|
||||
sireKpn: item.entity.sireKpn ?? null,
|
||||
// 분석일자
|
||||
anlysDt: item.entity.anlysDt ?? null,
|
||||
// 분석불가 사유
|
||||
unavailableReason: item.entity.unavailableReason ?? null,
|
||||
//====================================================================================================================
|
||||
// 형질 데이터 (백엔드에서 계산됨, 형질명 → 표준화육종가 매핑)
|
||||
// 백엔드 응답: { traitName: string, traitVal: number, traitEbv: number, traitPercentile: number }
|
||||
@@ -982,7 +985,11 @@ function MyCowContent() {
|
||||
year: '2-digit',
|
||||
month: '2-digit',
|
||||
day: '2-digit'
|
||||
}) : '-'}
|
||||
}) : (
|
||||
<span className={cow.unavailableReason ? 'text-red-500 font-medium' : 'text-slate-400'}>
|
||||
{cow.unavailableReason || '미분석'}
|
||||
</span>
|
||||
)}
|
||||
</td>
|
||||
<td className="cow-table-cell border-r-2 border-r-gray-300 !py-2 !px-0.5">
|
||||
{(cow.genomeScore !== undefined && cow.genomeScore !== null) ? (
|
||||
@@ -1140,9 +1147,15 @@ function MyCowContent() {
|
||||
</Badge>
|
||||
</div>
|
||||
<div className="flex-shrink-0 ml-2">
|
||||
<span className="font-bold text-xl text-primary">
|
||||
{cow.genomeScore !== undefined && cow.genomeScore !== null ? cow.genomeScore.toFixed(2) : '-'}
|
||||
</span>
|
||||
{cow.genomeScore !== undefined && cow.genomeScore !== null ? (
|
||||
<span className="font-bold text-xl text-primary">
|
||||
{cow.genomeScore.toFixed(2)}
|
||||
</span>
|
||||
) : (
|
||||
<Badge className="text-[11px] px-1.5 py-0.5 bg-slate-500 text-white border-0 font-medium">
|
||||
분석불가
|
||||
</Badge>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1179,7 +1192,11 @@ function MyCowContent() {
|
||||
<div className="flex justify-between">
|
||||
<span className="text-muted-foreground">분석일</span>
|
||||
<span className="font-medium">
|
||||
{cow.anlysDt ? new Date(cow.anlysDt).toLocaleDateString('ko-KR', { year: '2-digit', month: 'numeric', day: 'numeric' }) : '-'}
|
||||
{cow.anlysDt ? new Date(cow.anlysDt).toLocaleDateString('ko-KR', { year: '2-digit', month: 'numeric', day: 'numeric' }) : (
|
||||
<span className={cow.unavailableReason ? 'text-red-500' : 'text-slate-400'}>
|
||||
{cow.unavailableReason || '미분석'}
|
||||
</span>
|
||||
)}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user