drawCard_fullSet.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944
  1. <template>
  2. <view class="container">
  3. <view class="bk">
  4. <PageTitle color="#fff" title="全套赏详情" />
  5. <view class="head" style="margin-top: 36rpx">
  6. <image class="img" :src="detail.icon" mode="aspectFill"></image>
  7. <view class="info">
  8. <view class="title row">
  9. {{ detail.name || '' }}
  10. </view>
  11. <view class="row">
  12. <view class="price">
  13. ¥{{ detail.price || '' }}
  14. <span class="text">/张明信片</span>
  15. </view>
  16. <image
  17. @click="$navigateTo('/pages/rule/rule', { type: 3 })"
  18. class="button"
  19. src="https://fudaanfang.oss-cn-hangzhou.aliyuncs.com/festatic/bkm/first2/rule.png"
  20. mode="widthFix"
  21. ></image>
  22. </view>
  23. <view class="row">
  24. <view class="users">
  25. <image
  26. class="photo"
  27. :style="'left:' + index * 11 + 'px'"
  28. :src="'https://fudaanfang.oss-cn-hangzhou.aliyuncs.com/festatic/bkm/item.png'"
  29. v-for="(item, index) in userList"
  30. mode="widthFix"
  31. ></image>
  32. </view>
  33. <view class="hot">
  34. <image :src="'https://file.rongcyl.cn/festatic/bkm/imgv2' + '/first/hot.png'" mode="widthFix"></image>
  35. {{ detail.hotNum || '' }}
  36. </view>
  37. </view>
  38. </view>
  39. </view>
  40. <view class="cardList">
  41. <image
  42. class="itemHead"
  43. :src="'https://file.rongcyl.cn/festatic/bkm/imgv2/drawCard_fullSet/headBk.png'"
  44. mode="widthFix"
  45. ></image>
  46. <view class="countdown textColor5">
  47. {{ countdown }}
  48. </view>
  49. <view class="title">
  50. <view class="left">
  51. <image
  52. class="text1"
  53. :src="'https://file.rongcyl.cn/festatic/bkm/imgv2/drawCard_fullSet/icon1.png'"
  54. mode="widthFix"
  55. ></image>
  56. <view class="row text2" style="font-size: 28rpx">已选择 {{ selectIndex.length }} 个</view>
  57. </view>
  58. <view class="right">
  59. <view class="text">
  60. 分享福袋有几率提高
  61. <span style="color: #63fff6">S赏</span>
  62. 概率
  63. </view>
  64. <!-- <image class="button" :src="'https://file.rongcyl.cn/festatic/bkm/imgv2/drawCard_fullSet/button1.png'" mode="widthFix"></image> -->
  65. <button open-type="share" class="share_btn">
  66. <image
  67. class="button"
  68. :src="'https://file.rongcyl.cn/festatic/bkm/imgv2/drawCard_fullSet/button1.png'"
  69. mode="widthFix"
  70. ></image>
  71. </button>
  72. </view>
  73. </view>
  74. <view class="list">
  75. <view
  76. :class="['item', item.status == 0 ? 'c1' : 'c2']"
  77. v-for="(item, index) in cardList"
  78. @click="clickCard(item)"
  79. >
  80. <numImg v-if="item.status == 0" class="num" :value="item" :type="3" />
  81. <img
  82. v-if="item.status == 2"
  83. src="https://file.rongcyl.cn/festatic/bkm/first2/gift_a.png"
  84. style="width: 60rpx; height: 72rpx"
  85. />
  86. <img
  87. v-if="item.status == 1"
  88. src="https://file.rongcyl.cn/festatic/bkm/first2/lock.png"
  89. style="width: 60rpx; height: 60rpx"
  90. />
  91. <image
  92. v-if="item.check"
  93. class="checkBk"
  94. src="https://file.rongcyl.cn/festatic/bkm/imgv2/first/cardCheck.png"
  95. mode="widthFix"
  96. ></image>
  97. </view>
  98. </view>
  99. </view>
  100. <!-- <view class="examples">
  101. <view class="example">
  102. <image
  103. class="exampleImg"
  104. :src="'https://file.rongcyl.cn/festatic/bkm/imgv2/ka/kabk' + cardType(3, { status: 0 }) + '.png'"
  105. mode="widthFix"
  106. ></image>
  107. <image class="tip" :src="'https://file.rongcyl.cn/festatic/bkm/imgv2/ka/bkType1.png'" mode="widthFix"></image>
  108. </view>
  109. <view class="example">
  110. <image
  111. class="exampleImg"
  112. :src="'https://file.rongcyl.cn/festatic/bkm/imgv2/ka/kabk' + cardType(3, { status: 2 }) + '.png'"
  113. mode="widthFix"
  114. ></image>
  115. <image class="tip" :src="'https://file.rongcyl.cn/festatic/bkm/imgv2/ka/bkType5.png'" mode="widthFix"></image>
  116. </view>
  117. <view class="example">
  118. <image
  119. class="exampleImg"
  120. :src="'https://file.rongcyl.cn/festatic/bkm/imgv2/ka/kabk' + cardType(3, { status: 1 }) + '.png'"
  121. mode="widthFix"
  122. ></image>
  123. <image class="tip" :src="'https://file.rongcyl.cn/festatic/bkm/imgv2/ka/bkType4.png'" mode="widthFix"></image>
  124. </view>
  125. </view> -->
  126. <view class="buttons">
  127. <!-- <image class="button1" @click="toKnapsack"
  128. :src="'https://file.rongcyl.cn/festatic/bkm/imgv2/drawCard_fullSet/button3.png'" mode="heightFix">
  129. </image> -->
  130. <!-- <image class="button1" :src="'https://file.rongcyl.cn/festatic/bkm/imgv2/drawCard_fullSet/button4.png'" mode="heightFix"></image> -->
  131. <!-- <image class="button1"
  132. @click="$navigateTo('/pages/drawCard_fullSet/goods', { raffleId: params.raffleId })"
  133. :src="'https://file.rongcyl.cn/festatic/bkm/imgv2/drawCard_fullSet/button5.png'" mode="heightFix">
  134. </image> -->
  135. <view class="button1" @click="$navigateTo('/pages/drawCard_fullSet/goods', { raffleId: params.raffleId })">
  136. 奖品预览
  137. </view>
  138. </view>
  139. <view
  140. class="winningList"
  141. v-if="prizeUserList.length > 0"
  142. @click="$navigateTo('/pages/drawCard_fullSet/winningList', { raffleId: params.raffleId })"
  143. >
  144. <image
  145. class="winningListTitle"
  146. :src="'https://file.rongcyl.cn/festatic/bkm/imgv2/drawCard_fullSet/icon2.png'"
  147. mode="widthFix"
  148. ></image>
  149. <view class="list">
  150. <view class="item" v-for="(item, index) in prizeUserList.slice(0, 5)">
  151. <image class="photo" :src="item.userAvtar" mode="aspectFill"></image>
  152. <view class="name">
  153. {{ item.userName }}
  154. </view>
  155. </view>
  156. <view class="item" v-if="prizeUserList.length > 5">
  157. <image
  158. class="photo"
  159. :src="'https://file.rongcyl.cn/festatic/bkm/imgv2/drawCard_fullSet/icon3.png'"
  160. mode="aspectFill"
  161. ></image>
  162. <view class="name" style="color: #6478fd">查看更多</view>
  163. </view>
  164. </view>
  165. </view>
  166. <view class="prizes" style="display: none">
  167. <image
  168. class="title"
  169. :src="'https://file.rongcyl.cn/festatic/bkm/imgv2/first/title.png'"
  170. mode="widthFix"
  171. ></image>
  172. <view class="prizesList" v-for="(item, index) in prizeList">
  173. <image
  174. class="bk"
  175. :src="'https://file.rongcyl.cn/festatic/bkm/imgv2/first/bk2.png'"
  176. mode="scaleToFill"
  177. ></image>
  178. <view class="prizesTitle">
  179. {{ $selectDictLabel(rewardType, item.type) }}
  180. </view>
  181. <view class="prizesImgOne" v-if="item.type == 22">
  182. <view class="image" v-for="(item2, index2) in item.prizeList">
  183. <image :class="item2.leftNum == 0 ? 'grey' : ''" :src="item2.icon" mode="aspectFill"></image>
  184. </view>
  185. </view>
  186. <view class="prizesImg" v-else>
  187. <view class="image" v-for="(item2, index2) in item.prizeList">
  188. <image :class="item2.leftNum == 0 ? 'grey' : ''" :src="item2.icon" mode="aspectFill"></image>
  189. </view>
  190. </view>
  191. </view>
  192. </view>
  193. <div class="buy items-center">
  194. <div class="pica ml-2" style="margin-top: -38rpx">
  195. <img src="https://file.rongcyl.cn/festatic/bkm/first2/pica.png" class="w-full h-full" />
  196. </div>
  197. <div class="flex-1 text-white fs12 ml12 relative bottom-3 pl-3">
  198. <span class="inline-block">已选{{ selectIndex.length }}个 合计:</span>
  199. <span class="inline-block" style="color: #ea6636">
  200. <span class="bold">¥</span>
  201. <span class="fs18 bold">{{ (selectIndex.length * detail.price).toFixed(2) }}</span>
  202. </span>
  203. </div>
  204. <img
  205. @click="submit"
  206. src="https://file.rongcyl.cn/festatic/bkm/first2/bug.png"
  207. class="b_btn relative bottom-3 right-2"
  208. />
  209. </div>
  210. </view>
  211. <div class="fixed right-2 bottom-20" style="height: 460rpx">
  212. <!-- <img
  213. src="https://file.rongcyl.cn/festatic/bkm/first2/fu.png"
  214. style="width: 88rpx; height: 88rpx; margin-bottom: 24rpx"
  215. /> -->
  216. <img
  217. @click="toKnapsack"
  218. src="https://file.rongcyl.cn/festatic/bkm/first2/bag.png"
  219. style="width: 88rpx; height: 88rpx; margin-bottom: 24rpx"
  220. />
  221. <img
  222. @click="refresh"
  223. src="https://file.rongcyl.cn/festatic/bkm/first2/refresh.png"
  224. style="width: 88rpx; height: 88rpx; margin-bottom: 24rpx"
  225. />
  226. <button open-type="share" class="share_btn">
  227. <img
  228. src="https://file.rongcyl.cn/festatic/bkm/first2/share.png"
  229. style="width: 88rpx; height: 88rpx; margin-bottom: 24rpx"
  230. />
  231. </button>
  232. </div>
  233. <!-- <image class="refresh" @click="refresh"
  234. :src="'https://file.rongcyl.cn/festatic/bkm/imgv2/first/refresh.png'" mode="widthFix"></image> -->
  235. <paymentPopup ref="paymentPopup" @callBack="paymentSuccess" />
  236. </view>
  237. </template>
  238. <script>
  239. import { rewardType } from '@/utils/commonConfig.js'
  240. import { prizePoolStatusApi, raffleDetailApi, prizeListApi, prizeUserListApi } from '@/api/drawCard.js'
  241. import { cardType, formatSeconds } from '@/utils/utils.js'
  242. import numImg from '@/component/numImg.vue'
  243. import paymentPopup from '@/component/paymentPopup.vue'
  244. import PageTitle from '@/component/pageTitle.vue'
  245. export default {
  246. components: {
  247. PageTitle,
  248. numImg,
  249. paymentPopup,
  250. },
  251. data() {
  252. return {
  253. safeAreaTop: '0rpx',
  254. countdown: '',
  255. countdownInfinity: null,
  256. cardType: cardType,
  257. rewardType: rewardType,
  258. params: {
  259. raffleId: '',
  260. limit: 20,
  261. page: 1,
  262. },
  263. detail: {},
  264. total: 0,
  265. userList: 8,
  266. cardList: [],
  267. selectIndex: [],
  268. prizeList: [],
  269. prizeUserList: [],
  270. }
  271. },
  272. onLoad(query) {
  273. console.log(query, 'query')
  274. if (query.id) {
  275. this.params.raffleId = query.id
  276. this.init()
  277. }
  278. this.paymentSuccess()
  279. },
  280. mounted() {
  281. this.getSafeAreaTop()
  282. },
  283. onHide() {
  284. if (!this.countdownInfinity) {
  285. clearInterval(this.countdownInfinity)
  286. }
  287. },
  288. methods: {
  289. init() {
  290. // 获取卡牌商品列表
  291. this.getCardList()
  292. // 获取卡包详情
  293. this.getDetail()
  294. //获取奖池
  295. this.getPrizeList()
  296. // 获取中奖记录
  297. this.getPrizeUserList()
  298. },
  299. getSafeAreaTop() {
  300. wx.getSystemInfo({
  301. success: res => {
  302. this.safeAreaTop = res.safeArea.top + 'px'
  303. },
  304. })
  305. },
  306. toKnapsack() {
  307. // 跳转背包界面
  308. wx.navigateTo({
  309. url: '/pages/knapsack/knapsack',
  310. })
  311. },
  312. refresh() {
  313. wx.showLoading()
  314. setTimeout(function () {
  315. wx.hideLoading()
  316. }, 1000)
  317. this.init()
  318. this.selectIndex = []
  319. for (var i = 0; i < this.cardList.length; i++) {
  320. this.cardList[i].check = false
  321. }
  322. },
  323. getPrizeUserList() {
  324. let params = {
  325. limit: 999,
  326. page: 1,
  327. raffleId: this.params.raffleId,
  328. }
  329. prizeUserListApi(params).then(res => {
  330. console.log(res, '中奖记录')
  331. let userIds = []
  332. let list = []
  333. for (var i = 0; i < res.data.length; i++) {
  334. let item = res.data[i]
  335. if (userIds.indexOf(item.userId) == -1) {
  336. userIds.push(item.userId)
  337. console.log(userIds.indexOf(item.userId))
  338. let index = userIds.indexOf(item.userId)
  339. list[index] = {
  340. userId: item.userId,
  341. userAvtar: item.userAvtar,
  342. userName: item.userName,
  343. prizes: [],
  344. }
  345. list[index].prizes.push(item)
  346. } else {
  347. let index = userIds.indexOf(item.userId)
  348. list[index].prizes.push(item)
  349. }
  350. }
  351. this.userIds = userIds
  352. this.prizeUserList = list
  353. })
  354. },
  355. getPrizeList() {
  356. let params = {
  357. raffleId: this.params.raffleId,
  358. }
  359. prizeListApi(params).then(res => {
  360. console.log(res, '奖池预览')
  361. let newArray = res.data
  362. for (var i = 0; i < res.data.length; i++) {
  363. if (res.data[i].type == 21) {
  364. newArray = []
  365. newArray.push(res.data[i])
  366. res.data.splice(i, 1)
  367. newArray.push(...res.data)
  368. break
  369. }
  370. }
  371. this.prizeList = newArray
  372. })
  373. },
  374. toWinningRecord() {
  375. let params = {
  376. raffleId: this.params.raffleId,
  377. }
  378. this.$navigateTo('/pages/winningRecord/winningRecord', params)
  379. },
  380. getDetail() {
  381. let params = {
  382. raffleId: this.params.raffleId,
  383. }
  384. raffleDetailApi(params).then(res => {
  385. console.log(res, '详情')
  386. this.detail = res.data
  387. this.endTime = new Date(this.detail.endTime).getTime()
  388. // this.endTime = new Date('2023-11-10 14:48:00').getTime()
  389. // 初始化倒计时
  390. this.initCountdown()
  391. if (this.countdown != '已结束') {
  392. this.countdownInfinity = setInterval(() => {
  393. if (this.countdown == '已结束') {
  394. clearInterval(this.countdownInfinity)
  395. this.countdownInfinity = null
  396. return
  397. }
  398. this.initCountdown()
  399. }, 1000)
  400. }
  401. })
  402. },
  403. initCountdown() {
  404. let nowTime = new Date().getTime()
  405. let endTime = this.endTime
  406. let countdownText = ''
  407. let countdown = endTime - nowTime
  408. if (countdown <= 0) {
  409. countdownText = '已结束'
  410. } else {
  411. countdownText = formatSeconds(countdown)
  412. }
  413. // console.log(countdownText, 'countdownText')
  414. this.countdown = countdownText
  415. },
  416. submit() {
  417. if (this.selectIndex.length == 0) {
  418. wx.showToast({
  419. title: '请选则要购买的卡牌。',
  420. icon: 'none',
  421. })
  422. return
  423. }
  424. let params = {
  425. raffleId: this.params.raffleId,
  426. }
  427. this.$refs.paymentPopup.show(params, this.selectIndex, this.detail)
  428. },
  429. // 支付成功后回调
  430. paymentSuccess() {
  431. let _this = this
  432. console.log('刷新抽卡界面')
  433. // 刷新界面
  434. _this.refresh()
  435. },
  436. // 选中取消选中卡牌
  437. clickCard(item) {
  438. if (item.status == 0) {
  439. item.check = !item.check
  440. }
  441. // 如果是选中
  442. let index = this.selectIndex.indexOf(item.number)
  443. if (item.check && index == -1) {
  444. this.selectIndex.push(item.number)
  445. } else if (!item.check && index != -1) {
  446. this.selectIndex.splice(index, 1)
  447. }
  448. },
  449. // 标记已经选中卡牌
  450. selectFormat() {
  451. for (var i = 0; i < this.cardList.length; i++) {
  452. if (this.selectIndex.includes(this.cardList[i].number)) {
  453. this.cardList[i].check = true
  454. }
  455. }
  456. },
  457. getCardList() {
  458. prizePoolStatusApi(this.params).then(res => {
  459. console.log(res, '卡牌分页')
  460. for (var i = 0; i < res.data.list.length; i++) {
  461. res.data.list[i].check = false
  462. }
  463. this.cardList = res.data.list
  464. this.selectFormat()
  465. this.total = res.data.total
  466. })
  467. },
  468. left() {
  469. console.log('上一页')
  470. if (this.params.page > 1) {
  471. this.params.page = this.params.page - 1
  472. }
  473. this.getCardList()
  474. },
  475. right() {
  476. console.log('下一页')
  477. let pages = Math.ceil(this.total / this.params.limit)
  478. if (this.params.page < pages) {
  479. this.params.page = this.params.page + 1
  480. }
  481. this.getCardList()
  482. },
  483. back() {
  484. wx.navigateBack({ delta: 1 })
  485. },
  486. },
  487. }
  488. </script>
  489. <style scoped lang="scss">
  490. .share_btn {
  491. background-color: transparent;
  492. border-width: 0 !important;
  493. border-radius: 0;
  494. overflow: initial;
  495. text-align: start;
  496. padding: 0;
  497. box-shadow: none !important;
  498. -webkit-tap-highlight-color: transparent;
  499. &::after {
  500. border: none;
  501. }
  502. }
  503. .container {
  504. // background: #9ec8f9;
  505. background: linear-gradient(216deg, #fe854c 0%, #ff9a5a 100%);
  506. .bk {
  507. overflow: auto;
  508. padding-top: 30rpx;
  509. background-image: url(https://file.rongcyl.cn/festatic/bkm/first2/bg.png);
  510. height: calc(100vh - 160rpx);
  511. background-repeat: no-repeat;
  512. background-position: center center;
  513. background-size: 100% 100%;
  514. box-sizing: border-box;
  515. overflow: scroll;
  516. padding-bottom: 160rpx;
  517. .buy {
  518. position: fixed;
  519. left: 0;
  520. right: 0;
  521. bottom: 0;
  522. width: 750rpx;
  523. height: 160rpx;
  524. background: #000000;
  525. opacity: 1;
  526. display: flex;
  527. .pica {
  528. width: 88rpx;
  529. height: 88rpx;
  530. }
  531. .b_btn {
  532. width: 232rpx;
  533. height: 76rpx;
  534. }
  535. }
  536. }
  537. .refresh {
  538. position: fixed;
  539. right: 8rpx;
  540. top: 75%;
  541. width: 80rpx;
  542. z-index: 5;
  543. }
  544. .head {
  545. background: #fff;
  546. border: 20rpx;
  547. padding: 30rpx;
  548. border-radius: 20rpx 20rpx 0 0;
  549. display: flex;
  550. justify-content: space-between;
  551. margin-bottom: 40rpx;
  552. .img {
  553. width: 212rpx;
  554. height: 212rpx;
  555. border-radius: 10rpx;
  556. overflow: hidden;
  557. margin-right: 20rpx;
  558. }
  559. .info {
  560. display: flex;
  561. flex-direction: column;
  562. justify-content: start;
  563. flex: 1;
  564. .row {
  565. margin: 10rpx 0;
  566. display: flex;
  567. justify-content: space-between;
  568. color: #999999;
  569. .button {
  570. width: 134rpx;
  571. }
  572. .hot {
  573. display: flex;
  574. font-size: 24rpx;
  575. color: #999999;
  576. image {
  577. width: 32rpx;
  578. }
  579. }
  580. .users {
  581. position: relative;
  582. .photo {
  583. position: absolute;
  584. width: 40rpx;
  585. height: 40rpx;
  586. border-radius: 50%;
  587. }
  588. }
  589. }
  590. .title {
  591. font-weight: 600;
  592. height: 64rpx;
  593. color: #000;
  594. }
  595. .price {
  596. font-size: 32rpx;
  597. font-weight: 600;
  598. color: #ff2c43;
  599. .text {
  600. font-size: 28rpx;
  601. color: #999999;
  602. font-weight: 500;
  603. }
  604. }
  605. }
  606. }
  607. .cardList {
  608. margin: 20rpx;
  609. border-radius: 24rpx;
  610. position: relative;
  611. // background: linear-gradient(180deg, #31b7fd 10%, #6478fd 90%);
  612. background: #ff6f01;
  613. // overflow: scroll;
  614. padding-bottom: 2rpx;
  615. .countdown {
  616. position: absolute;
  617. top: 2rpx;
  618. padding-left: 140rpx;
  619. font-size: 30rpx;
  620. }
  621. .itemHead {
  622. position: relative;
  623. left: -20rpx;
  624. top: -20rpx;
  625. width: calc(100% + 20rpx);
  626. }
  627. .title {
  628. display: flex;
  629. justify-content: space-between;
  630. color: #fff;
  631. padding: 0 30rpx 12rpx 30rpx;
  632. .left {
  633. .text1 {
  634. width: 6.5rem;
  635. // font-size: 48rpx;
  636. // font-weight: 600;
  637. // text-shadow: 2rpx 2rpx 0rpx #0A57BA;
  638. // font-family: YouSheBiaoTiHei-Regular, YouSheBiaoTiHei;
  639. }
  640. .text2 {
  641. font-family:
  642. Alimama FangYuanTi VF-Medium-Round,
  643. Alimama FangYuanTi VF-Medium;
  644. }
  645. }
  646. .right {
  647. display: flex;
  648. .text {
  649. width: 200rpx;
  650. font-size: 24rpx;
  651. text-align: right;
  652. }
  653. .button {
  654. width: 144rpx;
  655. height: 30rpx;
  656. }
  657. }
  658. }
  659. .bk {
  660. width: 100%;
  661. }
  662. .list {
  663. background: #fff;
  664. padding: 30rpx;
  665. border-radius: 24rpx;
  666. // width: calc(100% - 160rpx);
  667. // height: calc(100% - 140rpx);
  668. // position: absolute;
  669. // top: 0;
  670. display: grid;
  671. grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
  672. grid-template-rows: 1fr 1fr 1fr;
  673. grid-gap: 30rpx;
  674. .c1 {
  675. background-image: url(https://file.rongcyl.cn/festatic/bkm/imgv2/ka/kabk3.png);
  676. // width: 96rpx;
  677. height: 136rpx;
  678. background-repeat: no-repeat;
  679. background-position: center center;
  680. background-size: contain;
  681. margin-bottom: 14rpx;
  682. position: relative;
  683. .checkBk {
  684. position: absolute;
  685. width: 105%;
  686. }
  687. }
  688. .c2 {
  689. background-image: url(https://file.rongcyl.cn/festatic/bkm/imgv2/ka/kabk4.png);
  690. // width: 96rpx;
  691. height: 136rpx;
  692. background-repeat: no-repeat;
  693. background-position: center center;
  694. background-size: contain;
  695. margin-bottom: 14rpx;
  696. }
  697. .item {
  698. display: inline-flex;
  699. justify-content: center;
  700. align-items: center;
  701. position: relative;
  702. .kaBkActive {
  703. height: 142%;
  704. width: 100%;
  705. position: absolute;
  706. z-index: 1;
  707. }
  708. .kaBk {
  709. width: 100%;
  710. border-radius: 8rpx;
  711. z-index: 2;
  712. }
  713. .num {
  714. // position: absolute;
  715. width: 100%;
  716. height: 100%;
  717. // top: 0;
  718. // z-index: 2;
  719. }
  720. }
  721. }
  722. .buyButton {
  723. width: 40%;
  724. margin: 20rpx auto;
  725. }
  726. }
  727. .winningList {
  728. margin: 40rpx 20rpx;
  729. padding: 30rpx;
  730. background: linear-gradient(180deg, #ff6f01 10%, #ff5a01 90%);
  731. border-radius: 24rpx;
  732. .winningListTitle {
  733. width: 184rpx;
  734. margin-bottom: 24rpx;
  735. }
  736. .list {
  737. position: relative;
  738. padding: 24rpx 14rpx 24rpx 24rpx;
  739. border-radius: 24rpx;
  740. background: #fff;
  741. display: flex;
  742. .item {
  743. width: calc(100% / 6 - 10rpx);
  744. // margin: 0 auto;
  745. position: relative;
  746. display: inline-flex;
  747. flex-direction: column;
  748. justify-content: center;
  749. align-items: center;
  750. margin-right: 10rpx;
  751. .photo {
  752. width: 80rpx;
  753. height: 80rpx;
  754. border-radius: 50%;
  755. background: #b6b6b6;
  756. }
  757. .name {
  758. margin-top: 10rpx;
  759. display: inline-block;
  760. font-size: 22rpx;
  761. max-width: 100%;
  762. overflow: hidden;
  763. white-space: nowrap;
  764. text-overflow: ellipsis;
  765. }
  766. }
  767. }
  768. }
  769. .buttons {
  770. display: flex;
  771. justify-content: center;
  772. align-items: flex-start;
  773. padding: 0 20rpx;
  774. .button1 {
  775. height: 70rpx;
  776. width: 140rpx;
  777. line-height: 70rpx;
  778. color: #fff;
  779. background: linear-gradient(180deg, #fef104 10%, #ff7a33 90%);
  780. text-align: center;
  781. border-radius: 35rpx;
  782. padding: 0 20rpx;
  783. font-weight: 600;
  784. font-size: 32rpx;
  785. }
  786. }
  787. .prizes {
  788. .title {
  789. width: 206rpx;
  790. margin: 0 auto;
  791. }
  792. .prizesList {
  793. margin: 40rpx;
  794. position: relative;
  795. overflow: hidden;
  796. // z-index: 5;
  797. .bk {
  798. width: 100%;
  799. height: 100%;
  800. position: absolute;
  801. top: 0;
  802. }
  803. .prizesTitle {
  804. position: relative;
  805. height: 60rpx;
  806. line-height: 60rpx;
  807. width: 100%;
  808. margin-left: 2rpx;
  809. margin-top: 30rpx;
  810. padding-left: 30rpx;
  811. color: #fff;
  812. font-weight: 800;
  813. background: linear-gradient(90deg, rgba(89, 166, 255, 0.8) 0%, rgba(158, 200, 249, 0) 100%);
  814. }
  815. .prizesImg {
  816. position: relative;
  817. display: grid;
  818. grid-template-columns: 1fr 1fr;
  819. margin: 30rpx;
  820. white-space: wrap;
  821. text-align: center;
  822. // overflow: auto;
  823. .image {
  824. text-align: center;
  825. image {
  826. display: inline-block;
  827. width: 36vw;
  828. height: 36vw;
  829. border-radius: 20rpx;
  830. margin: 0 10rpx;
  831. }
  832. }
  833. }
  834. .prizesImgOne {
  835. position: relative;
  836. display: flex;
  837. justify-content: center;
  838. margin: 30rpx;
  839. .image {
  840. text-align: center;
  841. image {
  842. display: inline-block;
  843. width: 45vw;
  844. height: 45vw;
  845. border-radius: 20rpx;
  846. margin: 0 10rpx;
  847. }
  848. }
  849. }
  850. }
  851. }
  852. }
  853. .examples {
  854. width: 100%;
  855. margin-bottom: 40rpx;
  856. padding: 0 20rpx;
  857. display: flex;
  858. .example {
  859. width: 14vw;
  860. margin-right: 20rpx;
  861. display: flex;
  862. justify-content: center;
  863. flex-wrap: wrap;
  864. position: relative;
  865. .exampleImg {
  866. width: 13vw;
  867. }
  868. .tip {
  869. width: 100%;
  870. position: absolute;
  871. bottom: 0;
  872. transform: translateY(50%);
  873. }
  874. }
  875. }
  876. </style>