Explorar el Código

完成单词匹配结算页面

s202226701051 hace 6 meses
padre
commit
efd9611bc2

+ 71 - 39
word-app/src/app/word-match/word-match.page.html

@@ -10,13 +10,14 @@
     <div class="creature fish-2">
       <img src="assets/icon/鲨鱼.svg" alt="fish" class="fish-svg">
     </div>
+    <div class="creature seaweed-1">
+      <img src="assets/icon/线状海草2.svg" alt="seaweed" class="seaweed-svg">
+    </div>
+    <div class="creature seaweed-2">
+      <img src="assets/icon/线状海草2.svg" alt="seaweed" class="seaweed-svg">
+    </div>
     <div class="creature jellyfish">
-      <svg viewBox="0 0 100 100" width="40" height="40">
-        <circle cx="50" cy="30" r="15" fill="#FF80AB" opacity="0.6"/>
-        <path d="M35,40 Q50,70 65,40" stroke="#FF80AB" stroke-width="8" fill="none" opacity="0.5"/>
-        <path d="M30,45 Q45,80 60,45" stroke="#FF80AB" stroke-width="6" fill="none" opacity="0.5"/>
-        <path d="M40,45 Q50,85 70,45" stroke="#FF80AB" stroke-width="7" fill="none" opacity="0.5"/>
-      </svg>
+      <img src="assets/icon/水母.svg" alt="jellyfish" class="jellyfish-svg">
     </div>
     <div class="creature bubble-1"></div>
     <div class="creature bubble-2"></div>
@@ -31,7 +32,7 @@
   <div class="word-story-container">
     <!-- 顶部导航 - 完全套用串词成文页面的船图标 -->
 <div class="nav-header">
-      <div class="back-btn" (click)="goBack()">
+      <div class="back-btn" (click)="onBackClick()">
         <ion-icon name="arrow-back-outline"></ion-icon>
       </div>
       <h1 class="page-title">
@@ -66,7 +67,7 @@
           <div class="difficulty-buttons-row">
             <div 
               class="difficulty-option"
-              [class.selected]="selectedDifficulty === 'easy'"
+              [class.wm-diff-picked]="isPickedDifficulty('easy')"
               (click)="selectedDifficulty = 'easy'; $event.stopPropagation()"
             >
               <span class="option-icon">🐟</span>
@@ -74,7 +75,7 @@
             </div>
             <div 
               class="difficulty-option"
-              [class.selected]="selectedDifficulty === 'medium'"
+              [class.wm-diff-picked]="isPickedDifficulty('medium')"
               (click)="selectedDifficulty = 'medium'; $event.stopPropagation()"
             >
               <span class="option-icon">🐠</span>
@@ -82,7 +83,7 @@
             </div>
             <div 
               class="difficulty-option"
-              [class.selected]="selectedDifficulty === 'hard'"
+              [class.wm-diff-picked]="isPickedDifficulty('hard')"
               (click)="selectedDifficulty = 'hard'; $event.stopPropagation()"
             >
               <span class="option-icon">🐡</span>
@@ -181,27 +182,41 @@
           <div class="confetti-piece"></div>
           <div class="confetti-piece"></div>
           <div class="confetti-piece"></div>
+          <div class="confetti-piece"></div>
+          <div class="confetti-piece"></div>
+          <div class="confetti-piece"></div>
+          <div class="confetti-piece"></div>
         </div>
         
         <div class="result-icon" [class.win]="gameState.matchedPairs === getTotalPairs()">
           <div class="bubble-animation"></div>
-          <img *ngIf="gameState.matchedPairs === getTotalPairs()" src="assets/icon/鲨鱼.svg" alt="win" class="result-shark">
-          <span *ngIf="gameState.matchedPairs !== getTotalPairs()">⏰</span>
         </div>
         
-        <h2 class="result-title ocean-title">
-          {{gameState.matchedPairs === getTotalPairs() ? '恭喜获胜!' : '游戏结束!'}}
+        <h2 class="result-title ocean-title" [class.result-win]="gameState.matchedPairs === getTotalPairs()" [class.result-lose]="gameState.matchedPairs !== getTotalPairs()">
+          {{gameState.matchedPairs === getTotalPairs() ? '挑战成功!' : '游戏结束!'}}
         </h2>
         
