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:
+83
-25
@@ -1,13 +1,19 @@
|
||||
<template>
|
||||
<div class="session-persistence-demo">
|
||||
<div class="header">
|
||||
<div class="title">会话保持机制</div>
|
||||
<div class="subtitle">Cookie、IP哈希与粘性会话的技术对比</div>
|
||||
<div class="title">
|
||||
会话保持机制
|
||||
</div>
|
||||
<div class="subtitle">
|
||||
Cookie、IP哈希与粘性会话的技术对比
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 场景选择 -->
|
||||
<div class="scenario-selector">
|
||||
<div class="scenario-label">应用场景:</div>
|
||||
<div class="scenario-label">
|
||||
应用场景:
|
||||
</div>
|
||||
<div class="scenario-buttons">
|
||||
<button
|
||||
v-for="scenario in scenarios"
|
||||
@@ -48,9 +54,18 @@
|
||||
:class="{ active: activeUser === user.id }"
|
||||
@click="activeUser = user.id"
|
||||
>
|
||||
<div class="avatar-icon">{{ user.avatar }}</div>
|
||||
<div class="user-name">{{ user.name }}</div>
|
||||
<div v-if="hasSessionCookie" class="cookie-badge">🍪</div>
|
||||
<div class="avatar-icon">
|
||||
{{ user.avatar }}
|
||||
</div>
|
||||
<div class="user-name">
|
||||
{{ user.name }}
|
||||
</div>
|
||||
<div
|
||||
v-if="hasSessionCookie"
|
||||
class="cookie-badge"
|
||||
>
|
||||
🍪
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -58,8 +73,12 @@
|
||||
<!-- 请求流程 -->
|
||||
<div class="request-flow">
|
||||
<div class="flow-step">
|
||||
<div class="step-label">请求</div>
|
||||
<div class="step-arrow">↓</div>
|
||||
<div class="step-label">
|
||||
请求
|
||||
</div>
|
||||
<div class="step-arrow">
|
||||
↓
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 负载均衡器 -->
|
||||
@@ -72,16 +91,29 @@
|
||||
<div class="mechanism-display">
|
||||
<span class="display-icon">{{ currentMechanismData.icon }}</span>
|
||||
<div class="display-info">
|
||||
<div class="display-name">{{ currentMechanismData.name }}</div>
|
||||
<div class="display-desc">{{ currentMechanismData.shortDesc }}</div>
|
||||
<div class="display-name">
|
||||
{{ currentMechanismData.name }}
|
||||
</div>
|
||||
<div class="display-desc">
|
||||
{{ currentMechanismData.shortDesc }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 会话表 -->
|
||||
<div v-if="currentMechanism === 'cookie' || currentMechanism === 'sticky'" class="session-table">
|
||||
<div class="table-title">会话映射表</div>
|
||||
<div
|
||||
v-if="currentMechanism === 'cookie' || currentMechanism === 'sticky'"
|
||||
class="session-table"
|
||||
>
|
||||
<div class="table-title">
|
||||
会话映射表
|
||||
</div>
|
||||
<div class="table-rows">
|
||||
<div v-for="mapping in sessionMappings" :key="mapping.session" class="table-row">
|
||||
<div
|
||||
v-for="mapping in sessionMappings"
|
||||
:key="mapping.session"
|
||||
class="table-row"
|
||||
>
|
||||
<span class="session-id">{{ mapping.session }}</span>
|
||||
<span class="mapping-arrow">→</span>
|
||||
<span class="server-name">{{ mapping.server }}</span>
|
||||
@@ -89,8 +121,13 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- IP哈希环 -->
|
||||
<div v-if="currentMechanism === 'iphash'" class="hash-ring">
|
||||
<div class="ring-title">IP哈希环</div>
|
||||
<div
|
||||
v-if="currentMechanism === 'iphash'"
|
||||
class="hash-ring"
|
||||
>
|
||||
<div class="ring-title">
|
||||
IP哈希环
|
||||
</div>
|
||||
<div class="ring-visual">
|
||||
<div
|
||||
v-for="(server, index) in hashRingServers"
|
||||
@@ -109,7 +146,9 @@
|
||||
</div>
|
||||
|
||||
<div class="flow-step">
|
||||
<div class="step-arrow">↓</div>
|
||||
<div class="step-arrow">
|
||||
↓
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 后端服务器 -->
|
||||
@@ -120,15 +159,27 @@
|
||||
class="backend-server"
|
||||
:class="{ target: isTargetServer(server.id) }"
|
||||
>
|
||||
<div class="server-icon">🖥️</div>
|
||||
<div class="server-info">
|
||||
<div class="server-name">{{ server.name }}</div>
|
||||
<div class="server-ip">{{ server.ip }}</div>
|
||||
<div class="server-icon">
|
||||
🖥️
|
||||
</div>
|
||||
<div class="server-status" :class="server.status">
|
||||
<div class="server-info">
|
||||
<div class="server-name">
|
||||
{{ server.name }}
|
||||
</div>
|
||||
<div class="server-ip">
|
||||
{{ server.ip }}
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="server-status"
|
||||
:class="server.status"
|
||||
>
|
||||
{{ server.status === 'healthy' ? '✓' : '✗' }}
|
||||
</div>
|
||||
<div v-if="isTargetServer(server.id)" class="selected-indicator">
|
||||
<div
|
||||
v-if="isTargetServer(server.id)"
|
||||
class="selected-indicator"
|
||||
>
|
||||
选中
|
||||
</div>
|
||||
</div>
|
||||
@@ -136,9 +187,14 @@
|
||||
</div>
|
||||
|
||||
<!-- 响应流程 -->
|
||||
<div class="response-flow" v-if="currentMechanism === 'cookie'">
|
||||
<div
|
||||
v-if="currentMechanism === 'cookie'"
|
||||
class="response-flow"
|
||||
>
|
||||
<div class="flow-step">
|
||||
<div class="step-arrow">↑</div>
|
||||
<div class="step-arrow">
|
||||
↑
|
||||
</div>
|
||||
</div>
|
||||
<div class="set-cookie-box">
|
||||
<div class="cookie-header">
|
||||
@@ -154,7 +210,9 @@
|
||||
|
||||
<!-- 机制对比表 -->
|
||||
<div class="mechanism-comparison">
|
||||
<div class="comparison-title">三种会话保持机制对比</div>
|
||||
<div class="comparison-title">
|
||||
三种会话保持机制对比
|
||||
</div>
|
||||
<div class="comparison-grid">
|
||||
<div class="comparison-card">
|
||||
<div class="card-header">
|
||||
|
||||
Reference in New Issue
Block a user