{#if processedData().data.length > 1} {@const { data, categories, maxValue } = processedData()}
每日支出趋势 {descriptionText()}
{timeRangeOptions.find(o => o.value === timeRange)?.label} {#each timeRangeOptions as option} {option.label} {/each}
{#if chartType === 'area'} {#each categories as category, i} {@const isHidden = hiddenCategories.has(category)} {/each} {:else}
总支出
{/if}
handleMouseMove(e, data, maxValue)} onmouseleave={handleMouseLeave} onclick={(e) => handleClick(e, data, maxValue)} > {#each getYTicks(maxValue) as tick} {tick.label} {/each} {#each getXTicks(data) as tick} {tick.label} {/each} {#if chartType === 'area'} {#each [...categories].reverse() as category, i} {@const colorIdx = categories.length - 1 - i} {/each} {:else} {#each getTotalLinePoints(data, maxValue) as point} {/each} {/if} {#if tooltipData} {#each categories as category, i} {#if tooltipData[category] > 0} {/if} {/each} {/if} {#if tooltipData} {@const tooltipLeftPercent = (tooltipX / chartWidth) * 100} {@const adjustedLeft = tooltipLeftPercent > 75 ? tooltipLeftPercent - 25 : tooltipLeftPercent + 2}
{tooltipData.label || tooltipData.date.toLocaleDateString('zh-CN')}
{#each categories as category, i} {#if tooltipData[category] > 0}
{category}
¥{tooltipData[category].toFixed(2)}
{/if} {/each}
合计 ¥{tooltipData.total.toFixed(2)}
{/if}
{#if trendInfo()} {@const info = trendInfo()} {#if info!.change >= 0} +{Math.abs(info!.changePercent).toFixed(1)}% {:else} -{Math.abs(info!.changePercent).toFixed(1)}% {/if} 较前一天 {/if}

点击图表查看当日详情

{/if} {#if selectedDate} {selectedDate.toLocaleDateString('zh-CN', { year: 'numeric', month: 'long', day: 'numeric', weekday: 'long' })} {/if} {#if selectedDateStats} {@const stats = selectedDateStats} 共 {stats!.count} 笔支出,合计 ¥{stats!.total.toFixed(2)} {/if}
{#if selectedDateStats} {@const stats = selectedDateStats}

分类汇总

{#each stats!.categories as cat, i}
{cat.category} ({cat.count}笔)
¥{cat.amount.toFixed(2)}
{/each}

详细记录

{:else}

暂无数据

{/if}