-        <div class="treasure-chest" *ngIf="gameState.matchedPairs === getTotalPairs()">
-          <svg width="60" height="60" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-            <rect x="4" y="8" width="16" height="12" rx="2" fill="#FFB74D"/>
-            <rect x="6" y="6" width="12" height="4" fill="#FF9800"/>
-            <circle cx="12" cy="14" r="2" fill="#FFD54F"/>
-            <circle cx="12" cy="14" r="1" fill="#FFF9C4"/>
-            <path d="M9 19L8 22H16L15 19H9Z" fill="#FFB74D"/>
-          </svg>
-          <span class="treasure-text">获得宝藏!</span>
+        <div class="victory-stars">
+          <div class="victory-stars-row">
+            <div class="cartoon-star cartoon-star--arch-left" style="--star-tilt: -10deg">
+              <svg class="cartoon-star-svg" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
+                <path *ngIf="isVictoryStarEarned(0)" [attr.d]="victoryStarSolidPath" [attr.fill]="victoryStarSolidFillColor()"/>
+                <path *ngIf="!isVictoryStarEarned(0)" [attr.d]="victoryStarHollowPath" [attr.fill]="victoryStarHollowFillColor()"/>
+              </svg>
+            </div>
+            <div class="cartoon-star cartoon-star--arch-mid" style="--star-tilt: 0deg">
+              <svg class="cartoon-star-svg" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
+                <path *ngIf="isVictoryStarEarned(1)" [attr.d]="victoryStarSolidPath" [attr.fill]="victoryStarSolidFillColor()"/>
+                <path *ngIf="!isVictoryStarEarned(1)" [attr.d]="victoryStarHollowPath" [attr.fill]="victoryStarHollowFillColor()"/>
+              </svg>
+            </div>
+            <div class="cartoon-star cartoon-star--arch-right" style="--star-tilt: 10deg">
+              <svg class="cartoon-star-svg" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
+                <path *ngIf="isVictoryStarEarned(2)" [attr.d]="victoryStarSolidPath" [attr.fill]="victoryStarSolidFillColor()"/>
+                <path *ngIf="!isVictoryStarEarned(2)" [attr.d]="victoryStarHollowPath" [attr.fill]="victoryStarHollowFillColor()"/>
+              </svg>
+            </div>
+          </div>
         </div>
         
         <div class="result-stats">
@@ -222,25 +237,42 @@
           </div>
         </div>
         
-        <div class="button-group">
-          <ion-button 
-            (click)="startGame(gameState.difficulty)" 
-            class="ocean-btn primary"
-            expand="block"
-          >
-            <ion-icon name="refresh-outline" slot="start"></ion-icon>
-            再玩一次
-          </ion-button>
-          <ion-button 
-            (click)="resetToDifficultySelect()" 
-            class="ocean-btn secondary"
-            expand="block"
-          >
-            <ion-icon name="options-outline" slot="start"></ion-icon>
+        <div class="wizard-footer wizard-footer--result">
+          <button type="button" class="wizard-btn btn-secondary" (click)="resetToDifficultySelect()">
+            <ion-icon src="assets/icon/水母.svg" class="wizard-btn-icon" aria-hidden="true"></ion-icon>
             选择难度
-          </ion-button>
+          </button>
+          <button type="button" class="wizard-btn btn-primary btn-highlight" (click)="gameState.matchedPairs === getTotalPairs() ? startGame(gameState.difficulty) : retryCurrentRound()">
+            <ion-icon src="assets/icon/线状海草.svg" class="wizard-btn-icon" aria-hidden="true"></ion-icon>
+            {{ gameState.matchedPairs === getTotalPairs() ? '继续游戏' : '再来一次' }}
+          </button>
+        </div>
+      </div>
+    </div>
+  </div>
+
+  <!-- 退出确认弹窗(复用串词成文页面样式) -->
+  <div class="wizard-modal-overlay" *ngIf="showExitModal">
+    <div class="wizard-modal-container exit-modal-container" (click)="$event.stopPropagation()">
+      <!-- 3 秒倒计时:圆圈 + 数字 -->
+      <div class="exit-modal-countdown" *ngIf="continueCountdown !== null">
+        <div class="countdown-circle">
+          <span class="countdown-number">{{ continueCountdown }}</span>
         </div>
