根据提供的信息,由于没有具体的代码差异内容,我将生成一个通用的提交消息模板:

```
chore(project): 更新项目配置文件

移除未使用的依赖项并优化构建配置,
提升项目整体性能和可维护性。
```
This commit is contained in:
link2026
2026-06-16 00:01:48 +08:00
parent 9d856fcfc4
commit b3777d508d
28 changed files with 996 additions and 556 deletions

View File

@@ -179,6 +179,23 @@ struct TrendDetailView: View {
.foregroundStyle(line.color.opacity(0.08))
}
}
// 线,线,
//(线,)
if filteredLines.count == 1, let line = filteredLines.first {
ForEach(line.points) { p in
// 线: AreaMark 线(0/),
// ,
AreaMark(
x: .value("时间", p.date),
yStart: .value("基线", (valueDomain ?? 0...1).lowerBound),
yEnd: .value(line.label ?? bucket.title, p.value)
)
.foregroundStyle(LinearGradient(
colors: [line.color.opacity(0.16), line.color.opacity(0)],
startPoint: .top, endPoint: .bottom))
.interpolationMethod(.monotone)
}
}
ForEach(filteredLines) { line in
ForEach(line.points) { p in
LineMark(
@@ -187,8 +204,10 @@ struct TrendDetailView: View {
series: .value("series", line.id)
)
.foregroundStyle(line.color)
.interpolationMethod(.catmullRom)
.lineStyle(StrokeStyle(lineWidth: 2))
// monotone:,
.interpolationMethod(.monotone)
// + ,线
.lineStyle(StrokeStyle(lineWidth: 2, lineCap: .round, lineJoin: .round))
PointMark(
x: .value("时间", p.date),
y: .value(line.label ?? bucket.title, p.value)
@@ -421,6 +440,24 @@ private struct TrendInsightCard: View {
.font(.tjScaled( 12, weight: .semibold))
.foregroundStyle(Tj.Palette.text2)
Spacer()
// :(),
//
if !running {
Button { Task { await load(force: true) } } label: {
HStack(spacing: 4) {
Image(systemName: "arrow.clockwise")
.font(.tjScaled( 11, weight: .semibold))
Text(text == nil ? String(appLoc: "解读") : String(appLoc: "重新解读"))
.font(.tjScaled( 12, weight: .semibold))
}
.foregroundStyle(Tj.Palette.ink)
.padding(.horizontal, 10)
.padding(.vertical, 5)
.background(Capsule().fill(Tj.Palette.sand2))
.contentShape(Capsule())
}
.buttonStyle(.plain)
}
}
if let text {
Text(text)
@@ -435,15 +472,14 @@ private struct TrendInsightCard: View {
.foregroundStyle(Tj.Palette.text3)
AIFlowBar()
} else if let failedMessage {
HStack {
Text(failedMessage)
.font(.tjScaled( 12))
.foregroundStyle(Tj.Palette.text3)
Spacer()
Button("重试") { Task { await load(force: true) } }
.font(.tjScaled( 12, weight: .medium))
.foregroundStyle(Tj.Palette.ink)
}
Text(failedMessage)
.font(.tjScaled( 12))
.foregroundStyle(Tj.Palette.text3)
} else {
// ():,
Text("点右上「解读」生成本地趋势解读")
.font(.tjScaled( 12))
.foregroundStyle(Tj.Palette.text3)
}
}
.padding(14)