fix(eslint): reduce warnings in GitHub Actions deployment

- Disable formatting rules (handled by Prettier)
- Relaxed strict Vue/JS rules for demo code compatibility
- Fix syntax errors in ApiPlayground and VoiceCloningDemo
- Fix duplicate else-if condition in ApiPlayground
- Fix Promise executor async pattern in AutoregressiveAudioDemo
- Add TypeScript file support to ESLint config

Warnings reduced from 295 to 251 problems.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
sanbuphy
2026-02-18 17:38:10 +08:00
parent 8b01686e68
commit 0eba9e87e9
456 changed files with 28450 additions and 9677 deletions
@@ -5,8 +5,12 @@
<template>
<div class="real-world-case-demo">
<div class="header">
<div class="title">实战案例</div>
<div class="subtitle">真实场景下的埋点设计最佳实践</div>
<div class="title">
实战案例
</div>
<div class="subtitle">
真实场景下的埋点设计最佳实践
</div>
</div>
<div class="case-tabs">
@@ -23,17 +27,28 @@
<div class="case-content">
<!-- 电商系统 -->
<div v-if="selectedCase === 'ecommerce'" class="case-detail">
<div
v-if="selectedCase === 'ecommerce'"
class="case-detail"
>
<div class="case-intro">
<div class="intro-icon">🛒</div>
<div class="intro-icon">
🛒
</div>
<div class="intro-text">
<div class="intro-title">电商系统埋点设计</div>
<div class="intro-desc">分析购买转化漏斗优化用户体验</div>
<div class="intro-title">
电商系统埋点设计
</div>
<div class="intro-desc">
分析购买转化漏斗优化用户体验
</div>
</div>
</div>
<div class="funnel-visualization">
<div class="funnel-title">购买转化漏斗</div>
<div class="funnel-title">
购买转化漏斗
</div>
<div class="funnel-steps">
<div
v-for="(step, index) in ecommerceFunnel"
@@ -41,15 +56,23 @@
class="funnel-step"
:style="{ width: step.width }"
>
<div class="step-name">{{ step.name }}</div>
<div class="step-count">{{ formatNumber(step.count) }}</div>
<div class="step-rate">{{ step.rate }}%</div>
<div class="step-name">
{{ step.name }}
</div>
<div class="step-count">
{{ formatNumber(step.count) }}
</div>
<div class="step-rate">
{{ step.rate }}%
</div>
</div>
</div>
</div>
<div class="tracking-events">
<div class="events-title">关键埋点</div>
<div class="events-title">
关键埋点
</div>
<div class="events-list">
<div
v-for="(event, index) in ecommerceEvents"
@@ -60,7 +83,9 @@
<code>{{ event.name }}</code>
</div>
<div class="event-details">
<div class="event-trigger">{{ event.trigger }}</div>
<div class="event-trigger">
{{ event.trigger }}
</div>
<div class="event-props">
<span
v-for="(prop, i) in event.props"
@@ -77,55 +102,74 @@
</div>
<!-- 推荐系统 -->
<div v-if="selectedCase === 'recommendation'" class="case-detail">
<div
v-if="selectedCase === 'recommendation'"
class="case-detail"
>
<div class="case-intro">
<div class="intro-icon">🎯</div>
<div class="intro-icon">
🎯
</div>
<div class="intro-text">
<div class="intro-title">内容推荐埋点设计</div>
<div class="intro-desc">优化推荐算法提高点击率</div>
<div class="intro-title">
内容推荐埋点设计
</div>
<div class="intro-desc">
优化推荐算法提高点击率
</div>
</div>
</div>
<div class="ab-test-demo">
<div class="ab-title">A/B 测试效果对比</div>
<div class="ab-title">
A/B 测试效果对比
</div>
<div class="ab-metrics">
<div class="metric-group">
<div class="metric-label">算法 A</div>
<div class="metric-value">{{ abTest.algorithmA }}%</div>
<div class="metric-label">
算法 A
</div>
<div class="metric-value">
{{ abTest.algorithmA }}%
</div>
<div class="metric-bar">
<div
class="bar-fill"
:style="{ width: abTest.algorithmA + '%' }"
></div>
/>
</div>
</div>
<div class="metric-group">
<div class="metric-label">算法 B</div>
<div class="metric-value">{{ abTest.algorithmB }}%</div>
<div class="metric-label">
算法 B
</div>
<div class="metric-value">
{{ abTest.algorithmB }}%
</div>
<div class="metric-bar">
<div
class="bar-fill better"
:style="{ width: abTest.algorithmB + '%' }"
></div>
/>
</div>
</div>
</div>
<div class="ab-conclusion">
算法 B 点击率提升
<span class="highlight"
>{{
(
((abTest.algorithmB - abTest.algorithmA) /
abTest.algorithmA) *
100
).toFixed(1)
}}%</span
>
<span class="highlight">{{
(
((abTest.algorithmB - abTest.algorithmA) /
abTest.algorithmA) *
100
).toFixed(1)
}}%</span>
</div>
</div>
<div class="tracking-events">
<div class="events-title">关键埋点</div>
<div class="events-title">
关键埋点
</div>
<div class="events-list">
<div
v-for="(event, index) in recommendationEvents"
@@ -136,7 +180,9 @@
<code>{{ event.name }}</code>
</div>
<div class="event-details">
<div class="event-trigger">{{ event.trigger }}</div>
<div class="event-trigger">
{{ event.trigger }}
</div>
<div class="event-props">
<span
v-for="(prop, i) in event.props"
@@ -153,17 +199,28 @@
</div>
<!-- 用户行为分析 -->
<div v-if="selectedCase === 'userbehavior'" class="case-detail">
<div
v-if="selectedCase === 'userbehavior'"
class="case-detail"
>
<div class="case-intro">
<div class="intro-icon">👤</div>
<div class="intro-icon">
👤
</div>
<div class="intro-text">
<div class="intro-title">用户行为分析埋点</div>
<div class="intro-desc">分析用户粘性识别流失风险</div>
<div class="intro-title">
用户行为分析埋点
</div>
<div class="intro-desc">
分析用户粘性识别流失风险
</div>
</div>
</div>
<div class="rfm-segments">
<div class="segments-title">RFM 用户分群</div>
<div class="segments-title">
RFM 用户分群
</div>
<div class="segments-grid">
<div
v-for="(segment, index) in rfmSegments"
@@ -171,37 +228,49 @@
class="segment-card"
:class="segment.type"
>
<div class="segment-name">{{ segment.name }}</div>
<div class="segment-name">
{{ segment.name }}
</div>
<div class="segment-users">
{{ formatNumber(segment.users) }} 用户
</div>
<div class="segment-desc">{{ segment.desc }}</div>
<div class="segment-desc">
{{ segment.desc }}
</div>
</div>
</div>
</div>
<div class="retention-chart">
<div class="chart-title">用户留存率</div>
<div class="chart-title">
用户留存率
</div>
<div class="chart-bars">
<div
v-for="(data, index) in retentionData"
:key="index"
class="chart-bar"
>
<div class="bar-label">{{ data.label }}</div>
<div class="bar-label">
{{ data.label }}
</div>
<div class="bar-container">
<div
class="bar-fill"
:style="{ height: data.rate + '%' }"
></div>
/>
</div>
<div class="bar-value">
{{ data.rate }}%
</div>
<div class="bar-value">{{ data.rate }}%</div>
</div>
</div>
</div>
<div class="tracking-events">
<div class="events-title">关键埋点</div>
<div class="events-title">
关键埋点
</div>
<div class="events-list">
<div
v-for="(event, index) in userBehaviorEvents"
@@ -212,7 +281,9 @@
<code>{{ event.name }}</code>
</div>
<div class="event-details">
<div class="event-trigger">{{ event.trigger }}</div>
<div class="event-trigger">
{{ event.trigger }}
</div>
<div class="event-props">
<span
v-for="(prop, i) in event.props"