+        <p class="countdown-hint">即将继续游戏</p>
       </div>
+
+      <!-- 是否退出 + 退出/继续 按钮 -->
+      <ng-container *ngIf="continueCountdown === null">
+        <div class="wizard-header">
+          <h3>是否退出游戏</h3>
+        </div>
+
+        <div class="wizard-footer">
+          <button class="wizard-btn btn-secondary" (click)="confirmExit()">退出</button>
+          <button class="wizard-btn btn-primary btn-highlight" (click)="startContinueCountdown()">继续</button>
+        </div>
+      </ng-container>
     </div>
   </div>
 </ion-content>

+ 387 - 55
word-app/src/app/word-match/word-match.page.scss

@@ -15,6 +15,168 @@ $seaweed: #4CAF50;
   --ion-background-color: #{$ocean-foam};
 }
 
+ion-content {
+  --overflow: hidden;  // 禁止内容溢出滚动
+  overflow-y: hidden;  // 双重保障
+}
+
+// ==================== 串词成文弹窗样式复用(用于“退出游戏”)====================
+.wizard-modal-overlay {
+  position: fixed;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background: rgba(0, 0, 0, 0.5);
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  z-index: 1000;
+  padding: 20px;
+}
+
+.wizard-modal-overlay .wizard-modal-container {
+  background: white;
+  border-radius: 20px;
+  width: 100%;
+  max-width: 400px;
+  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
+  overflow: hidden;
+  border: 12px solid #11b1f6;
+  padding: 20px;
+}
+
+.wizard-modal-overlay .exit-modal-container {
+  max-width: 360px;
+}
+
+// 继续游戏前 3 秒倒计时:圆圈 + 数字,海洋主题
+.wizard-modal-overlay .exit-modal-countdown {
+  text-align: center;
+  padding: 16px 0 8px;
+
+  .countdown-circle {
+    width: 88px;
+    height: 88px;
+    margin: 0 auto 16px;
+    border-radius: 50%;
+    background: linear-gradient(135deg, $ocean-foam 0%, $ocean-surface 100%);
+    border: 4px solid $ocean-mid;
+    box-shadow: 0 4px 16px rgba(2, 136, 209, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.6);
+    display: flex;
+    align-items: center;
+    justify-content: center;
+  }
+
+  .countdown-number {
+    font-size: 2.5rem;
+    font-weight: 800;
+    color: $ocean-deep;
+    line-height: 1;
+  }
+
+  .countdown-hint {
+    margin: 0;
+    font-size: 1.15rem;
+    font-weight: 600;
+    color: $ocean-mid;
+  }
+}
+
+.wizard-modal-overlay .wizard-header {
+  padding: 0 0 10px 0;
+  text-align: center;
+  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
+}
+
+.wizard-modal-overlay .wizard-header h3 {
+  margin: 0 0 16px 0;
+  font-size: 1.6rem;
+  font-weight: 600;
+  color: #333;
+}
+
+.wizard-modal-overlay .exit-modal-text {
+  text-align: center;
+  padding: 0 0 14px 0;
+
+  p {
+    margin: 0;
+    font-size: 1.2rem;
+    font-weight: 600;
+    color: #333;
+  }
+}
+
+.wizard-modal-overlay .wizard-footer {
+  display: flex;
+  gap: 12px;
+  padding: 0;
+  margin-top: 10px;
+}
+
+.wizard-modal-overlay .wizard-btn {
+  flex: 1;
+  padding: 14px 24px;
+  border: none;
+  border-radius: 15px;
+  font-size: 1.3rem;
+  font-weight: 700;
+  cursor: pointer;
+  transition: all 0.2s ease;
+  outline: none;
+  height: 50px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+
+.wizard-modal-overlay .wizard-btn:disabled {
+  opacity: 0.5;
+  cursor: not-allowed;
+  background-color: #11b1f6 !important;
+  color: white !important;
+  border-color: #11b1f6 !important;
+  transform: none !important;
+  box-shadow: none !important;
+}
+
+.wizard-modal-overlay .btn-secondary {
+  background-color: #f0f0f0;
+  color: #333;
+  border: 3px solid #e1dede;
+}
+
+.wizard-modal-overlay .btn-secondary:hover:not(:disabled) {
+  background-color: #e8e8e8;
+  transform: translateY(-1px);
+}
+
+.wizard-modal-overlay .btn-primary {
+  background-color: #11b1f6;
+  color: white;
+  border: 3px solid #11b1f6;
+}
+
+.wizard-modal-overlay .btn-primary:hover:not(:disabled) {
+  background-color: #0fa3e0;
+  transform: translateY(-1px);
+  box-shadow: 0 4px 12px rgba(17, 177, 246, 0.3);
+}
+
+.wizard-modal-overlay .btn-primary:active:not(:disabled) {
+  transform: scale(0.98) translateY(0);
+}
+
+.wizard-modal-overlay .btn-highlight {
+  background-color: #11B1F6 !important;
+}
+
+.wizard-modal-overlay .btn-highlight:hover:not(:disabled) {
+  background-color: #0fa3e0 !important;
+  box-shadow: 0 4px 12px rgba(17, 177, 246, 0.4);
+}
+
 // 完全套用串词成文页面的基础样式
 .word-story-content {
   --background: #{$ocean-foam};
@@ -79,9 +241,44 @@ $seaweed: #4CAF50;
       }
       
       &.jellyfish {
-        top: 30%;
-        left: 10%;
-        animation: float 6s ease-in-out infinite;
+        bottom: 14%;
+        top: auto;
+        left: 50%;
+        right: auto;
+        transform: translateX(-50%);
+        animation: jelly-bob 5.5s ease-in-out infinite;
+
+        .jellyfish-svg {
+          width: 46px;
+          height: 46px;
+          opacity: 0.45;
+        }
+      }
+
+      &.seaweed-1 {
+        bottom: 6%;
+        left: 18%;
+        animation: seaweed-sway 4.8s ease-in-out infinite;
+
+        .seaweed-svg {
+          width: 82px;
+          height: 82px;
+          opacity: 0.55;
+          transform-origin: center bottom;
+        }
+      }
+
+      &.seaweed-2 {
+        bottom: 6%;
+        right: 14%;
+        animation: seaweed-sway 5.6s ease-in-out infinite 0.5s;
+
+        .seaweed-svg {
+          width: 62px;
+          height: 62px;
+          opacity: 0.38;
+          transform-origin: center bottom;
+        }
       }
       
       &.bubble-1 {
@@ -352,14 +549,16 @@ $seaweed: #4CAF50;
         color: #01579B;
       }
 
-      &:hover {
-        border-color: #29B6F6;
-        background: #29B6F6;
-        color: white;
-        transform: translateY(-1px);
-
-        .option-text {
+      @media (hover: hover) and (pointer: fine) {
+        &:hover {
+          border-color: #29B6F6;
+          background: #29B6F6;
           color: white;
+          transform: translateY(-1px);
+
+          .option-text {
+            color: white;
+          }
         }
       }
 
@@ -367,7 +566,7 @@ $seaweed: #4CAF50;
         transform: scale(0.96);
       }
 
-      &.selected {
+      &.wm-diff-picked {
         background: #4FC3F7;
         color: white;
         border-color: #4FC3F7;
@@ -680,6 +879,10 @@ $seaweed: #4CAF50;
       width: 100%;
       text-align: center;
       position: relative;
+      // 在 ion-content 可视区域内的基础居中基础上,再向下微调一点点
+      transform: translateY(10%);
+      // 底部按钮与白色卡片下沿留白
+      padding-bottom: 28px;
 
       .confetti {
         position: absolute;
@@ -719,6 +922,30 @@ $seaweed: #4CAF50;
             animation: confetti 2s ease-in-out infinite 0.9s;
             background: #FF8A80;
           }
+
+          &:nth-child(5) {
+            left: 15%;
+            animation: confetti 2s ease-in-out infinite 1.1s;
+            background: #AED581;
+          }
+          
+          &:nth-child(6) {
+            left: 45%;
+            animation: confetti 2s ease-in-out infinite 1.3s;
+            background: #64B5F6;
+          }
+          
+          &:nth-child(7) {
+            left: 70%;
+            animation: confetti 2s ease-in-out infinite 1.5s;
+            background: #FFD54F;
+          }
+          
+          &:nth-child(8) {
+            left: 90%;
+            animation: confetti 2s ease-in-out infinite 1.7s;
+            background: #E57373;
+          }
         }
       }
 
@@ -749,29 +976,48 @@ $seaweed: #4CAF50;
           background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.8) 0%, transparent 50%);
           animation: bubble 2s ease-in-out infinite;
         }
