feat(platform): add alert evidence package
This commit is contained in:
@@ -341,6 +341,35 @@ function priorityIssueTicketText(row: PriorityIssueRow) {
|
||||
].join('\n');
|
||||
}
|
||||
|
||||
function priorityIssueEvidencePackageText(row: PriorityIssueRow) {
|
||||
const lookup = qualityIssueVehicleLookup(row);
|
||||
const dateFrom = issueEvidenceDate(row.lastSeen);
|
||||
const dateTo = nextDate(dateFrom);
|
||||
const evidenceFilters = {
|
||||
...(dateFrom ? { dateFrom } : {}),
|
||||
...(dateTo ? { dateTo } : {})
|
||||
};
|
||||
return [
|
||||
'【告警证据包】',
|
||||
`优先级:${row.priority}`,
|
||||
`车辆:${row.vehicleLabel}`,
|
||||
`数据来源:${qualityProtocolLabel(row.protocol)}`,
|
||||
`来源地址:${row.sourceEndpoint || '-'}`,
|
||||
`问题:${qualityIssueLabel(row.issueType)}`,
|
||||
`建议动作:${row.actionLabel}`,
|
||||
`SLA:${row.sla}`,
|
||||
`最后时间:${row.lastSeen || '-'}`,
|
||||
`详情:${row.detail || '-'}`,
|
||||
`验收标准:${acceptanceCriteria(row)}`,
|
||||
`实时定位:${appURL(buildAppHash({ page: 'realtime', keyword: lookup.key, protocol: row.protocol }))}`,
|
||||
`轨迹回放:${appURL(buildAppHash({ page: 'history', keyword: lookup.key, protocol: row.protocol, filters: evidenceFilters }))}`,
|
||||
`RAW证据:${appURL(buildAppHash({ page: 'history-query', keyword: lookup.key, protocol: row.protocol, filters: { tab: 'raw', ...evidenceFilters, includeFields: 'true' } }))}`,
|
||||
`里程复核:${appURL(buildAppHash({ page: 'mileage', keyword: lookup.key, protocol: row.protocol, filters: evidenceFilters }))}`,
|
||||
`车辆服务:${appURL(buildAppHash({ page: 'detail', keyword: lookup.key, protocol: row.protocol }))}`,
|
||||
`告警筛选:${qualityShareURL()}`
|
||||
].join('\n');
|
||||
}
|
||||
|
||||
function priorityDigestPolicyLines(policies?: QualityNotificationPolicy[]) {
|
||||
const policy = policies?.find((item) => item.name.startsWith('P0')) ?? policies?.[0];
|
||||
if (!policy) return [];
|
||||
@@ -762,6 +791,7 @@ export function Quality({
|
||||
<Button size="small" disabled={!lookup.key || !onOpenHistory} onClick={() => openIssueHistory(row)}>轨迹证据</Button>
|
||||
<Button size="small" disabled={!lookup.key || !onOpenRaw} onClick={() => openIssueRaw(row)}>RAW证据</Button>
|
||||
<Button size="small" onClick={() => copyText(row.notificationText || priorityIssueNotificationText(row), '告警通知')}>复制通知</Button>
|
||||
<Button size="small" onClick={() => copyText(priorityIssueEvidencePackageText(row), '告警证据包')}>复制证据包</Button>
|
||||
<Button size="small" onClick={() => copyText(priorityIssueTicketText(row), '处置工单')}>复制工单</Button>
|
||||
<Button size="small" disabled={!lookup.key} onClick={() => onOpenVehicle(lookup.key, row.protocol)}>进入车辆服务</Button>
|
||||
</Space>
|
||||
@@ -971,6 +1001,7 @@ export function Quality({
|
||||
<Button size="small" disabled={!lookup.key || !onOpenRaw} onClick={() => openIssueRaw(row)}>核对 RAW</Button>
|
||||
<Button size="small" disabled={!lookup.key || !onOpenMileage} onClick={() => openIssueMileage(row)}>核对里程</Button>
|
||||
<Button size="small" onClick={() => copyText(priorityIssueNotificationText(priorityIssueFromRow(row)), '告警通知')}>复制通知</Button>
|
||||
<Button size="small" onClick={() => copyText(priorityIssueEvidencePackageText(priorityIssueFromRow(row)), '告警证据包')}>复制证据包</Button>
|
||||
<Button size="small" disabled={!lookup.key} onClick={() => onOpenVehicle(lookup.key, row.protocol)}>
|
||||
{lookup.label}
|
||||
</Button>
|
||||
|
||||
Reference in New Issue
Block a user