798 lines
25 KiB
Vue
798 lines
25 KiB
Vue
<template>
|
||
<view>
|
||
<!-- 按钮 -->
|
||
<view class="newrightsBtn" @click="payment">
|
||
<view class="rightsBtn-text">
|
||
<view class="rightsBtn-text-num">共:{{rightData.num}}件商品 </view>
|
||
<view>实付:<text>¥{{rightData.total}}</text></view>
|
||
</view>
|
||
<button :disabled="disabled">立即购买</button>
|
||
</view>
|
||
|
||
<!-- 重要提示 -->
|
||
<view class="rightsPoint">
|
||
<view class="rightsPoint-cont">
|
||
<view class="rightsPoint-top">
|
||
<image src="/static/icon/Point_icon.png"></image>
|
||
<text>重要提示</text>
|
||
</view>
|
||
<view class="rightsPoint-text" :class="{active : pointMoreShow}">
|
||
<rich-text :nodes="notice.notification"></rich-text>
|
||
</view>
|
||
<view class="pointMore" bindtap="pointMoreTap">
|
||
<text>{{pointMoreShow == true ? '收起' : '展开'}}</text>
|
||
<image :src="pointMoreShow == true ? '/static/img/pointMore-up.png' : '/static/img/pointMore.png'">
|
||
</image>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 卡券 -->
|
||
<view style="padding-bottom: 220px">
|
||
<view class="cont">
|
||
<view class="contBack">
|
||
<image class="classBack" src="https://card.ysd-bs.com/storage/materials/2022/05/13/class_back_02.png" mode="scaleToFill"></image>
|
||
<view class="classCircle"></view>
|
||
<view class="rightsCont">
|
||
<scroll-view scroll-x class="welfareCont-top" scroll-with-animation>
|
||
<view class="welfareCont-list-img" v-for="(item, index) in rightData.detail.logos" :key="index">
|
||
<image :src="item" mode="aspectFill"></image>
|
||
</view>
|
||
</scroll-view>
|
||
<view class="nowrap rightsCont-btn">
|
||
{{rightData.detail.title}}
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 数量 -->
|
||
<view class="rightsNumber">
|
||
<image class="rightsGoods-img" :src="rightData.detail.goods_cover" mode="widthFix"></image>
|
||
<view class="rightsGoods">
|
||
<view class="nowrap rightsGoods-text">
|
||
{{ rightData.detail.title }}
|
||
</view>
|
||
<view class="rightsGoods-price">
|
||
<view class="rightsGoods-number">¥{{ rightData.detail.amount }}</view>
|
||
<!-- <view class="rightsAdd">
|
||
<view class="rightsAdd-btn rightsAdd-remove" :class="{active : rightData.num != 1}" @click="goodsNumber('remove')">-</view>
|
||
<input class="rightsAdd-input" :data-num="rightData.num" :value="rightData.num" type="number" disabled=""></input>
|
||
<view class="rightsAdd-btn rightsAdd-plus" :class="{active : rightData.num != 1}">+</view>
|
||
</view> -->
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 购买须知 -->
|
||
<view class="notice">
|
||
<view class="noticeTitle" @click="noticeTap">
|
||
<view class="noticeTitle-flex">
|
||
<image class="noticeTitle-img" src="/static/icon/notice_icon.png"></image>
|
||
购买前请仔细阅读使用须知、内容介绍
|
||
</view>
|
||
<image class="noticeTitle-row" :class="{active : notice.noticeShow}" src="/static/icon/rightsArrow.png"></image>
|
||
</view>
|
||
<view class="noticeText" :class="{active : notice.noticeShow}">
|
||
<!-- <view class="noticeText-top">购买须知</view> -->
|
||
<view class="noticeText-cont" v-if="notice.remark">
|
||
<rich-text :nodes="notice.remark"></rich-text>
|
||
</view>
|
||
|
||
<!-- <view class="noticeText-top">内容介绍</view> -->
|
||
<view class="noticeText-cont" v-if="notice.content">
|
||
<rich-text :nodes="notice.content"></rich-text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import { exchangesBuy } from '@/apis/interfaces/draw'
|
||
import { activityBuy } from '@/apis/interfaces/draw'
|
||
import { getAuthUrl, wpayH5Info, h5Pay } from '@/apis/interfaces/rights'
|
||
const jweixin = require('jweixin-module'); //获取微信支付
|
||
export default {
|
||
data() {
|
||
return {
|
||
tradeNo : '' , //订单
|
||
rightData: {
|
||
detail : '', // 权益内容
|
||
logId : '', // 权益id
|
||
addressSee : '', // 收货地址
|
||
num : 1, // 购买数量
|
||
moreAmount : '', // 产品总金额
|
||
freight : '', // 运费
|
||
total : '' // 总金额
|
||
},
|
||
notice : {
|
||
remark : '', // 购买须知
|
||
content : '', // 内容介绍
|
||
noticeShow : true ,// 购买须知状态
|
||
notification: ''
|
||
},
|
||
buyWay : {
|
||
platformCp : [], // 选择提交数组
|
||
platIndex : 0, // 选择提交方式下标
|
||
isdeliver : -1 // 选择提交方式
|
||
},
|
||
address : {
|
||
allAddress : [], // 收货地址列表
|
||
addressShow : false // 地址显示状态
|
||
},
|
||
disabled : false, //购买按钮状态
|
||
pointMoreShow : false,
|
||
}
|
||
},
|
||
|
||
// 生命周期函数--监听页面加载
|
||
onLoad(options) {
|
||
this.rightData.logId = options.luck_id
|
||
// 判断是否微信授权登录过 只有外部游览器才用到(支付需要授权微信环境)
|
||
let status = navigator.userAgent.toLowerCase();
|
||
if (status.match(/MicroMessenger/i) == "micromessenger" && !options.code) {
|
||
let locationUrl = window.location.pathname.substr(1) + window.location.search
|
||
getAuthUrl(locationUrl).then(res=> {
|
||
window.location.href = res
|
||
})
|
||
}
|
||
this.openid = options.openid || ''
|
||
this.code = options.code || '' //用code换取oppid
|
||
},
|
||
|
||
// 生命周期函数--监听页面显示
|
||
onShow() {
|
||
// 存储环境-抽奖活动
|
||
getApp().globalData.envType = 'drawEnv'
|
||
|
||
// 获取详情
|
||
this.rightsInfo();
|
||
},
|
||
methods: {
|
||
// 详情
|
||
rightsInfo() {
|
||
activityBuy({activity_exchange_log_id: this.rightData.logId, qty: 1}).then(res => {
|
||
this.rightData.detail = res.detail
|
||
this.rightData.moreAmount = res.amount
|
||
this.rightData.total = res.total
|
||
this.rightData.freight = res.freight
|
||
this.rightData.addressSee = res.address
|
||
this.address.allAddress = res.all_address
|
||
this.notice.remark = res.detail.remark.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:block;"')
|
||
this.notice.content = res.detail.content.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:block;"')
|
||
this.notice.notification = res.detail.notification.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:block;"')
|
||
}).catch(err => {})
|
||
},
|
||
|
||
// 须知展开收起状态
|
||
noticeTap() {
|
||
this.notice.noticeShow = !this.notice.noticeShow
|
||
},
|
||
|
||
// 收银台跳转
|
||
payment() {
|
||
exchangesBuy({
|
||
name : '',
|
||
mobile : '',
|
||
address : '',
|
||
activity_exchange_item_goods_id: '',
|
||
activity_exchange_log_id: this.rightData.logId,
|
||
qty : 1
|
||
}).then(res=>{
|
||
this.tradeNo = res.trade_no
|
||
this.wxBrowser()
|
||
}).catch(err => {
|
||
uni.showToast({
|
||
title: err.message,
|
||
icon: 'none'
|
||
})
|
||
});
|
||
},
|
||
|
||
// 当支付环境为微信游览器情况下
|
||
wxBrowser() {
|
||
wpayH5Info({
|
||
url: location.href.split('#')[0],
|
||
list:'chooseWXPay'
|
||
}).then(wechatConfig => {
|
||
let wxConfig = JSON.parse(wechatConfig)
|
||
jweixin.config({
|
||
appId: wxConfig.appId,
|
||
debug: false,
|
||
jsApiList: wxConfig.jsApiList,
|
||
signature: wxConfig.signature,
|
||
nonceStr: wxConfig.nonceStr,
|
||
timestamp: wxConfig.timestamp
|
||
})
|
||
jweixin.ready(() => {
|
||
let wechaUrl = 'payments/wechat'
|
||
h5Pay(wechaUrl, {
|
||
channel: 'h5',
|
||
trade_no: this.tradeNo,
|
||
code: this.code
|
||
}).then(wechatRes => {
|
||
let wechatPay = JSON.parse(wechatRes)
|
||
jweixin.chooseWXPay({
|
||
timestamp: wechatPay.timeStamp,
|
||
nonceStr: wechatPay.nonceStr,
|
||
package: wechatPay.package,
|
||
signType: wechatPay.signType,
|
||
paySign: wechatPay.paySign,
|
||
success: payRes => {
|
||
// 支付成功
|
||
uni.redirectTo({
|
||
url: 'order?type=paid'
|
||
})
|
||
},
|
||
cancel: () =>{
|
||
// 取消支付
|
||
uni.redirectTo({
|
||
url: 'order?type=unpay'
|
||
})
|
||
}
|
||
})
|
||
})
|
||
})
|
||
}).catch(err => {
|
||
uni.showToast({
|
||
title: err.message,
|
||
icon: 'none'
|
||
})
|
||
if (!err.login) {
|
||
uni.reLaunch({
|
||
url: '/pages/draw/signin'
|
||
});
|
||
}
|
||
})
|
||
},
|
||
|
||
/**
|
||
* 重要提示显示
|
||
*/
|
||
pointMoreTap() {
|
||
this.pointMoreShow = !this.pointMoreShow
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss" scoped>
|
||
page {
|
||
background-color: #eeeeee;
|
||
}
|
||
|
||
/* 权益内容 */
|
||
.cont {
|
||
width: 100%;
|
||
overflow: hidden;
|
||
.contBack {
|
||
position: relative;
|
||
width: 200%;
|
||
height: 340rpx;
|
||
left: -50%;
|
||
text-align: center;
|
||
background: #000000;
|
||
border-radius: 0 0 100% 100%;
|
||
overflow: hidden;
|
||
.classBack {
|
||
position: absolute;
|
||
left: 28%;
|
||
right: 30%;
|
||
width: 44%;
|
||
top: 40rpx;
|
||
}
|
||
}
|
||
.classCircle::after,
|
||
.contBack::before {
|
||
position: absolute;
|
||
border-radius: 50%;
|
||
content: '';
|
||
z-index: 1;
|
||
background-color: rgba(255,255,255,.1);
|
||
}
|
||
.classCircle::after {
|
||
left: 20%;
|
||
top: -20rpx;
|
||
width: 260rpx;
|
||
height: 260rpx;
|
||
}
|
||
.contBack::before {
|
||
right: 20%;
|
||
top: 55%;
|
||
width: 300rpx;
|
||
height: 300rpx;
|
||
}
|
||
.rightsCont {
|
||
position: absolute;
|
||
z-index: 3;
|
||
left: calc(28% - 2rpx);
|
||
right: calc(30% - 2rpx);
|
||
width: calc(44% + 4rpx);
|
||
top: 50rpx;
|
||
.welfareCont-top{
|
||
white-space: nowrap;
|
||
flex-direction: row;
|
||
align-items: center;
|
||
justify-content: space-around;
|
||
width: 100%;
|
||
padding: 0 10rpx;
|
||
box-sizing: border-box;
|
||
margin: 50rpx 0 20rpx;
|
||
height: 120rpx;
|
||
.welfareCont-list-img {
|
||
border-radius: 50%;
|
||
width: 120rpx;
|
||
height: 120rpx;
|
||
display: inline-block;
|
||
margin: 0 15rpx;
|
||
overflow: hidden;
|
||
image {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
}
|
||
}
|
||
.rightsCont-btn {
|
||
background: rgba(255, 255, 0255, .4);
|
||
width: 100%;
|
||
line-height: 70rpx;
|
||
font-size: 40rpx;
|
||
font-weight: 600;
|
||
color: #000000;
|
||
padding: 0 20rpx;
|
||
box-sizing: border-box;
|
||
}
|
||
}
|
||
}
|
||
|
||
// 数量
|
||
.rightsNumber {
|
||
background-color: #ffffff;
|
||
position: relative;
|
||
padding: 40rpx;
|
||
box-sizing: border-box;
|
||
.rightsGoods-img {
|
||
width: 160rpx;
|
||
height: 160rpx;
|
||
border-radius: 10rpx;
|
||
}
|
||
.rightsGoods {
|
||
position: absolute;
|
||
left: 0;
|
||
top: 0;
|
||
width: 100%;
|
||
padding: 60rpx 40rpx 0 230rpx;
|
||
box-sizing: border-box;
|
||
.rightsGoods-text {
|
||
font-size: 36rpx;
|
||
margin-bottom: 35rpx;
|
||
font-weight: 600;
|
||
}
|
||
.rightsGoods-price {
|
||
display: flex;
|
||
.rightsGoods-number {
|
||
flex: 1;
|
||
font-size: 34rpx;
|
||
text {
|
||
font-size: 28rpx;
|
||
}
|
||
}
|
||
.rightsAdd {
|
||
display: flex;
|
||
.rightsAdd-btn {
|
||
border-radius: 4rpx;
|
||
text-align: center;
|
||
width: 50rpx;
|
||
height: 50rpx;
|
||
line-height: 45rpx;
|
||
font-size: 40rpx;
|
||
font-weight: 600;
|
||
}
|
||
.rightsAdd-remove {
|
||
background: #f8f8f8;
|
||
color: #d9d9d9;
|
||
}
|
||
.rightsAdd-remove.active,
|
||
.rightsAdd-plus {
|
||
background: #e8e4e5;
|
||
color: #6b6768;
|
||
}
|
||
.rightsAdd-input {
|
||
width: 100rpx;
|
||
text-align: center;
|
||
font-size: 28rpx;
|
||
line-height: 50rpx;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
// 地址
|
||
.rightsList,
|
||
.notice,
|
||
.detailsStore {
|
||
background: white;
|
||
padding: 10rpx 0;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.rightsLabel,
|
||
.rightsLabel-pay {
|
||
display: flex;
|
||
padding: 20rpx 40rpx;
|
||
color: #6c6c6c;
|
||
font-weight: 600;
|
||
font-size: 30rpx;
|
||
}
|
||
|
||
.rightsLabel-left {
|
||
flex: 1;
|
||
color: #747d86;
|
||
.rightsLabel-row {
|
||
width: 42rpx;
|
||
height: 42rpx;
|
||
}
|
||
}
|
||
|
||
.rightsLabel-range {
|
||
display: flex;
|
||
color: #000;
|
||
font-weight: 600;
|
||
}
|
||
|
||
.rightsLabel-address {
|
||
display: flex;
|
||
position: relative;
|
||
margin: 10rpx 0;
|
||
padding: 25rpx 40rpx;
|
||
&::after,
|
||
&::before {
|
||
position: absolute;
|
||
content: '';
|
||
left: 30rpx;
|
||
width: calc(100% - 60rpx);
|
||
height: 2rpx;
|
||
background-color: #bfbfbf;
|
||
}
|
||
&::after {
|
||
top: 0;
|
||
}
|
||
&::before {
|
||
bottom: 0;
|
||
}
|
||
.rightsLabel-row {
|
||
margin-top: 30rpx;
|
||
}
|
||
|
||
.rightsLabel-icon {
|
||
width: 70rpx;
|
||
height: 70rpx;
|
||
margin-top: 14rpx;
|
||
}
|
||
.rightsLabel-right {
|
||
width: calc(100% - 80rpx);
|
||
margin-left: 10rpx;
|
||
display: flex;
|
||
font-size: 28rpx;
|
||
.rightsLabel-address-text {
|
||
flex: 1;
|
||
color: #000000;
|
||
.rightsLabel-address-name {
|
||
display: flex;
|
||
font-size: 32rpx;
|
||
margin-bottom: 10rpx;
|
||
.rightsLabel-address-tel {
|
||
padding-left: 30rpx;
|
||
color: #959595;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
.rightsLabel-row {
|
||
width: 42rpx;
|
||
height: 42rpx;
|
||
margin: 0 0 0 6rpx;
|
||
}
|
||
|
||
// 购买须知
|
||
.notice {
|
||
background: white;
|
||
padding: 30rpx 20rpx;
|
||
box-sizing: border-box;
|
||
.noticeTitle {
|
||
display: flex;
|
||
.noticeTitle-flex {
|
||
flex: 1;
|
||
display: flex;
|
||
font-size: 30rpx;
|
||
line-height: 46rpx;
|
||
.noticeTitle-img {
|
||
width: 46rpx;
|
||
height: 46rpx;
|
||
margin-right: 20rpx;
|
||
}
|
||
}
|
||
.noticeTitle-row {
|
||
width: 46rpx;
|
||
height: 46rpx;
|
||
&.active {
|
||
transform: rotate(90deg);
|
||
}
|
||
}
|
||
}
|
||
.noticeText {
|
||
font-size: 26rpx;
|
||
height: 0;
|
||
overflow: hidden;
|
||
&.active {
|
||
height: auto;
|
||
}
|
||
.noticeText-top {
|
||
margin: 30rpx 0 10rpx;
|
||
font-weight: 600;
|
||
}
|
||
.noticeText-cont {
|
||
line-height: 60rpx;
|
||
}
|
||
}
|
||
}
|
||
|
||
.newrightsBtn {
|
||
position: fixed;
|
||
bottom: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 160rpx;
|
||
z-index: 9;
|
||
background: #fff;
|
||
padding: 30rpx;
|
||
box-sizing: border-box;
|
||
display: flex;
|
||
.rightsBtn-text {
|
||
flex: 1;
|
||
font-weight: 600;
|
||
font-size: 30rpx;
|
||
.rightsBtn-text-num {
|
||
font-size: 30rpx;
|
||
margin-bottom: 10rpx;
|
||
}
|
||
text {
|
||
font-size: 38rpx;
|
||
color: #fe2d55;
|
||
}
|
||
}
|
||
button {
|
||
width: 280rpx !important;
|
||
background-color: #000000;
|
||
color: #ffffff;
|
||
border-radius: 80rpx;
|
||
height: 100rpx;
|
||
line-height: 100rpx;
|
||
padding: 0;
|
||
margin: 0;
|
||
}
|
||
}
|
||
|
||
// 选择收货地址
|
||
.addressBack {
|
||
position: fixed;
|
||
left: 0;
|
||
bottom: 0;
|
||
background: rgba(0, 0, 0, .4);
|
||
z-index: 10;
|
||
width: 100%;
|
||
height: 100%;
|
||
display: none;
|
||
&.active {
|
||
display: block;
|
||
}
|
||
}
|
||
.addressCont {
|
||
position: fixed;
|
||
left: 0;
|
||
bottom: -1000%;
|
||
transition: .2s;
|
||
background: #fff;
|
||
z-index: 11;
|
||
width: 100%;
|
||
&.active {
|
||
bottom: 0;
|
||
}
|
||
.addressCont-title {
|
||
height: 90rpx;
|
||
line-height: 90rpx;
|
||
display: flex;
|
||
padding: 0 30rpx;
|
||
box-sizing: border-box;
|
||
font-size: 28rpx;
|
||
font-weight: 600;
|
||
position: relative;
|
||
&::after {
|
||
position: absolute;
|
||
content: '';
|
||
top: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 2rpx;
|
||
background: #f3f3f3;
|
||
}
|
||
.addressCont-left {
|
||
flex: 1;
|
||
}
|
||
.addressCont-right {
|
||
color: #309ded;
|
||
}
|
||
}
|
||
.header-classify {
|
||
white-space: nowrap;
|
||
box-sizing: border-box;
|
||
height: 600rpx;
|
||
.addressCont-list {
|
||
padding: 30rpx 20rpx;
|
||
box-sizing: border-box;
|
||
font-size: 30rpx;
|
||
overflow: hidden;
|
||
position: relative;
|
||
&::after {
|
||
position: absolute;
|
||
content: '';
|
||
left: 0;
|
||
bottom: 0;
|
||
width: 100%;
|
||
height: 2rpx;
|
||
background: #f3f3f3;
|
||
}
|
||
.addressCont-top {
|
||
display: flex;
|
||
margin-bottom: 10rpx;
|
||
.addressCont-name {
|
||
font-weight: 600;
|
||
}
|
||
}
|
||
.addressCont-text {
|
||
color: #666;
|
||
width: calc(100% - 160rpx);
|
||
}
|
||
.address-tool-icon {
|
||
width: 120rpx;
|
||
height: 54rpx;
|
||
line-height: 54rpx;
|
||
border-radius: 4rpx;
|
||
text-align: center;
|
||
color: #fff;
|
||
position: absolute;
|
||
top: 45rpx;
|
||
right: 10rpx;
|
||
background: #dfae2e;
|
||
transform: scale(.9, .9);
|
||
font-size: 24rpx;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
.rightsPoint {
|
||
position: fixed;
|
||
left: 0;
|
||
bottom: 160rpx;
|
||
background: #eeeeee;
|
||
z-index: 9;
|
||
width: 100%;
|
||
padding: 20rpx 20rpx 10rpx;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.rightsPoint-cont {
|
||
width: 100%;
|
||
background: #eeeeee;
|
||
border-radius: 10rpx;
|
||
position: relative;
|
||
max-height: 50vh;
|
||
overflow-y: scroll;
|
||
}
|
||
|
||
.rightsPoint-top {
|
||
font-size: 28rpx;
|
||
display: flex;
|
||
padding: 0 20rpx 20rpx;
|
||
box-sizing: border-box;
|
||
font-weight: 600;
|
||
}
|
||
|
||
.rightsPoint-top image {
|
||
width: 36rpx;
|
||
height: 36rpx;
|
||
margin-right: 10rpx;
|
||
}
|
||
|
||
.rightsPoint-text {
|
||
padding: 0 20rpx;
|
||
box-sizing: border-box;
|
||
font-size: 24rpx;
|
||
line-height: 44rpx;
|
||
height: 90rpx;
|
||
transition: height 25s;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.rightsPoint-text.active {
|
||
height: auto;
|
||
transition: 2s;
|
||
}
|
||
|
||
.rightsPoint-text view {
|
||
position: relative;
|
||
padding-left: 40rpx;
|
||
}
|
||
|
||
.rightsPoint-text view::after {
|
||
position: absolute;
|
||
content: '';
|
||
left: 10rpx;
|
||
top: 20rpx;
|
||
background: #000;
|
||
width: 10rpx;
|
||
height: 10rpx;
|
||
border-radius: 50%;
|
||
}
|
||
|
||
.rightsPoint-bolck {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
height: calc(100% - 40rpx);
|
||
}
|
||
|
||
|
||
.pointMore {
|
||
text-align: center;
|
||
width: 100%;
|
||
background: #eeeeee;
|
||
height: 80rpx;
|
||
line-height: 82rpx;
|
||
position: relative;
|
||
margin-top: 10rpx;
|
||
}
|
||
|
||
.pointMore::after {
|
||
position: absolute;
|
||
content: '';
|
||
left: 0;
|
||
top: 0;
|
||
width: 100%;
|
||
height: 2rpx;
|
||
background: #f2ecde;
|
||
}
|
||
|
||
.pointMore text {
|
||
font-size: 28rpx;
|
||
color: #c38e00;
|
||
animation: dong 1.8s infinite;
|
||
display: inline-block;
|
||
}
|
||
|
||
.pointMore image {
|
||
width: 30rpx;
|
||
height: 30rpx;
|
||
margin-left: 4rpx;
|
||
vertical-align: -4rpx;
|
||
animation: dong 1.8s infinite;
|
||
}
|
||
@keyframes dong {
|
||
0% {
|
||
transform: translate(0px, 0px);
|
||
}
|
||
|
||
50% {
|
||
transform: translate(0px, -6rpx);
|
||
}
|
||
|
||
100% {
|
||
transform: translate(0px, 0px);
|
||
}
|
||
}
|
||
</style>
|