refactor: reduce duplicate ticket side metadata
This commit is contained in:
@@ -1,59 +1,22 @@
|
|||||||
import { AppField } from '@/components/app/AppField'
|
import { AppField } from '@/components/app/AppField'
|
||||||
import { AppPriorityBadge } from '@/components/app/AppPriorityBadge'
|
|
||||||
import { AppStatusBadge } from '@/components/app/AppStatusBadge'
|
|
||||||
import { Badge } from '@/components/ui/badge'
|
import { Badge } from '@/components/ui/badge'
|
||||||
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'
|
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'
|
||||||
import { Separator } from '@/components/ui/separator'
|
import { Separator } from '@/components/ui/separator'
|
||||||
|
|
||||||
import { getTicketCategoryLabel } from './ticketCategories'
|
|
||||||
import type { Ticket } from './types'
|
import type { Ticket } from './types'
|
||||||
|
|
||||||
type TicketMetaPanelProps = {
|
type TicketMetaPanelProps = {
|
||||||
ticket: Ticket
|
ticket: Ticket
|
||||||
}
|
}
|
||||||
|
|
||||||
function displayUser(user: Ticket['assignee']) {
|
|
||||||
return user?.display_name || user?.username || '未设置'
|
|
||||||
}
|
|
||||||
|
|
||||||
export function TicketMetaPanel({ ticket }: TicketMetaPanelProps) {
|
export function TicketMetaPanel({ ticket }: TicketMetaPanelProps) {
|
||||||
return (
|
return (
|
||||||
<Card>
|
<Card>
|
||||||
<CardHeader>
|
<CardHeader>
|
||||||
<CardTitle>工单属性</CardTitle>
|
<CardTitle>处理信息</CardTitle>
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
<CardContent>
|
<CardContent>
|
||||||
<div className="grid gap-3">
|
<div className="grid gap-3">
|
||||||
<AppField label="当前状态">
|
|
||||||
<AppStatusBadge status={ticket.status} />
|
|
||||||
</AppField>
|
|
||||||
<AppField label="优先级">
|
|
||||||
<AppPriorityBadge priority={ticket.priority} />
|
|
||||||
</AppField>
|
|
||||||
<AppField label="问题分类">
|
|
||||||
<span className="text-sm text-foreground">{getTicketCategoryLabel(ticket.category_code)}</span>
|
|
||||||
</AppField>
|
|
||||||
<Separator />
|
|
||||||
<AppField label="提出人">
|
|
||||||
<span className="text-sm text-foreground">{ticket.submitter_name || '未填写'}</span>
|
|
||||||
</AppField>
|
|
||||||
<AppField label="提出机构">
|
|
||||||
<span className="text-sm text-foreground">{ticket.submitter_org || '未填写'}</span>
|
|
||||||
</AppField>
|
|
||||||
<AppField label="问题对象">
|
|
||||||
<span className="text-sm text-foreground">{ticket.problem_object || '未填写'}</span>
|
|
||||||
</AppField>
|
|
||||||
<Separator />
|
|
||||||
<AppField label="处理人">
|
|
||||||
<span className="text-sm text-foreground">{displayUser(ticket.assignee)}</span>
|
|
||||||
</AppField>
|
|
||||||
<AppField label="请求人">
|
|
||||||
<span className="text-sm text-foreground">{displayUser(ticket.requester)}</span>
|
|
||||||
</AppField>
|
|
||||||
<Separator />
|
|
||||||
<AppField label="关联系统">
|
|
||||||
<span className="text-sm text-foreground">{ticket.related_system || '未填写'}</span>
|
|
||||||
</AppField>
|
|
||||||
<AppField label="运行环境">
|
<AppField label="运行环境">
|
||||||
<span className="text-sm text-foreground">{ticket.environment || '未填写'}</span>
|
<span className="text-sm text-foreground">{ticket.environment || '未填写'}</span>
|
||||||
</AppField>
|
</AppField>
|
||||||
|
|||||||
Reference in New Issue
Block a user