index.uvue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <template>
  2. <cl-page>
  3. <Topbar />
  4. <cl-banner
  5. :list="bannerList"
  6. :height="400"
  7. :pt="{
  8. className: '!rounded-none',
  9. image: {
  10. className: '!rounded-none'
  11. }
  12. }"
  13. />
  14. <view class="card dark:!bg-surface-700" id="info">
  15. <Info />
  16. </view>
  17. <view class="card !py-1 dark:!bg-surface-700">
  18. <view
  19. class="row border border-solid border-t-0 border-l-0 border-r-0 border-b-surface-100 dark:border-surface-600"
  20. >
  21. <cl-icon name="apps-line" :size="16"></cl-icon>
  22. <view class="flex-1 ml-3">
  23. <cl-text>已选:黑色 128GB + 碎屏险</cl-text>
  24. </view>
  25. <cl-icon name="arrow-right-s-line" :size="16"></cl-icon>
  26. </view>
  27. <view
  28. class="row !items-start border border-solid border-t-0 border-l-0 border-r-0 border-b-surface-100 dark:border-surface-600"
  29. >
  30. <cl-icon name="truck-line" :size="16" :pt="{ className: '!mt-1' }"></cl-icon>
  31. <view class="flex-1 ml-3">
  32. <cl-text color="info">预计11月1日 周三 送达</cl-text>
  33. <cl-text color="info" :pt="{ className: '!mt-1' }">深圳益田假日广场</cl-text>
  34. </view>
  35. </view>
  36. <view class="row">
  37. <cl-icon name="shield-check-line" :size="16"></cl-icon>
  38. <view class="flex-1 ml-3">
  39. <cl-text color="info">7天无理由退货 · 正品保证 · 极速发货 · 无忧售后</cl-text>
  40. </view>
  41. </view>
  42. </view>
  43. <view class="card dark:!bg-surface-700" id="comment">
  44. <Comment />
  45. </view>
  46. <view class="card !p-0 dark:!bg-surface-700" id="desc">
  47. <Desc />
  48. </view>
  49. <cl-footer>
  50. <view class="flex flex-row overflow-visible">
  51. <view class="flex flex-row mr-auto overflow-visible">
  52. <view class="flex justify-center items-center px-4">
  53. <cl-icon name="heart-line" :size="20"></cl-icon>
  54. <cl-text :size="12" :pt="{ className: 'mt-1' }">收藏</cl-text>
  55. </view>
  56. <view
  57. class="flex justify-center items-center px-4 overflow-visible"
  58. @tap="router.to('/pages/template/shop/shopping-cart')"
  59. >
  60. <cl-icon name="shopping-cart-line" :size="20"></cl-icon>
  61. <cl-text :size="12" :pt="{ className: 'mt-1' }">购物车</cl-text>
  62. <cl-badge
  63. type="error"
  64. :value="3"
  65. position
  66. :pt="{ className: '!right-[12px] !top-[-4px] !scale-80' }"
  67. ></cl-badge>
  68. </view>
  69. </view>
  70. <cl-button size="large" text border :pt="{ className: '!w-[120px]' }"
  71. >加入购物车</cl-button
  72. >
  73. <cl-button size="large" :pt="{ className: '!w-[120px]' }">立即购买</cl-button>
  74. </view>
  75. </cl-footer>
  76. </cl-page>
  77. </template>
  78. <script setup lang="ts">
  79. import { router } from "@/.cool";
  80. import { ref } from "vue";
  81. import Comment from "./comment.uvue";
  82. import Info from "./info.uvue";
  83. import Desc from "./desc.uvue";
  84. import Topbar from "./topbar.uvue";
  85. const bannerList = ref<string[]>([
  86. "https://unix.cool-js.com/images/demo/goods/banner-1.jpg",
  87. "https://unix.cool-js.com/images/demo/goods/banner-2.jpg",
  88. "https://unix.cool-js.com/images/demo/goods/banner-3.jpg",
  89. "https://unix.cool-js.com/images/demo/goods/banner-4.jpg"
  90. ]);
  91. </script>
  92. <style lang="scss" scoped>
  93. .card {
  94. @apply p-4 bg-white mb-3;
  95. .row {
  96. @apply flex flex-row items-center py-4;
  97. }
  98. }
  99. </style>