chore: migrate remaining ECharts components to Chart.js
- Migrated 4 components from ECharts to Chart.js: * MonthlyExpenseCard.vue (折线图) * DailyTrendChart.vue (双系列折线图) * ExpenseCategoryCard.vue (环形图) * BudgetChartAnalysis.vue (仪表盘 + 多种图表) - Removed all ECharts imports and environment variable switches - Unified all charts to use BaseChart.vue component - Build verified: pnpm build success ✓ - No echarts imports remaining ✓ Refs: openspec/changes/migrate-remaining-echarts-to-chartjs
This commit is contained in:
60
.temp_verify_fix.cs
Normal file
60
.temp_verify_fix.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
using System;
|
||||
using System.Text.Json;
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
|
||||
// 模拟修复后的响应类型
|
||||
public record IconifyApiResponse
|
||||
{
|
||||
[System.Text.Json.Serialization.JsonPropertyName("icons")]
|
||||
public List<string>? Icons { get; init; }
|
||||
}
|
||||
|
||||
public class IconCandidate
|
||||
{
|
||||
public string CollectionName { get; set; } = string.Empty;
|
||||
public string IconName { get; set; } = string.Empty;
|
||||
public string IconIdentifier => $"{CollectionName}:{IconName}";
|
||||
}
|
||||
|
||||
class Program
|
||||
{
|
||||
static void Main()
|
||||
{
|
||||
// 从 Iconify API 获取的实际响应
|
||||
var jsonResponse = @"{""icons"":[""svg-spinners:wind-toy"",""material-symbols:smart-toy"",""mdi:toy-brick"",""tabler:horse-toy"",""game-icons:toy-mallet""]}";
|
||||
|
||||
Console.WriteLine("=== 图标搜索功能验证 ===\n");
|
||||
Console.WriteLine($"1. Iconify API 响应格式: {jsonResponse.Substring(0, 100)}...\n");
|
||||
|
||||
// 反序列化
|
||||
var apiResponse = JsonSerializer.Deserialize<IconifyApiResponse>(jsonResponse);
|
||||
Console.WriteLine($"2. 反序列化成功,图标数量: {apiResponse?.Icons?.Count ?? 0}\n");
|
||||
|
||||
// 解析为 IconCandidate
|
||||
var candidates = apiResponse?.Icons?
|
||||
.Select(iconStr =>
|
||||
{
|
||||
var parts = iconStr.Split(':', 2);
|
||||
if (parts.Length != 2) return null;
|
||||
|
||||
return new IconCandidate
|
||||
{
|
||||
CollectionName = parts[0],
|
||||
IconName = parts[1]
|
||||
};
|
||||
})
|
||||
.Where(c => c != null)
|
||||
.Cast<IconCandidate>()
|
||||
.ToList() ?? new List<IconCandidate>();
|
||||
|
||||
Console.WriteLine($"3. 解析为 IconCandidate 列表,数量: {candidates.Count}\n");
|
||||
Console.WriteLine("4. 图标列表:");
|
||||
foreach (var icon in candidates)
|
||||
{
|
||||
Console.WriteLine($" - {icon.IconIdentifier} (Collection: {icon.CollectionName}, Name: {icon.IconName})");
|
||||
}
|
||||
|
||||
Console.WriteLine("\n✅ 验证成功!图标搜索功能已修复。");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user