feat: new file

This commit is contained in:
Daniel
2026-03-01 17:21:15 +08:00
commit d705fd6c83
28 changed files with 5877 additions and 0 deletions

205
src/data/mockData.ts Normal file
View File

@@ -0,0 +1,205 @@
// TypeScript interfaces for military situation data
export interface ForceAsset {
id: string
name: string
type: string
count: number
status: 'active' | 'standby' | 'alert'
location?: { lat: number; lng: number }
}
export interface ForceSummary {
totalAssets: number
personnel: number
navalShips: number
aircraft: number
groundUnits: number
uav: number
missileConsumed: number
missileStock: number
}
export interface PowerIndex {
overall: number
militaryStrength: number
economicPower: number
geopoliticalInfluence: number
}
export interface CombatLosses {
bases: { destroyed: number; damaged: number }
personnelCasualties: { killed: number; wounded: number }
aircraft: number
warships: number
armor: number
vehicles: number
}
export interface SituationUpdate {
id: string
timestamp: string
category: 'deployment' | 'alert' | 'intel' | 'diplomatic' | 'other'
summary: string
severity: 'low' | 'medium' | 'high' | 'critical'
}
export interface MilitarySituation {
lastUpdated: string
usForces: {
summary: ForceSummary
powerIndex: PowerIndex
assets: ForceAsset[]
keyLocations: { name: string; lat: number; lng: number }[]
combatLosses: CombatLosses
/** 华尔街财团投入趋势 { time: ISO string, value: 0-100 } */
wallStreetInvestmentTrend: { time: string; value: number }[]
}
iranForces: {
summary: ForceSummary
powerIndex: PowerIndex
assets: ForceAsset[]
keyLocations: { name: string; lat: number; lng: number }[]
combatLosses: CombatLosses
/** 反击情绪指标 0-100 */
retaliationSentiment: number
/** 历史情绪曲线 { time: ISO string, value: 0-100 } */
retaliationSentimentHistory: { time: string; value: number }[]
}
recentUpdates: SituationUpdate[]
}
export const INITIAL_MOCK_DATA: MilitarySituation = {
lastUpdated: new Date().toISOString(),
usForces: {
summary: {
totalAssets: 1247,
personnel: 185000,
navalShips: 285,
aircraft: 1850,
groundUnits: 18,
uav: 420,
missileConsumed: 156,
missileStock: 2840,
},
powerIndex: {
overall: 94,
militaryStrength: 96,
economicPower: 98,
geopoliticalInfluence: 97,
},
assets: [
{ id: 'us-1', name: '艾森豪威尔号航母', type: '航母', count: 1, status: 'active' },
{ id: 'us-2', name: '阿利·伯克级驱逐舰', type: '驱逐舰', count: 4, status: 'active' },
{ id: 'us-3', name: 'F/A-18 中队', type: '战机', count: 48, status: 'active' },
{ id: 'us-4', name: 'F-35 中队', type: '战机', count: 24, status: 'standby' },
{ id: 'us-5', name: 'B-1B 轰炸机', type: '轰炸机', count: 4, status: 'alert' },
{ id: 'us-6', name: '爱国者防空系统', type: '防空', count: 3, status: 'active' },
{ id: 'us-7', name: 'MQ-9 死神', type: '无人机', count: 28, status: 'active' },
{ id: 'us-8', name: 'MQ-1C 灰鹰', type: '无人机', count: 45, status: 'active' },
],
keyLocations: [
{ name: '第五舰队司令部', lat: 26.2285, lng: 50.586 },
{ name: '乌代德空军基地', lat: 25.1173, lng: 51.3153 },
{ name: '艾森豪威尔号航母', lat: 26.5, lng: 52.0 },
],
combatLosses: {
bases: { destroyed: 0, damaged: 2 },
personnelCasualties: { killed: 127, wounded: 384 },
},
wallStreetInvestmentTrend: [
{ time: '2025-03-01T00:00:00', value: 82 },
{ time: '2025-03-01T03:00:00', value: 85 },
{ time: '2025-03-01T06:00:00', value: 88 },
{ time: '2025-03-01T09:00:00', value: 90 },
{ time: '2025-03-01T12:00:00', value: 92 },
{ time: '2025-03-01T15:00:00', value: 94 },
{ time: '2025-03-01T18:00:00', value: 95 },
{ time: '2025-03-01T21:00:00', value: 96 },
{ time: '2025-03-01T23:00:00', value: 98 },
],
},
iranForces: {
summary: {
totalAssets: 8523,
personnel: 2350000,
navalShips: 4250,
aircraft: 8200,
groundUnits: 350,
uav: 1850,
missileConsumed: 3420,
missileStock: 15600,
},
powerIndex: {
overall: 42,
militaryStrength: 58,
economicPower: 28,
geopoliticalInfluence: 35,
},
assets: [
{ id: 'ir-1', name: '护卫舰', type: '水面舰艇', count: 6, status: 'active' },
{ id: 'ir-2', name: '快攻艇', type: '海军', count: 100, status: 'active' },
{ id: 'ir-3', name: 'F-4 Phantom', type: '战机', count: 62, status: 'standby' },
{ id: 'ir-4', name: 'F-14 Tomcat', type: '战机', count: 24, status: 'active' },
{ id: 'ir-5', name: '弹道导弹', type: '导弹', count: 2000, status: 'alert' },
{ id: 'ir-6', name: '伊斯兰革命卫队海军', type: '准军事', count: 25000, status: 'active' },
{ id: 'ir-7', name: '沙希德-136', type: '无人机', count: 1200, status: 'alert' },
{ id: 'ir-8', name: '穆哈杰-6', type: '无人机', count: 280, status: 'active' },
],
keyLocations: [
{ name: '阿巴斯港', lat: 27.1832, lng: 56.2666 },
{ name: '德黑兰', lat: 35.6892, lng: 51.3890 },
{ name: '布什尔', lat: 28.9681, lng: 50.8380 },
],
combatLosses: {
bases: { destroyed: 3, damaged: 8 },
personnelCasualties: { killed: 2847, wounded: 5620 },
aircraft: 24,
warships: 12,
armor: 18,
vehicles: 42,
},
retaliationSentiment: 78,
retaliationSentimentHistory: [
{ time: '2025-03-01T00:00:00', value: 42 },
{ time: '2025-03-01T03:00:00', value: 48 },
{ time: '2025-03-01T06:00:00', value: 55 },
{ time: '2025-03-01T09:00:00', value: 61 },
{ time: '2025-03-01T12:00:00', value: 58 },
{ time: '2025-03-01T15:00:00', value: 65 },
{ time: '2025-03-01T18:00:00', value: 72 },
{ time: '2025-03-01T21:00:00', value: 76 },
{ time: '2025-03-01T23:00:00', value: 78 },
],
},
recentUpdates: [
{
id: 'u1',
timestamp: new Date(Date.now() - 3600000).toISOString(),
category: 'deployment',
summary: '美军航母打击群在阿拉伯海重新部署',
severity: 'medium',
},
{
id: 'u2',
timestamp: new Date(Date.now() - 7200000).toISOString(),
category: 'alert',
summary: '霍尔木兹海峡海军巡逻活动加强',
severity: 'high',
},
{
id: 'u3',
timestamp: new Date(Date.now() - 10800000).toISOString(),
category: 'intel',
summary: '卫星图像显示阿巴斯港活动增加',
severity: 'low',
},
{
id: 'u4',
timestamp: new Date(Date.now() - 14400000).toISOString(),
category: 'diplomatic',
summary: '阿曼间接谈判进行中',
severity: 'low',
},
],
}