fix: 处理数据问题

This commit is contained in:
Daniel
2026-03-03 13:03:11 +08:00
parent fa6f7407f0
commit 85dea726e9
9 changed files with 16 additions and 12 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -150,6 +150,10 @@ try {
if (!lossNames.includes('helicopters')) db.exec('ALTER TABLE combat_losses ADD COLUMN helicopters INTEGER NOT NULL DEFAULT 0') if (!lossNames.includes('helicopters')) db.exec('ALTER TABLE combat_losses ADD COLUMN helicopters INTEGER NOT NULL DEFAULT 0')
if (!lossNames.includes('submarines')) db.exec('ALTER TABLE combat_losses ADD COLUMN submarines INTEGER NOT NULL DEFAULT 0') if (!lossNames.includes('submarines')) db.exec('ALTER TABLE combat_losses ADD COLUMN submarines INTEGER NOT NULL DEFAULT 0')
if (!lossNames.includes('tanks')) db.exec('ALTER TABLE combat_losses ADD COLUMN tanks INTEGER NOT NULL DEFAULT 0') if (!lossNames.includes('tanks')) db.exec('ALTER TABLE combat_losses ADD COLUMN tanks INTEGER NOT NULL DEFAULT 0')
if (!lossNames.includes('carriers')) {
db.exec('ALTER TABLE combat_losses ADD COLUMN carriers INTEGER NOT NULL DEFAULT 0')
db.exec('UPDATE combat_losses SET carriers = tanks')
}
if (!lossNames.includes('civilian_ships')) db.exec('ALTER TABLE combat_losses ADD COLUMN civilian_ships INTEGER NOT NULL DEFAULT 0') if (!lossNames.includes('civilian_ships')) db.exec('ALTER TABLE combat_losses ADD COLUMN civilian_ships INTEGER NOT NULL DEFAULT 0')
if (!lossNames.includes('airport_port')) db.exec('ALTER TABLE combat_losses ADD COLUMN airport_port INTEGER NOT NULL DEFAULT 0') if (!lossNames.includes('airport_port')) db.exec('ALTER TABLE combat_losses ADD COLUMN airport_port INTEGER NOT NULL DEFAULT 0')
} catch (_) {} } catch (_) {}

View File

