feat(hot-resource): add hot resource page with line chart for popularity trends

Change-Id: I13aa76ff02f7f43225bf1736630eec3286bb75a6
diff --git a/src/app/resource/hot-resource/hot-resource.scss b/src/app/resource/hot-resource/hot-resource.scss
new file mode 100644
index 0000000..587eb15
--- /dev/null
+++ b/src/app/resource/hot-resource/hot-resource.scss
@@ -0,0 +1,192 @@
+.HotResource {
+  max-width: 1200px;
+  margin: 0 auto;
+  padding: 0 2rem;
+}
+
+.main-header {
+  display: flex;
+  flex-direction: row;
+  gap: 12px;
+  margin: 0 auto;
+  margin-bottom: 2rem;
+  margin-top: 2rem;
+}
+
+.chart-wrapper {
+  flex: 1.2; // 右侧占一半
+  min-width: 0;
+  display: flex;
+  align-items: center;
+  padding: 0.5rem;
+  justify-content: center;
+  background: #fff;
+  border-radius: 10px;
+
+  canvas {
+    width: 100% !important;
+    height: 100% !important;
+  }
+}
+
+.carousel-wrapper {
+  flex: 0.8;
+
+  .custom-carousel {
+    position: relative;
+
+    .carousel-item {
+      position: relative;
+      max-width: 100px;
+
+      img {
+        border-radius: 10px 10px 10px 10px;
+        border-top-right-radius: 10px;
+        border-bottom-left-radius: 10px;
+        object-fit: cover;
+        cursor: pointer;
+      }
+
+      h3 {
+        width: 480px;
+        text-align: center;
+        bottom: 0;
+        left: 0;
+        color: #fff;
+        background: #14b8a6;
+        padding: 0.5rem 1rem;
+        font-size: 1.75rem;
+        margin: 0;
+        border-radius: 0 0 10px 10px;
+        position: absolute;
+      }
+    }
+
+    .p-carousel-prev,
+    .p-carousel-next {
+      position: absolute;
+      top: 50%;
+      transform: translateY(-50%);
+      z-index: 10;
+      /* 保证在图片之上 */
+      width: 2.5rem;
+      height: 2.5rem;
+      border-radius: 50%;
+      background: rgba(213, 244, 235, 0.5);
+      color: #ffffff;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      pointer-events: auto;
+      /* 确保按钮可点击 */
+    }
+
+    /* 左箭头靠左 */
+    .p-carousel-prev {
+      left: 0.5rem;
+    }
+
+    /* 右箭头靠右 */
+    .p-carousel-next {
+      right: 0.6rem;
+    }
+  }
+}
+
+
+// 全部社区样式
+.all-resources {
+  width: 100%;
+  padding: 1rem;
+
+  &-header {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+  }
+
+  &-card {
+    height: 140px;
+    padding: 1.5rem;
+    margin-bottom: 1rem;
+    border-radius: 0.5rem;
+    transition: transform 0.3s ease;
+    box-shadow: none !important; // 取消阴影
+    cursor: pointer;
+
+    //填充卡片
+    &.p-card.p-component {
+      padding: 0;
+    }
+
+    .p-card-body {
+      padding: 0;
+    }
+
+    &:hover {
+      transform: translateY(-3px);
+      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
+    }
+
+    .p-card-content {
+      height: 140px;
+      display: flex;
+      justify-content: space-between;
+      padding: 0;
+    }
+
+    img {
+      border-radius: 0.5rem 0 0 0.5rem;
+      object-fit: cover;
+    }
+
+    .resource-header {
+      display: flex;
+      flex: 1;
+      max-width: 850px;
+      padding-left: 20px;
+      padding-right: 20px;
+      margin-bottom: 20px;
+    }
+
+    .resource-content {
+      flex: 1;
+      display: flex;
+      flex-direction: column;
+
+      h3 {
+        font-size: 1.5rem;
+        font-weight: bold;
+        color: #2c3e50;
+      }
+
+      .tags {
+        display: flex;
+        gap: 0.5rem;
+      }
+
+      .resource-introduction {
+        color: #666;
+        font-size: 1rem;
+        margin-bottom: 0;
+      }
+    }
+
+    .resources-states {
+      min-width: 120px;
+      display: flex;
+      flex-direction: column;
+      justify-content: flex-end;
+      align-items: flex-end;
+      gap: 0.5rem;
+
+      .state-item {
+        display: flex;
+        align-items: center;
+        gap: 0.5rem;
+        color: #666;
+        font-size: 1rem;
+      }
+    }
+  }
+}
\ No newline at end of file