BookCard2.vue 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <template>
  2. <div
  3. v-if="item"
  4. class="book-card2"
  5. @click="$router.push({ name: 'detail', params: { id: item.id } })"
  6. >
  7. <van-image
  8. class="book-card2__cover"
  9. fit="cover"
  10. :src="baseUrl + item.thumb"
  11. :width="122"
  12. :height="157"
  13. />
  14. <div class="book-card2-inner">
  15. <h3 class="limit-line">{{ item.name }}</h3>
  16. <div class="book-card2-inner__info">
  17. <p class="limit-line">{{ item.author }}</p>
  18. <p class="limit-line">{{ item.press }} 编</p>
  19. </div>
  20. <div class="book-card2-inner__read">
  21. <span>开始阅读</span>
  22. <van-icon name="arrow" />
  23. </div>
  24. </div>
  25. </div>
  26. </template>
  27. <script setup>
  28. import { getBaseUrl } from "@/utils";
  29. defineProps(["item"]);
  30. const baseUrl = getBaseUrl();
  31. </script>
  32. <style lang="scss" scoped>
  33. /* prettier-ignore */
  34. .book-card2 {
  35. display: flex;
  36. align-items: center;
  37. gap: 48px;
  38. position: relative;
  39. margin: 30PX 40px 0;
  40. padding: 13PX 35px;
  41. height: 137PX;
  42. border-radius: 20px;
  43. box-shadow: 0px 0 20PX 0px rgba(153, 135, 110, 0.25);
  44. background: var(--van-white);
  45. box-sizing: border-box;
  46. &__cover {
  47. flex-shrink: 0;
  48. position: relative;
  49. bottom: 23PX;
  50. }
  51. &-inner {
  52. h3 {
  53. font-family: 'Source Han Serif CN-Bold';
  54. }
  55. p {
  56. font-size: 27px;
  57. color: var(--text-color-secondary);
  58. }
  59. &__info {
  60. margin: 20px 0 30px;
  61. }
  62. &__read {
  63. font-size: 27px;
  64. color:var(--van-primary-color);
  65. line-height: 20px;
  66. span {
  67. padding-right: 15px;
  68. }
  69. }
  70. }
  71. }
  72. </style>