@@ -149,9 +149,9 @@ function seed() {
try { try {
db.exec(` db.exec(`
INSERT OR REPLACE INTO combat_losses (side, bases_destroyed, bases_damaged, personnel_killed, personnel_wounded, civilian_killed, civilian_wounded, aircraft, warships, armor, vehicles, drones, missiles, helicopters, submarines, tanks, civilian_ships, airport_port) VALUES INSERT OR REPLACE INTO combat_losses (side, bases_destroyed, bases_damaged, personnel_killed, personnel_wounded, civilian_killed, civilian_wounded, aircraft, warships, armor, vehicles, drones, missiles, helicopters, submarines, tanks, carriers, civilian_ships, airport_port) VALUES
('us', 0, 27, 127, 384, 18, 52, 2, 0, 0, 8, 4, 12, 1, 0, 0, 0, 0), ('us', 0, 27, 127, 384, 18, 52, 2, 0, 0, 8, 4, 12, 1, 0, 0, 0, 0, 0),
('iran', 3, 8, 2847, 5620, 412, 1203, 24, 12, 18, 42, 28, 156, 8, 2, 0, 0, 0); ('iran', 3, 8, 2847, 5620, 412, 1203, 24, 12, 18, 42, 28, 156, 8, 2, 0, 0, 0, 0);
`) `)
} catch (_) { } catch (_) {
db.exec(` db.exec(`

View File

@@ -24,7 +24,7 @@ function toLosses(row) {
missiles: row.missiles ?? 0, missiles: row.missiles ?? 0,
helicopters: row.helicopters ?? 0, helicopters: row.helicopters ?? 0,
submarines: row.submarines ?? 0, submarines: row.submarines ?? 0,
tanks: row.tanks ?? 0, carriers: row.carriers ?? row.tanks ?? 0,
civilianShips: row.civilian_ships ?? 0, civilianShips: row.civilian_ships ?? 0,
airportPort: row.airport_port ?? 0, airportPort: row.airport_port ?? 0,
} }
@@ -42,7 +42,7 @@ const defaultLosses = {
missiles: 0, missiles: 0,
helicopters: 0, helicopters: 0,
submarines: 0, submarines: 0,
tanks: 0, carriers: 0,
civilianShips: 0, civilianShips: 0,
airportPort: 0, airportPort: 0,
} }

View File

@@ -28,7 +28,7 @@ export function CombatLossesOtherPanel({ usLosses, iranLosses, className = '' }:
{ label: '战舰', icon: Ship, iconColor: 'text-blue-500', us: usLosses.warships, ir: iranLosses.warships }, { label: '战舰', icon: Ship, iconColor: 'text-blue-500', us: usLosses.warships, ir: iranLosses.warships },
{ label: '装甲', icon: Shield, iconColor: 'text-emerald-500', us: usLosses.armor, ir: iranLosses.armor }, { label: '装甲', icon: Shield, iconColor: 'text-emerald-500', us: usLosses.armor, ir: iranLosses.armor },
{ label: '车辆', icon: Car, iconColor: 'text-slate-400', us: usLosses.vehicles, ir: iranLosses.vehicles }, { label: '车辆', icon: Car, iconColor: 'text-slate-400', us: usLosses.vehicles, ir: iranLosses.vehicles },
{ label: '坦克', icon: Layers, iconColor: 'text-amber-600', us: usLosses.tanks ?? 0, ir: iranLosses.tanks ?? 0 }, { label: '航母', icon: Layers, iconColor: 'text-amber-600', us: usLosses.carriers ?? 0, ir: iranLosses.carriers ?? 0 },
{ label: '民船', icon: Sailboat, iconColor: 'text-cyan-400', us: usLosses.civilianShips ?? 0, ir: iranLosses.civilianShips ?? 0 }, { label: '民船', icon: Sailboat, iconColor: 'text-cyan-400', us: usLosses.civilianShips ?? 0, ir: iranLosses.civilianShips ?? 0 },
{ label: '机/港', icon: Warehouse, iconColor: 'text-orange-400', us: usLosses.airportPort ?? 0, ir: iranLosses.airportPort ?? 0 }, { label: '机/港', icon: Warehouse, iconColor: 'text-orange-400', us: usLosses.airportPort ?? 0, ir: iranLosses.airportPort ?? 0 },
{ label: '无人机', icon: Drone, iconColor: 'text-violet-400', us: usLosses.drones ?? 0, ir: iranLosses.drones ?? 0 }, { label: '无人机', icon: Drone, iconColor: 'text-violet-400', us: usLosses.drones ?? 0, ir: iranLosses.drones ?? 0 },

View File

@@ -42,8 +42,8 @@ export interface CombatLosses {
missiles?: number missiles?: number
helicopters?: number helicopters?: number
submarines?: number submarines?: number
/** 坦克 */ /** 航母 */
tanks?: number carriers?: number
/** 民船 */ /** 民船 */
civilianShips?: number civilianShips?: number
/** 机/港(机场/港口) */ /** 机/港(机场/港口) */
@@ -167,7 +167,7 @@ export const INITIAL_MOCK_DATA: MilitarySituation = {
missiles: 12, missiles: 12,
helicopters: 1, helicopters: 1,
submarines: 0, submarines: 0,
tanks: 0, carriers: 0,
civilianShips: 0, civilianShips: 0,
airportPort: 0, airportPort: 0,
}, },
@@ -224,7 +224,7 @@ export const INITIAL_MOCK_DATA: MilitarySituation = {
missiles: 156, missiles: 156,
helicopters: 8, helicopters: 8,
submarines: 2, submarines: 2,
tanks: 0, carriers: 0,
civilianShips: 0, civilianShips: 0,
airportPort: 0, airportPort: 0,
}, },

View File

@@ -80,7 +80,7 @@ export function useReplaySituation(): MilitarySituation {
missiles: lerp(0, usLoss.missiles ?? 0), missiles: lerp(0, usLoss.missiles ?? 0),
helicopters: lerp(0, usLoss.helicopters ?? 0), helicopters: lerp(0, usLoss.helicopters ?? 0),
submarines: lerp(0, usLoss.submarines ?? 0), submarines: lerp(0, usLoss.submarines ?? 0),
tanks: lerp(0, usLoss.tanks ?? 0), carriers: lerp(0, usLoss.carriers ?? 0),
civilianShips: lerp(0, usLoss.civilianShips ?? 0), civilianShips: lerp(0, usLoss.civilianShips ?? 0),
airportPort: lerp(0, usLoss.airportPort ?? 0), airportPort: lerp(0, usLoss.airportPort ?? 0),
} }
@@ -102,7 +102,7 @@ export function useReplaySituation(): MilitarySituation {
missiles: lerp(0, irLoss.missiles ?? 0), missiles: lerp(0, irLoss.missiles ?? 0),
helicopters: lerp(0, irLoss.helicopters ?? 0), helicopters: lerp(0, irLoss.helicopters ?? 0),
submarines: lerp(0, irLoss.submarines ?? 0), submarines: lerp(0, irLoss.submarines ?? 0),
tanks: lerp(0, irLoss.tanks ?? 0), carriers: lerp(0, irLoss.carriers ?? 0),
civilianShips: lerp(0, irLoss.civilianShips ?? 0), civilianShips: lerp(0, irLoss.civilianShips ?? 0),
airportPort: lerp(0, irLoss.airportPort ?? 0), airportPort: lerp(0, irLoss.airportPort ?? 0),
} }