|
|
@@ -1,21 +1,507 @@
|
|
|
<template>
|
|
|
- <div class='sign'></div>
|
|
|
+ <view class="container">
|
|
|
+ <!-- 页面标题 -->
|
|
|
+ <!-- <view class="pageTitle flex_r flex_ac flex_jc">签到</view> -->
|
|
|
+ <!-- 页面标题-end -->
|
|
|
+
|
|
|
+ <!-- 用户信息 -->
|
|
|
+ <view class="userinfo flex_r flex_ac">
|
|
|
+ <image class="user_img" :src="userInof.headimgurl ? userInof.headimgurl : 'https://tea.soowin.com/mnt/image/m_avar.jpg'" mode=""></image>
|
|
|
+ <view class="user_info flex_c flex_jc">
|
|
|
+ <view class="user_name">{{userinfo.headimgurl}}</view>
|
|
|
+ <view class="level_con flex_r flex_ac">
|
|
|
+ <view class="level">{{userInof.level}}</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <!-- <view class="record flex_r flex_ac flex_jc" @tap="NavToSignList">积分记录</view> -->
|
|
|
+ </view>
|
|
|
+ <!-- 用户信息-end -->
|
|
|
+
|
|
|
+ <!-- 签到信息 -->
|
|
|
+ <view class="sign_info flex_c">
|
|
|
+ <view class="info flex_r flex_ac flex_jb">
|
|
|
+ <view class="info_today flex_c flex_ac">
|
|
|
+ <view class="today_text g_color">{{integerInfo.todaySignIn || 0}}</view>
|
|
|
+ <view class="info_text">今日签到</view>
|
|
|
+ </view>
|
|
|
+ <view class="info_today flex_c flex_ac">
|
|
|
+ <view class="today_text">{{integerInfo.continueCount || 0}}</view>
|
|
|
+ <view class="info_text">累计签到({{integerInfo.continueCount || 0}}次)</view>
|
|
|
+ </view>
|
|
|
+ <view class="info_con">
|
|
|
+ <image class="info_img" :src="integerInfo.time > 0 ? '/static/sgin/p_back2.png' : '/static/sgin/p_back.png'" mode=""></image>
|
|
|
+ <view class="info_texts flex_r flex_ac flex_jc" @tap="setSignIn">{{integerInfo.time > 0 ? timer : ''}}<text v-if="integerInfo.time <= 0">立即签到</text></view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="sign_time flex_r flex_ac flex_je mar_t20">
|
|
|
+ <text></text>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <!-- 签到信息-end -->
|
|
|
+
|
|
|
+ <!-- 积分兑好礼 -->
|
|
|
+ <view class="integral mar_t30" v-if="list.length != 0 && list[0] != ''">
|
|
|
+ <view class="inte_title flex_r flex_ae flex_jb">
|
|
|
+ 积分兑好礼
|
|
|
+ <view class="more flex_r flex_ac" @tap="goToIntegralList">更多
|
|
|
+ <text class="not_ico iconfont"></text>
|
|
|
+ <!-- <image class="more_img" src="/static/sgin/more.png" mode=""></image> -->
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="inte_con mar_t30 flex_r flex_ac">
|
|
|
+ <view class="inte_goods" v-for="(item,index) in list" :key="index" @tap="openConversion(item.goodsId)">
|
|
|
+ <image class="goods_img" :src="item.goodsThumbnailUrl" mode=""></image>
|
|
|
+ <view class="goods_name ellipsis">{{item.goodsName}}</view>
|
|
|
+ <view class="goods_price">{{item.integral}}<text>积分</text></view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <!-- 积分兑好礼-end -->
|
|
|
+
|
|
|
+ <!-- 精品推荐 -->
|
|
|
+ <view class="Boutique" v-if="goods.length != 0 && goods[0] != ''">
|
|
|
+ <view class="bou_head flex_r flex_ac flex_jc">
|
|
|
+ <image class="bou_img" src="/static/sgin/left.png" mode=""></image>
|
|
|
+ <view class="bou_title">精品推荐</view>
|
|
|
+ <image class="bou_img" src="/static/sgin/right.png" mode=""></image>
|
|
|
+ </view>
|
|
|
+ <view class="bou_con flex_r flex_ac flex_wrap">
|
|
|
+ <view class="bou_list" v-for="(item,index) in goods" :key="index" @tap="openConversion(item.goodsId)">
|
|
|
+ <image class="bou_l_img" :src="item.goodsThumbnailUrl" mode=""></image>
|
|
|
+ <view class="bou_l_con">
|
|
|
+ <view class="bou_l_name ellipsis">{{item.goodsName}}</view>
|
|
|
+ <!-- <view class="bou_l_info flex_r flex_ae mar_t16">
|
|
|
+ <view class="bou_l_price flex_r flex_ae"><text>¥</text>450</view>
|
|
|
+ <view class="bou_l_cost">¥414</view>
|
|
|
+ </view> -->
|
|
|
+ <view class="bou_l_msg">{{item.integral}}积分可兑换</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class='fz_w_text mar_b20 mar_t20'>茶,让生活更美好!</view>
|
|
|
+ <!-- 精品推荐-end -->
|
|
|
+
|
|
|
+ <!-- 兑换弹窗 -->
|
|
|
+ <uni-popup type="center" ref="conversion">
|
|
|
+ <view class="const_con">
|
|
|
+ <image class="closePopup" src="/static/sgin/f_close.png" mode="" @tap="closePopup"></image>
|
|
|
+ <view class="const_head flex_r flex_ac flex_jc">请选择兑换方式</view>
|
|
|
+ <view class="const_info">
|
|
|
+ <view class="frist_info flex_r flex_wrap">
|
|
|
+ <view class="frist_list flex_c mar_b30" v-for="(item,index) in way_list" :key="index" @tap="setCurrent(index)">
|
|
|
+ <view class="flex_r flex_ac">
|
|
|
+ <image class="frist_img" :src="currrent == index ? '/static/sgin/xuanzhong_icon.png' : '/static/sgin/weixuanzhong_icon.png'" mode=""></image>
|
|
|
+ <view class="frist_text">{{item.name}}</view>
|
|
|
+ </view>
|
|
|
+ <view class="surplus">剩余({{item.Integral}}积分)</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="hint" v-if="isShow">积分不足请用余额或现金支付</view>
|
|
|
+ <view class="pay_way flex_r flex_ac flex_wrap mar_t30" v-if="isShow">
|
|
|
+ <view class="frist_list flex_c">
|
|
|
+ <view class="flex_r flex_ac" @tap="setPayWay(0)">
|
|
|
+ <image class="frist_img" :src="pay_way == 0 ? '/static/sgin/xuanzhong_icon.png' : '/static/sgin/weixuanzhong_icon.png'" mode=""></image>
|
|
|
+ <view class="frist_text">余额</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="frist_list flex_c">
|
|
|
+ <view class="flex_r flex_ac" @tap="setPayWay(1)">
|
|
|
+ <image class="frist_img" :src="pay_way == 1 ? '/static/sgin/xuanzhong_icon.png' : '/static/sgin/weixuanzhong_icon.png'" mode=""></image>
|
|
|
+ <view class="frist_text">现金</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <checkbox-group class="flex_r flex_ac flex_jc" @change="checkboxChange">
|
|
|
+ <label class="option_box mar_t30">
|
|
|
+ <checkbox value="1" :checked="checked" color="#2DB389" style="transform:scale(0.7)" /> 我已阅读同意<text @tap.stop="getProPage">《购买协议》</text>
|
|
|
+ </label>
|
|
|
+ </checkbox-group>
|
|
|
+ <view class="conversion flex_r flex_ac flex_jc" @tap="confimConver">确认兑换</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </uni-popup>
|
|
|
+ <!-- 兑换弹窗-end -->
|
|
|
+
|
|
|
+ <!-- 授权 -->
|
|
|
+ <authorize-module v-if="showAuth" :shopInfo="shopInfo" @authSuccess="onAuthSuccess" @onGotUserInfo="onGotUserInfo" ></authorize-module>
|
|
|
+ <!-- 授权-end -->
|
|
|
+ </view>
|
|
|
</template>
|
|
|
+
|
|
|
<script>
|
|
|
-import { get, post } from '@/request/api.js';
|
|
|
-export default {
|
|
|
- name: 'sign',
|
|
|
- data () {
|
|
|
- return {}
|
|
|
- },
|
|
|
- onLoad (option) {},
|
|
|
- onLaunch () {},
|
|
|
- onShow () {},
|
|
|
- onHide () {},
|
|
|
- methods: {},
|
|
|
- computed: {},
|
|
|
- watch: {}
|
|
|
-}
|
|
|
+var tim
|
|
|
+let page = 1;
|
|
|
+let app = getApp();
|
|
|
+var appEv = app.$vm.$options;
|
|
|
+import uniPopup from '@/components/uni-popup/uni-popup.vue'
|
|
|
+import authorizeModule from '@/components/authorize-module/index'
|
|
|
+import { get, post } from "@/request/api.js";
|
|
|
+ export default {
|
|
|
+ components:{uniPopup,authorizeModule},
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ integerInfo:{}, // 积分详情
|
|
|
+ userInof:{} ,// 用户详情
|
|
|
+ timer:'00:00:00' ,// 倒计时
|
|
|
+ list:[] ,// 积分兑好礼
|
|
|
+ goods:[] ,// 精品推荐
|
|
|
+ haveGoods:false ,// 是否有商品
|
|
|
+ way_list:[] ,//兑换方式
|
|
|
+ checked:false, //是否选中协议
|
|
|
+ currrent:0 ,// 选中的兑换方式
|
|
|
+ pay_way:0 ,//选中的支付方式
|
|
|
+ isShow: false ,// 是否显示现金支付
|
|
|
+ goodsId:'' ,// 选中的商品Id
|
|
|
+ showAuth:true, //是否显示授权弹窗
|
|
|
+ shopInfo:{} // 商户信息
|
|
|
+ };
|
|
|
+ },
|
|
|
+ onShow:function(){
|
|
|
+ this.timer = '00:00:00'
|
|
|
+ this.loadData()
|
|
|
+ this.goodsDay()
|
|
|
+ this.getInteGoods()
|
|
|
+ this.integralMethodChange()
|
|
|
+ let that = this;
|
|
|
+ let userId = app.globalData.systemUserInfo && app.globalData.systemUserInfo.userId ? app.globalData.systemUserInfo.userId : '';
|
|
|
+ if (!userId || userId == '' || userId==undefined) {
|
|
|
+ that.showAuth=true
|
|
|
+ appEv.authorizeUserInfo(res=>{
|
|
|
+ if(res){
|
|
|
+ that.showAuth=false
|
|
|
+ that.shopInfo=app.globalData.shopInfo
|
|
|
+ }
|
|
|
+ },true)
|
|
|
+ }else{
|
|
|
+ that.showAuth=false
|
|
|
+ that.shopInfo=app.globalData.shopInfo
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onHide:function(){
|
|
|
+ clearInterval(tim)
|
|
|
+ },
|
|
|
+ methods:{
|
|
|
+ loadData:function(){
|
|
|
+ let that = this;
|
|
|
+ post("ShuZiTeaIntegral/integral/integralInfoNew",{
|
|
|
+ userId: 2064
|
|
|
+ }).then(res => {
|
|
|
+ if(res.status == 200){
|
|
|
+ that.integerInfo = res.integerInfo
|
|
|
+ that.userInof = res.userInof
|
|
|
+ that.setTime()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //授权并登录
|
|
|
+ onAuthSuccess:function() {
|
|
|
+ var that = this;
|
|
|
+ uni.showLoading({ mask: true })
|
|
|
+ appEv.setData((res) => {
|
|
|
+ uni.hideLoading()
|
|
|
+ that.loadData()
|
|
|
+ that.showAuth = false
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 距可以签到倒计时
|
|
|
+ setTime:function(){
|
|
|
+ var date;
|
|
|
+ let that = this;
|
|
|
+ let timer = that.integerInfo.time / 1000
|
|
|
+ tim = setInterval(()=>{
|
|
|
+ if(timer>=1){
|
|
|
+ timer --
|
|
|
+ }else{
|
|
|
+ clearInterval(tim)
|
|
|
+ }
|
|
|
+
|
|
|
+ let hour = parseInt(timer/3600) > 9 ? parseInt(timer/3600) : '0' + parseInt(timer/3600)
|
|
|
+ let min = parseInt(timer / 60 % 60) > 9 ? parseInt(timer / 60 % 60) : '0' + parseInt(timer / 60 % 60)
|
|
|
+ let sec = parseInt(timer % 60) > 9 ? parseInt(timer % 60) : '0' + parseInt(timer % 60)
|
|
|
+
|
|
|
+ date = hour + ':' + min + ':' + sec;
|
|
|
+ this.timer = date
|
|
|
+ },999)
|
|
|
+ },
|
|
|
+ // 签到
|
|
|
+ setSignIn:function(){
|
|
|
+ let that = this;
|
|
|
+ post("ShuZiTeaIntegral/integral/reportNew",{
|
|
|
+ userId: 2064
|
|
|
+ }).then(res => {
|
|
|
+ if(res.status == 200){
|
|
|
+ console.log(res)
|
|
|
+ appEv.errTips(res.msg)
|
|
|
+ that.loadData()
|
|
|
+ }else{
|
|
|
+ appEv.errTips(res.msg)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 获取积分兑好礼商品列表
|
|
|
+ getInteGoods:function(){
|
|
|
+ let that = this;
|
|
|
+ let data = {
|
|
|
+ page:1,
|
|
|
+ limit:3
|
|
|
+ }
|
|
|
+ post("ShuZiTeaIntegral/integral/goods",data).then(res => {
|
|
|
+ if(res.status == 200){
|
|
|
+ that.list = res.goods
|
|
|
+ }else{
|
|
|
+ appEv.errTips(res.msg)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 获取精品推荐
|
|
|
+ goodsDay:function(){
|
|
|
+ let that = this;
|
|
|
+ let data = {
|
|
|
+ page: page,
|
|
|
+ limit: 10
|
|
|
+ }
|
|
|
+ post("/ShuZiTeaIntegral/integral/goodsDay",data).then(res => {
|
|
|
+ if(res.status == 200){
|
|
|
+ let obj = res.goods
|
|
|
+ that.goods = []
|
|
|
+ if(obj.length>0){
|
|
|
+ for(var i in obj){
|
|
|
+ that.goods.push(obj[i])
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ if(page == 1){
|
|
|
+ that.haveGoods = true
|
|
|
+ page = -1
|
|
|
+ }else{
|
|
|
+ page = -1
|
|
|
+ appEv.errTips('暂无更多')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ if(page == 1){
|
|
|
+ that.haveGoods = true
|
|
|
+ page = -1
|
|
|
+ }else{
|
|
|
+ page = -1
|
|
|
+ appEv.errTips('暂无更多')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 获取兑换方式
|
|
|
+ integralMethodChange:function(){
|
|
|
+ let that = this;
|
|
|
+ post("ShuZiTeaIntegral/integral/integralMethodChange").then(res => {
|
|
|
+ if(res.status == 200){
|
|
|
+ that.way_list = res.data
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 更改方式
|
|
|
+ setCurrent:function(e){
|
|
|
+ this.currrent = e;
|
|
|
+ this.pay_way = '';
|
|
|
+ this.isShow = false;
|
|
|
+ },
|
|
|
+ // 更改支付方式
|
|
|
+ setPayWay:function(e){
|
|
|
+ this.pay_way = e;
|
|
|
+ },
|
|
|
+ // 确认兑换
|
|
|
+ confimConver:function(){
|
|
|
+ let that = this;
|
|
|
+ let isShow = this.isShow;
|
|
|
+ let pay_way = this.pay_way;
|
|
|
+ let checked = this.checked;
|
|
|
+ let currrent = this.currrent;
|
|
|
+ if(currrent === ''){
|
|
|
+ appEv.errTips('请选择兑换方式')
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(isShow && pay_way === ''){
|
|
|
+ appEv.errTips('请选择支付方式')
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(!checked){
|
|
|
+ appEv.errTips('请阅读并同意购买协议')
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ let data = {
|
|
|
+ goodsId:this.goodsId,
|
|
|
+ xyType:1,
|
|
|
+ integralType:this.way_list[this.currrent].type,
|
|
|
+ count:1
|
|
|
+ }
|
|
|
+ if(isShow){
|
|
|
+ data.jeType = this.pay_way == 0 ? 4 : 5
|
|
|
+ }else{
|
|
|
+ data.jeType = 3
|
|
|
+ }
|
|
|
+
|
|
|
+ const info = reqApi.integralClickExchange(data)
|
|
|
+ if(info){
|
|
|
+ info.then(res => {
|
|
|
+ if(res.status == 200){
|
|
|
+ appEv.errTips(res.msg)
|
|
|
+ let goodsId = that.goodsId;
|
|
|
+ let count = 1;
|
|
|
+ let goodsType = 5;
|
|
|
+ let ojsType = 1;
|
|
|
+ let payType = !isShow ? 3 : isShow && pay_way == 0 ? 4 : isShow && pay_way == 1 ? 5 : isShow && that.way_list[that.currrent].Integral == 0 ? 6 : ''
|
|
|
+ setTimeout(() => {
|
|
|
+ uni.navigateTo({
|
|
|
+ url:'/pages/to-pay-list/index?goodsId=' + goodsId + "&count=" + count + '&goodsType=' + goodsType + '&ojsType=' + ojsType + '&payType=' + payType
|
|
|
+ })
|
|
|
+ },800)
|
|
|
+ }else{
|
|
|
+ appEv.errTips(res.msg)
|
|
|
+ that.isShow = true;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 更改协议选中情况
|
|
|
+ checkboxChange:function(e){
|
|
|
+ let index = e.detail.value.indexOf('1');
|
|
|
+ if(index != -1){
|
|
|
+ this.checked = true
|
|
|
+ }else{
|
|
|
+ this.checked = false
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 点击立即兑换打开弹窗
|
|
|
+ openConversion:function(e){
|
|
|
+ this.goodsId = e
|
|
|
+ this.$refs.conversion.open()
|
|
|
+ },
|
|
|
+ // 关闭立即兑换弹窗
|
|
|
+ closePopup:function(){
|
|
|
+ this.$refs.conversion.close()
|
|
|
+ },
|
|
|
+ // 跳转到积分明细列表
|
|
|
+ NavToSignList:function(){
|
|
|
+ uni.navigateTo({
|
|
|
+ url:'/pages/sign-list/index'
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 跳转到积分列表页面
|
|
|
+ goToIntegralList:function(){
|
|
|
+ uni.navigateTo({
|
|
|
+ url:'/pages/integral-list/index'
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getProPage:function(){
|
|
|
+ uni.navigateTo({
|
|
|
+ url:'/pages/protocol/index?type=' + 4
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
</script>
|
|
|
-<style scoped lang='scss'>
|
|
|
-</style>
|
|
|
+
|
|
|
+<style lang="scss">
|
|
|
+// 页面配置
|
|
|
+page{background: #f5f5f5;}
|
|
|
+.container{padding:var(--status-bar-height) 30rpx 30rpx;box-sizing: border-box;background: url('https://tea.soowin.com/mnt/image/sign_back.png');background-repeat: no-repeat;background-size: 100% 427rpx;}
|
|
|
+// 页面配置-end
|
|
|
+
|
|
|
+// 页面标题
|
|
|
+.pageTitle{font-size: 28rpx;color:#fff;height: 64rpx;}
|
|
|
+// 页面标题-end
|
|
|
+
|
|
|
+// 用户信息
|
|
|
+.userinfo{
|
|
|
+ width: 100%;
|
|
|
+ // margin-top: 24rpx;
|
|
|
+ position: relative;
|
|
|
+}
|
|
|
+.user_img{width: 101.5rpx;height: 101.5rpx;margin-right: 20rpx;border-radius: 50%;}
|
|
|
+.level{background: rgba(0,0,0,.18);padding:6rpx 24rpx;font-size: 24rpx;color:#fff;border-radius: 100rpx;}
|
|
|
+.user_name{font-size: 30rpx;color:#fff;font-family: "SourceHanSansSC-Medium";font-weight: 500;margin-bottom: 18rpx;line-height: 1;}
|
|
|
+.record{width: 136rpx;height: 54rpx;background: rgba(0,0,0,.18);color:#fff;font-size: 24rpx;border-radius: 27rpx 0 0 27rpx;position: absolute;bottom:calc(50% - 27rpx);right:-30rpx;}
|
|
|
+// 用户信息-end
|
|
|
+
|
|
|
+// 签到信息
|
|
|
+.info{width: 100%;overflow: hidden;}
|
|
|
+.info_text{font-size: 24rpx;color:#404040;}
|
|
|
+.info_con{width: 185rpx;height: 185rpx;position: relative;}
|
|
|
+.info_img{width: 100%;height: 185rpx;animation: myfirst 1s infinite;}
|
|
|
+.info_texts{width:100%;height: 100%;position: absolute;top: 0;left: 0;}
|
|
|
+.today_text{font-family: "SourceHanSansCN-Medium";font-size: 53rpx;color:#373737;}
|
|
|
+.info_texts text{width: 56rpx;text-align: justify;font-size: 28rpx;color:#12B381;}
|
|
|
+.sign_time text{width: 185rpx;overflow: hidden;font-size: 36rpx;color:#353535;font-family: "SourceHanSansCN-Bold";font-weight: bold;}
|
|
|
+.sign_info{width: 100%;overflow: hidden;background: #fff;border-radius: 16rpx;box-shadow: 0px 3px 0px 0px rgba(16, 178, 127, 0.36), 0px 6px 10px 0px rgba(17, 179, 129, 0.2);padding:24rpx 40rpx;box-sizing: border-box;margin-top: 44rpx;}
|
|
|
+
|
|
|
+.g_color{color:#12B381;}
|
|
|
+.gr_color{color:#999 !important;}
|
|
|
+// 签到信息-end
|
|
|
+
|
|
|
+
|
|
|
+// 动画效果
|
|
|
+@keyframes myfirst
|
|
|
+{
|
|
|
+ 0% {transform: rotate(0);}
|
|
|
+ 10% {transform: rotate(-36deg);}
|
|
|
+ 20% {transform: rotate(-72deg);}
|
|
|
+ 30% {transform: rotate(-108deg);}
|
|
|
+ 40% {transform: rotate(-144deg);}
|
|
|
+ 50% {transform: rotate(-180deg);}
|
|
|
+ 60% {transform: rotate(-216deg);}
|
|
|
+ 70% {transform: rotate(-252deg);}
|
|
|
+ 80% {transform: rotate(-288deg);}
|
|
|
+ 90% {transform: rotate(-324deg);}
|
|
|
+ 100% {transform: rotate(-360deg);}
|
|
|
+}
|
|
|
+// 动画效果-end
|
|
|
+
|
|
|
+// 积分兑好礼
|
|
|
+.more{font-size: 24rpx;color:#313131;}
|
|
|
+.inte_con{width: 100%;overflow: hidden;}
|
|
|
+.goods_price{font-size: 30rpx;color:#F15C21;}
|
|
|
+.inte_goods:nth-last-child(1){margin-right: 0;}
|
|
|
+.goods_price text{font-size: 18rpx;color:#F15C21;}
|
|
|
+.more_img{width: 9rpx;height: 16rpx;margin-left: 10rpx;}
|
|
|
+.goods_img{width: 100%;height: 141rpx;margin-bottom: 16rpx;}
|
|
|
+.goods_name{width: 100%;overflow: hidden;color:#1D1D1D;font-size: 24rpx;}
|
|
|
+.inte_goods{width: calc((100% - 28rpx) / 3);margin-right: 14rpx;overflow: hidden;}
|
|
|
+.inte_title{font-size: 36rpx;color:#2A2A2A;font-family: "SourceHanSansSC-Bold";font-weight: bold;}
|
|
|
+.integral{width: 100%;overflow: hidden;background:#fff;padding: 30rpx;box-sizing: border-box;border-radius: 20rpx;}
|
|
|
+// 积分兑好礼-end
|
|
|
+
|
|
|
+// 精品推荐
|
|
|
+.bou_img{width: 89rpx;height: 30rpx;}
|
|
|
+.bou_head{width: 100%;height: 114rpx;}
|
|
|
+.bou_con{width: 100%;overflow: hidden;}
|
|
|
+.Boutique{width: 100%;overflow: hidden;}
|
|
|
+.bou_list:nth-child(2n){margin-right: 0;}
|
|
|
+.bou_l_info{width: 100%;overflow: hidden;}
|
|
|
+.bou_l_img{width: 100%;height: 238rpx;display: block;}
|
|
|
+.bou_l_price text{font-size: 24rpx;color:#F15C21;line-height: 1;}
|
|
|
+.bou_l_name{width: 100%;overflow: hidden;font-size: 28rpx;color:#121212;}
|
|
|
+.bou_l_con{width: 100%;overflow: hidden;padding: 20rpx;box-sizing: border-box;}
|
|
|
+.bou_l_msg{width: 100%;overflow: hidden;font-size: 22rpx;color:#F15C21;margin-top: 10rpx;}
|
|
|
+.bou_l_cost{font-size: 24rpx;color:#CCCCCC;text-decoration: line-through;line-height: 1;margin-left: 11rpx;}
|
|
|
+.bou_l_price{font-size: 32rpx;color:#F15C21;font-size:"SourceHanSansSC-Bold";font-weight: bold;line-height: 1;}
|
|
|
+.bou_title{font-size: 36rpx;color:#121212;font-family: "SourceHanSansSC-Bold";font-weight: bold;margin: 0 49rpx;}
|
|
|
+.bou_list{width: calc((100% - 10rpx) / 2);margin-right: 10rpx;margin-bottom: 30rpx;background: #fff;border-radius: 6rpx;overflow: hidden;}
|
|
|
+// 精品推荐-end
|
|
|
+
|
|
|
+
|
|
|
+// 兑换弹窗
|
|
|
+.option_box{font-size: 26rpx;}
|
|
|
+.option_box text{color:#2DB389;}
|
|
|
+.hint{font-size: 20rpx;color:#D54912;}
|
|
|
+.pay_way{width: 100%;overflow: hidden;}
|
|
|
+.frist_list{width: 50%;overflow: hidden;}
|
|
|
+.surplus{font-size: 22rpx;color:#A8A8A8;}
|
|
|
+.frist_text{font-size: 28rpx;color:#302F2F;}
|
|
|
+.frist_img{width: 35rpx;height: 35rpx;margin-right: 32rpx;}
|
|
|
+.frist_info{width: 100%;overflow: hidden;align-items: initial;}
|
|
|
+.closePopup{width: 42rpx;height: 42rpx;position: absolute;right: 0;top: -65rpx;}
|
|
|
+.const_con{width: 689rpx;border-radius: 10rpx;background: #fff;position: relative;}
|
|
|
+.const_info{width: 100%;overflow: hidden;padding:30rpx 50rpx;box-sizing: border-box;}
|
|
|
+.const_head{width: 100%;height: 97rpx;border-bottom:3rpx solid rgba(0,0,0,.15);font-size: 40rpx;color:#1BBD89;font-family: "SourceHanSansCN-Medium";}
|
|
|
+.conversion{width: 269rpx;height: 68rpx;background: #1BBE8A;font-family: "SourceHanSansCN-Medium";color:#fff;font-size: 32rpx;border-radius: 34rpx;margin: 40rpx auto 0;}
|
|
|
+// 兑换弹窗-end
|
|
|
+</style>
|