goods.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. <template>
  2. <view class="container list">
  3. <div v-for="(item, index) in prizeList" :key="index">
  4. <div class="titleTip">概率:{{ item.probability }}%(此概率为当前赏级概率)</div>
  5. <Title :title="$selectDictLabel(rewardType, item.type).split('赏')[0]" />
  6. <div class="flex pl-3 pt-3 mb-3" style="background-color: #f6f0e9">
  7. <div
  8. v-for="(item2, index2) in item.prizeList"
  9. @click="showImg(item2)"
  10. :class="['mr-2', item2.leftNum == 0 ? 'grey' : '']"
  11. style="width: 168rpx; background-color: #f9f6f2; border-radius: 8rpx; margin-bottom: 20rpx"
  12. >
  13. <image
  14. :src="item2.icon"
  15. mode="aspectFill"
  16. style="width: 144rpx; height: 144rpx; border-radius: 10rpx; margin: auto"
  17. />
  18. <div class="fs13 pl-2 prizeName">{{ item2.name }}</div>
  19. <div style="color: #ea6636" class="pl-2">
  20. <span class="fs11">参考价</span>
  21. <span class="fs14 bold">{{ detail.price }}</span>
  22. </div>
  23. </div>
  24. </div>
  25. </div>
  26. <imgPopup ref="imgPopup" />
  27. </view>
  28. </template>
  29. <script>
  30. import Title from '@/component/title.vue'
  31. import imgPopup from '@/component/imgPopup.vue'
  32. import { rewardType } from '@/utils/commonConfig.js'
  33. import { prizeListApi } from '@/api/drawCard.js'
  34. export default {
  35. data() {
  36. return {
  37. rewardType: rewardType,
  38. params: {
  39. raffleId: null,
  40. },
  41. prizeList: [],
  42. }
  43. },
  44. components: {
  45. imgPopup,
  46. Title,
  47. },
  48. onLoad(query) {
  49. if (query.raffleId) {
  50. this.params.raffleId = query.raffleId
  51. this.getPrizeList()
  52. }
  53. },
  54. onShow() {},
  55. methods: {
  56. showImg(value) {
  57. this.$refs.imgPopup.show(value)
  58. },
  59. getPrizeList() {
  60. prizeListApi(this.params).then(res => {
  61. console.log(res, '奖池预览')
  62. this.prizeList = res.data
  63. })
  64. },
  65. },
  66. }
  67. </script>
  68. <style scoped lang="scss">
  69. .container {
  70. background: linear-gradient(216deg, #fe854c 0%, #ff9a5a 100%);
  71. padding-top: 30rpx;
  72. overflow: auto;
  73. }
  74. .list {
  75. padding: 20rpx;
  76. }
  77. .prizes {
  78. .title {
  79. width: 206rpx;
  80. margin: 0 auto;
  81. }
  82. .prizesList {
  83. margin: 40rpx;
  84. position: relative;
  85. overflow: hidden;
  86. // z-index: 5;
  87. .bk {
  88. width: 100%;
  89. height: 100%;
  90. position: absolute;
  91. top: 0;
  92. }
  93. .prizesTitle {
  94. position: relative;
  95. height: 60rpx;
  96. line-height: 60rpx;
  97. width: 100%;
  98. margin-left: 2rpx;
  99. margin-top: 30rpx;
  100. padding-left: 30rpx;
  101. color: #fff;
  102. font-weight: 800;
  103. background: linear-gradient(90deg, rgba(89, 166, 255, 0.8) 0%, rgba(158, 200, 249, 0) 100%);
  104. }
  105. .prizesImg {
  106. position: relative;
  107. display: grid;
  108. grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
  109. margin: 30rpx;
  110. white-space: wrap;
  111. text-align: center;
  112. // overflow: auto;
  113. .image {
  114. text-align: center;
  115. image {
  116. display: inline-block;
  117. width: 20vw;
  118. height: 20vw;
  119. // border-radius: 20rpx;
  120. margin: 0 10rpx;
  121. }
  122. }
  123. }
  124. .prizesImgOne {
  125. position: relative;
  126. display: flex;
  127. justify-content: center;
  128. margin: 30rpx;
  129. .image {
  130. text-align: center;
  131. image {
  132. display: inline-block;
  133. width: 45vw;
  134. height: 45vw;
  135. border-radius: 20rpx;
  136. margin: 0 10rpx;
  137. }
  138. }
  139. }
  140. }
  141. }
  142. .titleTip {
  143. position: absolute;
  144. z-index: 2;
  145. height: 64rpx;
  146. line-height: 84rpx;
  147. padding-left: 25vw;
  148. font-size: 24rpx;
  149. color: #fff;
  150. }
  151. </style>