index.uvue 3.0 KB

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