{[
{ title: '轨迹复盘', value: validLocations.length > 0 ? '可播放' : '待查询', detail: '回放路线、速度和里程断点。', action: '播放轨迹', color: validLocations.length > 0 ? 'green' as const : 'orange' as const, disabled: validLocations.length === 0, onClick: () => openQueryTab('location') },
- { title: '历史明细', value: `${(rawFrames.total ?? 0).toLocaleString()} 帧`, detail: '查看轨迹背后的原始接入证据。', action: '查看明细', color: (rawFrames.total ?? 0) > 0 ? 'blue' as const : 'grey' as const, disabled: false, onClick: () => openQueryTab('raw') },
+ { title: '明细证据', value: `${(rawFrames.total ?? 0).toLocaleString()} 帧`, detail: '查看轨迹背后的接入证据。', action: '查看证据', color: (rawFrames.total ?? 0) > 0 ? 'blue' as const : 'grey' as const, disabled: false, onClick: () => openQueryTab('raw') },
{ title: '统计查询', value: formatNumber(mileageDelta, ' km'), detail: '进入同一时间窗的统计查询。', action: '统计复核', color: isFiniteNumber(mileageDelta) ? 'green' as const : 'grey' as const, disabled: !onOpenMileage, onClick: () => onOpenMileage?.({ keyword: currentVehicleKeyword, protocol: currentProtocol, ...(filters.dateFrom ? { dateFrom: filters.dateFrom } : {}), ...(filters.dateTo ? { dateTo: filters.dateTo } : {}) }) },
{ title: '客户导出', value: deliveryState, detail: '复制交付说明或导出 CSV 证据。', action: '复制交付', color: deliveryStateColor, disabled: false, onClick: copyDeliveryPackage }
].map((item) => (
@@ -1543,14 +1543,14 @@ export function History({
{deliveryState}
{amapConfigured ? '高德地图可用' : '坐标预览'}
- 先判断轨迹能否复盘,再进入明细、字段和统计查询
+ 先判断轨迹能否复盘,再进入证据、字段和统计查询
- 客户问某辆车某段时间发生了什么时,先看定位覆盖、时间断点、里程速度和历史明细,避免把内部排查过程当成客户主流程。
+ 客户问某辆车某段时间发生了什么时,先看定位覆盖、时间断点、里程速度和明细证据,避免把内部排查过程当成客户主流程。
} onClick={copyTrajectoryDecision}>复制决策说明
-
+
@@ -1580,20 +1580,20 @@ export function History({
客户查询
- {activeTab === 'location' ? '位置历史' : activeTab === 'raw' ? '历史明细' : '字段明细'}
+ {activeTab === 'location' ? '位置历史' : activeTab === 'raw' ? '明细证据' : '字段裁剪'}
{currentVehicleKeyword || '全部车辆'}
- 面向车辆服务的历史数据检索入口。先按车辆和时间缩小范围,再导出位置、历史明细或字段明细,用于客户问询、BI 核对和问题追溯。
+ 面向车辆服务的历史数据检索入口。先按车辆和时间缩小范围,再导出位置、明细证据或字段裁剪,用于客户问询、BI 核对和问题追溯。
默认查询最近一天,不预置任何车辆;输入 VIN、车牌或手机号后进入单车查询导出。
-
-
+
+
@@ -1607,17 +1607,17 @@ export function History({
onClick: exportLocations
},
{
- label: '历史明细',
+ label: '明细证据',
value: `${(rawFrames.total ?? 0).toLocaleString()} 帧`,
- detail: '保存协议接入后的历史明细,可按车辆和时间追溯。',
- action: '导出明细',
+ detail: '保存接入后的证据明细,可按车辆和时间追溯。',
+ action: '导出证据',
color: 'blue' as const,
onClick: exportRawFrames
},
{
- label: '字段明细',
+ label: '字段裁剪',
value: rawFieldRows.length.toLocaleString(),
- detail: selectedFieldCount > 0 ? `已裁剪 ${selectedFieldCount.toLocaleString()} 个字段。` : '可勾选字段明细或填写字段裁剪后查询。',
+ detail: selectedFieldCount > 0 ? `已裁剪 ${selectedFieldCount.toLocaleString()} 个字段。` : '可勾选字段裁剪或填写字段裁剪后查询。',
action: '导出字段',
color: rawFieldRows.length > 0 ? 'green' as const : 'grey' as const,
onClick: exportRawFields
@@ -1652,7 +1652,7 @@ export function History({
{deliveryScopeText}
- 面向客户交付时,先确认车辆、时间、交付物和质量提示,再导出位置、历史明细或字段明细,避免把内部排查过程直接暴露给客户。
+ 面向客户交付时,先确认车辆、时间、交付物和质量提示,再导出位置、明细证据或字段裁剪,避免把内部排查过程直接暴露给客户。
} onClick={copyDeliveryPackage}>
@@ -1678,20 +1678,20 @@ export function History({
onClick: exportLocations
},
{
- label: '历史明细',
+ label: '明细证据',
value: `${(rawFrames.total ?? 0).toLocaleString()} 帧`,
- detail: '用于追溯数据来自接入协议解析后的真实明细。',
+ detail: '用于追溯数据来自接入协议解析后的真实证据。',
color: (rawFrames.total ?? 0) > 0 ? 'blue' as const : 'grey' as const,
- action: '导出明细',
+ action: '导出证据',
disabled: rawFrames.items.length === 0,
onClick: exportRawFrames
},
{
- label: '字段明细',
+ label: '字段裁剪',
value: `${rawFieldRows.length.toLocaleString()} 个`,
- detail: selectedFieldCount > 0 ? `按 ${selectedFieldCount.toLocaleString()} 个字段裁剪。` : '需要字段级交付时切换字段明细。',
+ detail: selectedFieldCount > 0 ? `按 ${selectedFieldCount.toLocaleString()} 个字段裁剪。` : '需要字段级交付时切换字段裁剪。',
color: rawFieldRows.length > 0 ? 'green' as const : 'orange' as const,
- action: '字段明细',
+ action: '字段配置',
disabled: false,
onClick: () => openQueryTab('fields')
},
@@ -1819,13 +1819,13 @@ export function History({
onSecondary: () => currentVehicleKeyword && onOpenVehicle(currentVehicleKeyword, currentProtocol)
},
{
- title: '历史明细',
+ title: '明细证据',
tag: (rawFrames.total ?? 0) > 0 ? '有明细' : '待加载',
tagColor: (rawFrames.total ?? 0) > 0 ? 'blue' as const : 'orange' as const,
value: `${(rawFrames.total ?? 0).toLocaleString()} 帧`,
- detail: '保留接入侧历史明细,用于解释位置、里程和字段值的来源。',
- primaryText: '看明细',
- secondaryText: '导出明细',
+ detail: '保留接入侧证据,用于解释位置、里程和字段值的来源。',
+ primaryText: '看证据',
+ secondaryText: '导出证据',
disabled: false,
secondaryDisabled: rawFrames.items.length === 0,
onPrimary: () => openQueryTab('raw'),
@@ -1838,8 +1838,8 @@ export function History({
value: `${rawFieldRows.length.toLocaleString()} 个字段`,
detail: selectedFieldCount > 0
? '按配置字段返回明细,减少接口体积并加快复核。'
- : '需要字段级核对时,切到字段明细或填写字段裁剪。',
- primaryText: '字段明细',
+ : '需要字段级核对时,切到字段裁剪或填写字段裁剪。',
+ primaryText: '字段裁剪',
secondaryText: '导出字段',
disabled: false,
secondaryDisabled: rawFieldRows.length === 0,
@@ -1877,7 +1877,7 @@ export function History({
{currentVehicleKeyword || '全部车辆'}
- 轨迹、历史查询导出、历史明细和统计查询按同一车辆范围联动,用于调度复盘、客户问询和断链定位。
+ 轨迹、历史查询导出、明细证据和统计查询按同一车辆范围联动,用于调度复盘、客户问询和断链定位。
} onClick={copyTrajectoryImpactPackage}>复制轨迹影响
@@ -1906,9 +1906,9 @@ export function History({
color: hasTrajectoryAnomaly ? 'orange' as const : 'green' as const
},
{
- label: '历史明细',
+ label: '明细证据',
value: `${(rawFrames.total ?? 0).toLocaleString()} 帧`,
- detail: rawFieldRows.length > 0 ? `${rawFieldRows.length.toLocaleString()} 个字段明细可直接导出。` : '可切换历史明细并请求字段明细。',
+ detail: rawFieldRows.length > 0 ? `${rawFieldRows.length.toLocaleString()} 个字段裁剪可直接导出。` : '可切换明细证据并请求字段裁剪。',
color: (rawFrames.total ?? 0) > 0 ? 'blue' as const : 'grey' as const
},
{
@@ -2116,9 +2116,9 @@ export function History({
))}
- {hasTrajectoryAnomaly ? '建议核对历史明细和当日统计查询' : '轨迹质量可用'}
+ {hasTrajectoryAnomaly ? '建议核对明细证据和当日统计查询' : '轨迹质量可用'}
- {hasTrajectoryAnomaly ? '异常点会影响轨迹回放、定位复盘和区间里程判断,请结合字段明细与统计查询交叉确认。' : '当前页轨迹未发现明显断点、里程回退或速度异常。'}
+ {hasTrajectoryAnomaly ? '异常点会影响轨迹回放、定位复盘和区间里程判断,请结合字段裁剪与统计查询交叉确认。' : '当前页轨迹未发现明显断点、里程回退或速度异常。'}