+      }
 
-        .result-shark {
-          width: 60%;
-          height: 60%;
-          object-fit: contain;
-          z-index: 1;
-          filter: drop-shadow(0 2px 4px rgba(0,0,0,0.2));
-          animation: jump 1s ease-in-out infinite;
-        }
+      // 通关卡通胖星星(替代宝箱)
+      .victory-stars {
+        margin: 8px 0 14px;
+        text-align: center;
       }
 
-      .treasure-chest {
+      .victory-stars-row {
         display: flex;
-        align-items: center;
+        align-items: flex-end;
         justify-content: center;
-        gap: 8px;
-        margin: 10px 0;
-        
-        .treasure-text {
-          font-size: 1.2rem;
-          font-weight: 600;
-          color: #FFB74D;
-          animation: glow 1.5s ease-in-out infinite;
+        gap: 2px;
+        padding: 4px 12px 16px;
+        // 拱形:两侧略低、中间最高,整体呈微笑弧线
+      }
+
+      .cartoon-star {
+        width: 78px;
+        height: 78px;
+        flex-shrink: 0;
+        transform: rotate(var(--star-tilt, 0deg));
+        position: relative;
+        transition: transform 0.2s ease;
+
+        filter: drop-shadow(0 3px 6px rgba(30, 80, 120, 0.15));
+
+        &--arch-left {
+          transform: translateY(14px) rotate(var(--star-tilt, 0deg)) scale(0.92);
+        }
+        &--arch-mid {
+          transform: translateY(-6px) rotate(var(--star-tilt, 0deg)) scale(1.08);
+        }
+        &--arch-right {
+          transform: translateY(14px) rotate(var(--star-tilt, 0deg)) scale(0.92);
+        }
+
+        .cartoon-star-svg {
+          width: 100%;
+          height: 100%;
+          display: block;
+          overflow: visible;
         }
       }
 
@@ -785,6 +1031,20 @@ $seaweed: #4CAF50;
         background-clip: text;
       }
 
+      // 仅在“挑战成功!”时略放大字体
+      .result-title.result-win {
+        font-size: 2.25rem;
+      }
+
+      // “游戏结束!”时改为红色
+      .result-title.result-lose {
+        font-size: 2.25rem;
+        background: linear-gradient(135deg, #C62828, #E53935);
+        -webkit-background-clip: text;
+        -webkit-text-fill-color: transparent;
+        background-clip: text;
+      }
+
       .result-stats {
         display: grid;
         grid-template-columns: repeat(3, 1fr);
@@ -793,22 +1053,26 @@ $seaweed: #4CAF50;
 
         .stat-item {
           .stat-icon {
-            font-size: 1.2rem;
+            font-size: 1.9rem;
+            width: 1.9rem;
+            height: 1.9rem;
             color: $ocean-mid;
-            margin-bottom: 4px;
+            margin-bottom: 6px;
           }
 
           .stat-label {
-            font-size: 0.8rem;
+            font-size: 0.95rem;
             color: #78909C;
             display: block;
-            margin-bottom: 4px;
+            margin-bottom: 5px;
+            font-weight: 600;
           }
 
           .stat-value {
-            font-size: 1.2rem;
-            font-weight: 700;
+            font-size: 1.6rem;
+            font-weight: 800;
             color: $ocean-deep;
+            line-height: 1.15;
 
             &.ocean-number {
               color: $ocean-mid;
@@ -817,32 +1081,80 @@ $seaweed: #4CAF50;
         }
       }
 
-      .button-group {
+      // 串词成文弹窗 .wizard-footer / .wizard-btn 同款(退出页:左 secondary、右 primary)
+      .wizard-footer--result {
         display: flex;
-        gap: 12px;
-        margin-top: 20px;
+        gap: 16px;
+        padding: 0;
+        margin-top: 32px;
+        margin-bottom: 4px;
       }
 
-      .ocean-btn {
-        --border-radius: 16px;
-        --padding-top: 14px;
-        --padding-bottom: 14px;
+      .wizard-footer--result .wizard-btn {
+        flex: 1;
+        min-width: 0;
+        padding: 17px 12px;
+        border-radius: 18px;
+        font-size: 1.4rem;
+        font-weight: 700;
+        cursor: pointer;
+        transition: all 0.2s ease;
+        outline: none;
+        min-height: 58px;
         height: auto;
-        margin: 0;
-        font-weight: 600;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        gap: 7px;
+        box-sizing: border-box;
+        white-space: nowrap;
+        flex-wrap: nowrap;
+      }
 
-        &.primary {
-          --background: linear-gradient(135deg, $ocean-mid, $ocean-deep);
-          --color: white;
-        }
+      .wizard-footer--result .wizard-btn .wizard-btn-icon {
+        font-size: 1.75rem;
+        width: 1.75rem;
+        height: 1.75rem;
+        color: inherit;
+        flex-shrink: 0;
+        display: block; // 避免 inline 基线对齐导致 SVG 内白色矩形看起来不居中
+        align-self: center;
+      }
 
-        &.secondary {
-          --background: transparent;
-          --color: $ocean-mid;
-          --border-color: $ocean-mid;
-          --border-width: 2px;
-          --border-style: solid;
-        }
+      .wizard-footer--result .wizard-btn.btn-secondary {
+        background-color: #f0f0f0;
+        color: #333;
+        border: 3px solid #e1dede;
+      }
+
+      .wizard-footer--result .wizard-btn.btn-secondary:hover:not(:disabled) {
+        background-color: #e8e8e8;
+        transform: translateY(-1px);
+      }
+
+      .wizard-footer--result .wizard-btn.btn-primary {
+        background-color: #11b1f6;
+        color: white;
+        border: 3px solid #11b1f6;
+      }
+
+      .wizard-footer--result .wizard-btn.btn-primary:hover:not(:disabled) {
+        background-color: #0fa3e0;
+        transform: translateY(-1px);
+        box-shadow: 0 4px 12px rgba(17, 177, 246, 0.3);
+      }
+
+      .wizard-footer--result .wizard-btn.btn-primary:active:not(:disabled) {
+        transform: scale(0.98) translateY(0);
+      }
+
+      .wizard-footer--result .wizard-btn.btn-highlight {
+        background-color: #11b1f6 !important;
+      }
+
+      .wizard-footer--result .wizard-btn.btn-highlight:hover:not(:disabled) {
+        background-color: #0fa3e0 !important;
+        box-shadow: 0 4px 12px rgba(17, 177, 246, 0.4);
       }
     }
   }
@@ -893,6 +1205,26 @@ $seaweed: #4CAF50;
     }
   }
 
+  // 海草摇晃(左/右轻摆 + 轻微上浮)
+  @keyframes seaweed-sway {
+    0%, 100% {
+      transform: rotate(-6deg) translateY(0);
+    }
+    50% {
+      transform: rotate(7deg) translateY(-8px);
+    }
+  }
+
+  // 水母上下游动
+  @keyframes jelly-bob {
+    0%, 100% {
+      transform: translateY(0);
+    }
+    50% {
+      transform: translateY(-28px);
+    }
+  }
+
   @keyframes bubbleUp {
     0% {
       transform: translateY(0) scale(1);

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 2 - 0
word-app/src/app/word-match/word-match.page.ts


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
word-app/src/assets/icon/水母.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
word-app/src/assets/icon/线状海草.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
word-app/src/assets/icon/线状海草2.svg


Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio