필터 최소값 수정
This commit is contained in:
@@ -553,8 +553,8 @@ export default function CowOverviewPage() {
|
||||
>
|
||||
<BarChart3 className="hidden sm:block h-6 w-6 shrink-0" />
|
||||
<span className="font-bold text-sm sm:text-xl">유전체</span>
|
||||
<span className={`text-xs sm:text-sm px-1.5 sm:px-2.5 py-0.5 sm:py-1 rounded font-semibold shrink-0 ${hasGenomeData ? 'bg-green-500 text-white' : 'bg-slate-300 text-slate-600'}`}>
|
||||
{hasGenomeData ? '완료' : '미검사'}
|
||||
<span className={`text-xs sm:text-sm px-1.5 sm:px-2.5 py-0.5 sm:py-1 rounded font-semibold shrink-0 ${hasGenomeData && isValidGenomeAnalysis(genomeRequest?.chipSireName, genomeRequest?.chipDamName, cow?.cowId) ? 'bg-green-500 text-white' : 'bg-slate-300 text-slate-600'}`}>
|
||||
{hasGenomeData && isValidGenomeAnalysis(genomeRequest?.chipSireName, genomeRequest?.chipDamName, cow?.cowId) ? '완료' : '미검사'}
|
||||
</span>
|
||||
</TabsTrigger>
|
||||
<TabsTrigger
|
||||
@@ -563,6 +563,9 @@ export default function CowOverviewPage() {
|
||||
>
|
||||
<Dna className="hidden sm:block h-6 w-6 shrink-0" />
|
||||
<span className="font-bold text-sm sm:text-xl">유전자</span>
|
||||
<span className={`text-xs sm:text-sm px-1.5 sm:px-2.5 py-0.5 sm:py-1 rounded font-semibold shrink-0 ${hasGeneData && isValidGenomeAnalysis(genomeRequest?.chipSireName, genomeRequest?.chipDamName, cow?.cowId) ? 'bg-green-500 text-white' : 'bg-slate-300 text-slate-600'}`}>
|
||||
{hasGeneData && isValidGenomeAnalysis(genomeRequest?.chipSireName, genomeRequest?.chipDamName, cow?.cowId) ? '완료' : '미검사'}
|
||||
</span>
|
||||
</TabsTrigger>
|
||||
<TabsTrigger
|
||||
value="reproduction"
|
||||
@@ -891,26 +894,26 @@ export default function CowOverviewPage() {
|
||||
|
||||
<Card className="bg-white border border-border rounded-xl overflow-hidden">
|
||||
<CardContent className="p-0">
|
||||
<div className="grid grid-cols-3 divide-x divide-border">
|
||||
<div className="p-4">
|
||||
<div className="text-xs font-medium text-muted-foreground mb-1">접수일</div>
|
||||
<div className="text-sm font-semibold text-foreground truncate">
|
||||
<div className="grid grid-cols-1 sm:grid-cols-3 divide-y sm:divide-y-0 sm:divide-x divide-border">
|
||||
<div className="p-3 sm:p-4 flex justify-between sm:block">
|
||||
<div className="text-xs font-medium text-muted-foreground sm:mb-1">접수일</div>
|
||||
<div className="text-sm font-semibold text-foreground">
|
||||
{genomeData[0]?.request?.requestDt
|
||||
? new Date(genomeData[0].request.requestDt).toLocaleDateString('ko-KR')
|
||||
: '-'}
|
||||
</div>
|
||||
</div>
|
||||
<div className="p-4">
|
||||
<div className="text-xs font-medium text-muted-foreground mb-1">분석 완료일</div>
|
||||
<div className="text-sm font-semibold text-foreground truncate">
|
||||
<div className="p-3 sm:p-4 flex justify-between sm:block">
|
||||
<div className="text-xs font-medium text-muted-foreground sm:mb-1">분석 완료일</div>
|
||||
<div className="text-sm font-semibold text-foreground">
|
||||
{genomeData[0]?.request?.chipReportDt
|
||||
? new Date(genomeData[0].request.chipReportDt).toLocaleDateString('ko-KR')
|
||||
: '-'}
|
||||
</div>
|
||||
</div>
|
||||
<div className="p-4">
|
||||
<div className="text-xs font-medium text-muted-foreground mb-1">칩 종류</div>
|
||||
<div className="text-sm font-semibold text-foreground truncate">
|
||||
<div className="p-3 sm:p-4 flex justify-between sm:block">
|
||||
<div className="text-xs font-medium text-muted-foreground sm:mb-1">칩 종류</div>
|
||||
<div className="text-sm font-semibold text-foreground">
|
||||
{genomeData[0]?.request?.chipType || '-'}
|
||||
</div>
|
||||
</div>
|
||||
@@ -1185,6 +1188,7 @@ export default function CowOverviewPage() {
|
||||
</Card>
|
||||
|
||||
{/* 분석불가 메시지 */}
|
||||
<h3 className="text-lg lg:text-xl font-bold text-foreground">유전체 분석 결과</h3>
|
||||
<Card className="bg-slate-100 border border-slate-300 rounded-2xl">
|
||||
<CardContent className="p-8 text-center">
|
||||
<BarChart3 className="h-12 w-12 text-slate-400 mx-auto mb-4" />
|
||||
@@ -1457,6 +1461,9 @@ export default function CowOverviewPage() {
|
||||
{/* 유전자 검색 및 필터 섹션 */}
|
||||
<h3 className="text-lg lg:text-xl font-bold text-foreground">유전자 분석 결과</h3>
|
||||
|
||||
{/* 친자확인 결과에 따른 분기 */}
|
||||
{isValidGenomeAnalysis(genomeRequest?.chipSireName, genomeRequest?.chipDamName, cow?.cowId) ? (
|
||||
<>
|
||||
<div className="flex flex-col gap-3 sm:gap-3 p-3.5 max-sm:p-3 sm:px-4 sm:py-3 rounded-xl bg-slate-50/50 border border-slate-200/50">
|
||||
{/* 검색창 */}
|
||||
<div className="relative w-full">
|
||||
@@ -1829,6 +1836,20 @@ export default function CowOverviewPage() {
|
||||
)
|
||||
})()}
|
||||
</>
|
||||
) : (
|
||||
<Card className="bg-slate-100 border border-slate-300 rounded-2xl">
|
||||
<CardContent className="p-8 text-center">
|
||||
<Dna className="h-12 w-12 text-slate-400 mx-auto mb-4" />
|
||||
<h3 className="text-lg font-semibold text-slate-700 mb-2">
|
||||
{getInvalidReason(genomeRequest?.chipSireName, genomeRequest?.chipDamName, cow?.cowId) || '유전자 분석 불가'}
|
||||
</h3>
|
||||
<p className="text-sm text-slate-500">
|
||||
{getInvalidMessage(genomeRequest?.chipSireName, genomeRequest?.chipDamName, cow?.cowId).replace('유전체', '유전자')}
|
||||
</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
)}
|
||||
</>
|
||||
) : (
|
||||
<Card className="bg-slate-50 border border-border rounded-2xl">
|
||||
<CardContent className="p-8 text-center">
|
||||
|
||||
@@ -765,7 +765,7 @@ function MyCowContent() {
|
||||
value={sortOrder}
|
||||
onValueChange={(value) => setSortOrder(value as 'asc' | 'desc')}
|
||||
>
|
||||
<SelectTrigger className="w-full sm:w-[100px] h-10 sm:h-9 text-sm border-slate-200 bg-white">
|
||||
<SelectTrigger className="w-full sm:w-[120px] h-10 sm:h-9 text-sm border-slate-200 bg-white">
|
||||
<SelectValue />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
|
||||
@@ -141,7 +141,7 @@ function SortableTraitItem({
|
||||
size="sm"
|
||||
className="h-6 w-6 p-0"
|
||||
onClick={() => onWeightChange(-1)}
|
||||
disabled={weight <= 0}
|
||||
disabled={weight <= 1}
|
||||
>
|
||||
-
|
||||
</Button>
|
||||
@@ -396,11 +396,11 @@ export function GlobalFilterDialog({ externalOpen, onExternalOpenChange, geneCou
|
||||
})
|
||||
}
|
||||
|
||||
// 가중치 변경
|
||||
// 가중치 변경 (1~10 범위)
|
||||
const updateTraitWeight = (traitName: string, delta: number) => {
|
||||
setLocalFilters(prev => {
|
||||
const current = prev.traitWeights[traitName as TraitName] || 0
|
||||
const newValue = Math.min(10, Math.max(0, current + delta))
|
||||
const current = prev.traitWeights[traitName as TraitName] || 1
|
||||
const newValue = Math.min(10, Math.max(1, current + delta))
|
||||
return {
|
||||
...prev,
|
||||
traitWeights: { ...prev.traitWeights, [traitName]: newValue }
|
||||
@@ -991,7 +991,7 @@ export function GlobalFilterDialog({ externalOpen, onExternalOpenChange, geneCou
|
||||
e.stopPropagation()
|
||||
updateTraitWeight(trait, -1)
|
||||
}}
|
||||
disabled={(localFilters.traitWeights[trait as TraitName] || 0) <= 0}
|
||||
disabled={(localFilters.traitWeights[trait as TraitName] || 1) <= 1}
|
||||
>
|
||||
-
|
||||
</Button>
|
||||
|
||||
@@ -131,16 +131,16 @@ export const DEFAULT_FILTER_SETTINGS: GlobalFilterSettings = {
|
||||
selectedTraits: ["도체중", "등심단면적", "등지방두께", "근내지방도", "체장", "체고", "흉위"],
|
||||
pinnedTraits: [],
|
||||
traitWeights: {
|
||||
// 성장형질 (점수: 0 ~ 10)
|
||||
// 성장형질 (점수: 1 ~ 10, 미선택 시 0)
|
||||
"12개월령체중": 0,
|
||||
|
||||
// 경제형질 (점수: 0 ~ 10)
|
||||
// 경제형질 (점수: 1 ~ 10, 미선택 시 0)
|
||||
도체중: 1,
|
||||
등심단면적: 1,
|
||||
등지방두께: 1,
|
||||
근내지방도: 1,
|
||||
|
||||
// 체형형질 (점수: 0 ~ 10) - DB 형질명과 일치
|
||||
// 체형형질 (점수: 1 ~ 10, 미선택 시 0) - DB 형질명과 일치
|
||||
체고: 1,
|
||||
십자: 0,
|
||||
체장: 1,
|
||||
@@ -152,7 +152,7 @@ export const DEFAULT_FILTER_SETTINGS: GlobalFilterSettings = {
|
||||
곤폭: 0,
|
||||
흉위: 1,
|
||||
|
||||
// 부위별무게 (점수: 0 ~ 10) - DB 형질명과 일치
|
||||
// 부위별무게 (점수: 1 ~ 10, 미선택 시 0) - DB 형질명과 일치
|
||||
안심weight: 0,
|
||||
등심weight: 0,
|
||||
채끝weight: 0,
|
||||
@@ -164,7 +164,7 @@ export const DEFAULT_FILTER_SETTINGS: GlobalFilterSettings = {
|
||||
양지weight: 0,
|
||||
갈비weight: 0,
|
||||
|
||||
// 부위별비율 (점수: 0 ~ 10) - DB 형질명과 일치
|
||||
// 부위별비율 (점수: 1 ~ 10, 미선택 시 0) - DB 형질명과 일치
|
||||
안심rate: 0,
|
||||
등심rate: 0,
|
||||
채끝rate: 0,
|
||||
|
||||
Reference in New Issue
Block a user