first commit

This commit is contained in:
hero920103 committed 2025-08-06 17:17:48 +08:00
commit dc5fba137c
453 files changed
+85995

No files matched your search

+262
View File
@@ -0,0 +1,262 @@
<template>
<view class="luckly-wheel-container">
<view class="header">
<image src="../../static/images/choujiang_bg.png"></image>
</view>
<view class="main">
<view class="row-end">
<navigator class="user-prize row-center" url="/bundle/pages/prize_record/prize_record"
hover-class="none">
<text class="md" style="color: #7D350C;font-weight: 600;">我的奖品</text>
</navigator>
</view>
<view class="wheel-box">
<view class="wheel-container">
<view class="row-center">
<view class="notice-container row">
<image src="../../static/images/icon_notice.png" class="icon"></image>
<!-- <view class="xs ml20 marquee-box" style="color: #F9EDDD" wx:if="{{record.length > 0}}">
<text class="xs marquee_text" style="color: #F9EDDD;" wx:for="{{record}}" wx:key="id">{{item.text}}</text>
</view> -->
<view class="marquee-box ml20" v-if="record.length > 0">
<swiper autoplay vertical style="height: 33rpx">
<swiper-item v-for="(item, index) in record" :key="index" class="row">
<text class="xs marquee_text" style="color: #F9EDDD;">{{item.text}}</text>
</swiper-item>
</swiper>
</view>
<view class="xs ml20" style="color: #F9EDDD" v-else>
<text class="xs" style="color: #F9EDDD;">暂无通知</text>
</view>
</view>
</view>
<!-- 抽奖信息 -->
<view class="message row-between nr">
<view>我的积分: {{user_integral||'-'}}</view>
<template v-if="config.show_win">
<navigator class="row" url="/bundle/pages/win_prize_code/win_prize_code"
hover-class="none">
<image class="mr10" src="../../static/images/choujiang_name_list.png"></image>
中奖名单
</navigator>
</template>
</view>
<view class="wheel">
<my-lottery :lotteryData="lists" :status="config.status" :luckyOrder="3" :circleTimes="30"
@begin="startLottery" @finish="lotteryFinish"></my-lottery>
</view>
<!-- 次数提示 -->
<view class="num-tips nr">
每日可抽奖{{config.limit}}次,具体请查看活动规则
</view>
<view class="rules-box">
<view class="lg" style="color: #FCD7D2;margin-bottom: 30rpx;">活动规则</view>
<text class="sm" style="color: #FCD7D2;">{{config.rule}}
</text>
</view>
</view>
</view>
<view class="xs row-center" style="color: #FFF2D9;margin-top: 30rpx">本活动的所有奖品,均由商城提供</view>
</view>
<u-popup v-model="showResult" mode="center">
<view class="result-popup column-center">
<view class="result-container column-between">
<view class="row-center" style="padding:0 118rpx;margin-top: 90rpx">
<text style="color: #F95F2F;font-size: 62rpx;text-align: center;">{{resultText}}</text>
</view>
<view class="mb20">
<view class="get-btn row-center md br60" @tap="onClose">
点击收下
</view>
</view>
</view>
<view style="margin-top: 50rpx" @tap="onClose">
<image src="../../static/images/icon_close.png" style="width: 62rpx;height: 62rpx;"></image>
</view>
</view>
</u-popup>
</view>
</template>
<script>
// pages/luckly_wheel/luckly_wheel.js
import {
getPrize
} from "@/api/user";
export default {
data() {
return {
user_integral: '',
// 抽奖配置
config: {},
// 抽奖列表
lists: [],
// 通知信息
record: [],
// 今天剩余抽奖
surplus: 0,
showResult: false,
// 抽奖结果
resultText: ""
};
},
props: {},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
this.getPrizeFun();
},
methods: {
getPrizeFun() {
getPrize().then(res => {
if (res.code == 1) {
let {
config,
list,
record,
surplus,
user_integral
} = res.data;
this.config = config;
this.lists = list;
this.record = record
this.surplus = surplus
this.user_integral = user_integral
}
});
},
onClose() {
this.showResult = false
},
startLottery(e) {
this.getPrizeFun();
},
lotteryFinish(e) {
this.showResult = true;
this.resultText = e.detail
}
}
};
</script>
<style lang="scss">
/* pages/luckly_wheel/luckly_wheel.wxss */
.luckly-wheel-container {
background-color: $-color-primary;
padding-bottom: 20rpx;
.header {
width: 100%;
height: 1108rpx;
image {
width: 100%;
height: 100%;
}
}
.main {
margin-top: -810rpx;
position: relative;
.user-prize {
padding: 20rpx;
background-color: #FEF0B5;
border-radius: 100rpx 0rpx 0rpx 100rpx;
box-shadow: 0px 3px 0px #F95F2F;
}
.wheel-box {
padding: 0 30rpx;
.wheel-container {
padding: 27rpx 15rpx 36rpx;
background-color: #ED3720;
border: 12rpx solid #FE6847;
margin-top: 20rpx;
border-radius: 30rpx;
.notice-container {
background-color: #D30C16;
border: 2rpx solid #EDB17D;
padding: 13rpx 28rpx;
border-radius: 100rpx;
width: 586rpx;
.marquee-box {
width: 500rpx;
height: 33rpx;
}
}
.wheel {
margin-top: 20rpx;
.lottery-box {
background-image: url(data:image/png;base64,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 truncated
width: 560rpx;
height: 560rpx;
background-size: 100% 100%;
padding: 35rpx 40rpx;
}
}
.rules-box {
margin-top: 24rpx;
background-color: #D30C16;
padding: 20rpx 16rpx 20rpx 28rpx;
border-radius: 20rpx;
}
.message {
margin: 30rpx 10rpx;
color: #FEF0B5;
image {
width: 28rpx;
height: 30rpx;
}
}
// 每日抽奖次数提示
.num-tips {
color: #fbccc7;
margin: 16rpx 0;
text-align: center;
}
}
}
}
}
.luckly-wheel-container .van-popup {
background-color: rgba(0, 0, 0, 0);
}
.result-popup {
width: 545rpx;
height: 626rpx;
.result-container {
width: 545rpx;
height: 514rpx;
background-size: 100% 100%;
background-image: url(../../static/images/lottery_bg.png);
}
}
.get-btn {
width: 320rpx;
height: 70rpx;
color: #7B3200;
background: linear-gradient(180deg, #FEF0B0 0%, #FFA92E 100%);
}
</style>