[本时生活h5端]

This commit is contained in:
2023-06-21 17:19:58 +08:00
commit ebb9575bd0
284 changed files with 39689 additions and 0 deletions

456
pages/frozen/frozen.vue Normal file
View File

@@ -0,0 +1,456 @@
<template>
<view>
<view v-if="frozenData.length > 0">
<view class="grantSwiper">
<swiper class="banner-swiper" @change="monitorCurrent" :current="current">
<swiper-item v-for="(item,index) in frozenData" :key="index">
<view class="banner-height">
<view class="grantTop">
<image class="grantTop-img" src="https://card.ysd-bs.com/storage/materials/2021/09/01/frozen_back.png" mode="scaleToFill"></image>
<view class="grantTop-text">
<image :src="type == 'silver' ? 'https://card.ysd-bs.com/storage/materials/2021/09/01/frozen_identity_00.png' : 'https://card.ysd-bs.com/storage/materials/2021/09/01/frozen_identity_01.png'"></image>
<view class="grantTop-price">
<text>待发放(额度)</text>
<view class="grantTop-price-tips"></view>{{ item.ungrant }}
</view>
</view>
<view class="grantTop-tips">
<view class="grantTop-time">发放周期 {{ item.cycle }}</view>
<view class="grantTop-number">{{ item.num }}</view>
</view>
</view>
<view class="grantTitle">
<view class="nowrap grantTitle-name">{{ item.source.remark }}</view>
<view class="grantTitle-tel">{{ item.mobile }}</view>
</view>
</view>
<view class="grantIssue">
<view class="grantIssue-title">
<view class="grantIssue-title-name">
<image src="https://card.ysd-bs.com/storage/materials/2021/09/01/frozen_icon.png"></image><text>消费红包分期发放</text>
</view>
<view class="grantIssue-title-tips">
应发余额<text>{{ item.variable }}</text>发放期数<text>{{ item.num }}</text>每期发放<text>{{ item.avg }}/</text>
</view>
</view>
<view class="grantIssue-list">
<block v-if="item.items.length > 0">
<view class="grantIssue-label" v-for="(listItem,indexItem) in item.items" :key="indexItem">
<image class="grantIssue-label-img" :class="{active : listItem.status == 0}" src="https://card.ysd-bs.com/storage/materials/2021/09/01/frozen_img.png" mode="scaleToFill"></image>
<view class="grantIssue-label-cont">
<view class="grantIssue-label-left">
<view class="grantIssue-left-top" :class="{active : listItem.status == 0}">
<text>{{listItem.num}}</text></view>
<view class="grantIssue-left-number" :class="{active : listItem.status == 0}">
<text>{{item.items.length}}</text></view>
</view>
<view class="grantIssue-label-center">
<view class="grantIssue-center-top" :class="{active : listItem.status == 0}">
<text>{{listItem.variable}}</text>( 发放额度 )
</view>
<view class="grantIssue-center-time">发放时间{{listItem.start_at}}</view>
</view>
<view class="grantIssue-label-right" :class="{active : listItem.status == 0}">
{{listItem.status_text}}
</view>
</view>
<image class="grantIssue-label-tips" :class="{active : listItem.status == 0}" src="https://card.ysd-bs.com/storage/materials/2021/09/01/frozen_btn.png" mode="scaleToFill">
</image>
</view>
</block>
<!-- 暂无内容 -->
<view class="grantIssue-pack" v-else>
<image src="https://card.ysd-bs.com/storage/materials/2021/09/01/Account_icon_tips.png"></image>
<view>抱歉目前发放期数~</view>
</view>
</view>
</view>
</swiper-item>
</swiper>
</view>
<view class="frozenArrow">
<view class="frozenArrow-left" v-if="current != 0">
<image src="/static/icon/frozen_arrow.png"></image>
返回上一个权益
</view>
<view class="frozenArrow-right" v-if="current == 0 || frozenData[frozenData.length - 1] > 0">
<image src="/static/icon/frozen_arrow.png"></image>
查看下一个权益
</view>
</view>
<!-- 自定义轮播图进度点 -->
<view class="dots">
<block v-for="(item,index) in frozenData" :key="index">
<view :class="{active : index == current}"></view>
</block>
</view>
</view>
<!-- 暂无内容 -->
<view class="no-pack-center pack-center pages-hint" wx:else>
<image src="https://card.ysd-bs.com/storage/materials/2021/09/01/Account_icon.png"></image>
<view>抱歉目前暂无内容~</view>
</view>
</view>
</template>
<script>
import { ungrants } from '@/apis/interfaces/user'
export default {
data() {
return {
current : 0, // 轮播标
type : '', // 类型
frozenData : [], // 数组列表
blockeds : '', // 待发放金额
}
},
onLoad(options) {
this.type = options.type,
this.blockeds = options.blockeds
// 获取冻结列表
this.frozenInfo()
},
methods:{
// 冻结列表
frozenInfo() {
ungrants(this.type).then(res=>{
this.frozenData = res
})
},
// 轮播滑动
monitorCurrent(e) {
this.current = e.detail.current
}
}
}
</script>
<style lang="scss" scoped>
page,
.no-pack-center {
background-image: linear-gradient(to bottom, #24315d, #24315d);
}
.no-pack-center {
color: #fff;
}
.grantSwiper {
width: 100%;
height: 100vh;
padding: 0 40rpx;
box-sizing: border-box;
.banner-swiper {
height: 100vh;
overflow: hidden;
swiper-item {
padding: 0 20rpx;
box-sizing: border-box;
}
.banner-height {
height: 460rpx;
margin-top: 30rpx;
.grantTop {
position: relative;
width: 100%;
height: 300rpx;
color: #ffdf95;
.grantTop-img {
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
}
.grantTop-text,
.grantTop-tips {
position: absolute;
z-index: 9;
left: 0;
width: 100%;
}
.grantTop-text {
top: 0;
padding: 40rpx 60rpx;
box-sizing: border-box;
image {
width: 120rpx;
height: 40rpx;
}
.grantTop-price {
text-align: center;
font-size: 60rpx;
text {
font-size: 30rpx;
display: block;
color: #fff;
}
.grantTop-price-tips {
display: inline-block;
font-size: 40rpx;
}
}
}
.grantTop-tips {
bottom: 0;
font-size: 26rpx;
display: flex;
line-height: 70rpx;
height: 70rpx;
padding: 0 20rpx;
box-sizing: border-box;
.grantTop-time {
flex: 1;
}
}
}
.grantTitle {
background-color: #3d4963;
border-radius: 15rpx;
margin: 40rpx 0;
width: 100%;
display: flex;
color: #d3d5e1;
height: 90rpx;
overflow: hidden;
.grantTitle-name,
.grantTitle-tel {
box-sizing: border-box;
height: 90rpx;
line-height: 90rpx;
font-size: 30rpx;
}
.grantTitle-name {
padding-left: 20rpx;
font-weight: 600;
background-image:-webkit-linear-gradient(left,#fbdebe,#e5ad7a);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
flex: 1;
}
.grantTitle-tel {
padding: 0 30rpx 0 20rpx;
background-color: #192845;
position: relative;
&::after {
position: absolute;
content: '';
left: -20rpx;
top: 0;
width:0;
height:0;
border-left: 20rpx solid transparent;
border-right: 20rpx solid transparent;
border-bottom: 90rpx solid #192845;
}
}
}
}
.grantIssue {
height: calc(100vh - 550rpx);
.grantIssue-title {
height: 120rpx;
.grantIssue-title-name {
line-height: 44rpx;
display: flex;
image {
width: 42rpx;
height: 42rpx;
margin-right: 20rpx;
}
text {
font-weight: 600;
font-size: 32rpx;
background-image:-webkit-linear-gradient(left,#fbdebe,#e5ad7a);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
}
}
.grantIssue-title-tips {
font-size: 26rpx;
margin: 10rpx 0 30rpx;
color: #d2d6e2;
text {
color: #dcbc8d;
}
}
}
.grantIssue-list {
overflow-y: scroll;
height: calc(100% - 140rpx);
.grantIssue-label {
position: relative;
height: 180rpx;
margin-bottom: 30rpx;
border-radius: 10rpx;
overflow: hidden;
background-color: #f9dabb;
.grantIssue-label-img {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
}
.grantIssue-label-tips {
position: absolute;
width: 140rpx;
height: 100%;
right: 0;
top: 0;
}
.grantIssue-label-img.active,
.grantIssue-label-tips.active {
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
filter: grayscale(100%);
filter: gray;
}
.grantIssue-label-cont {
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
z-index: 6;
padding: 20rpx;
box-sizing: border-box;
display: flex;
.grantIssue-label-left {
width: 120rpx;
text-align: center;
margin-top: 20rpx;
.grantIssue-left-top {
color: #e9083d;
font-size: 26rpx;
text {
font-size: 34rpx;
font-weight: 600;
padding: 0 6rpx;
}
}
.grantIssue-left-number {
background:-webkit-linear-gradient(left,#ffdca4,#f8af52);
color: #b13509;
border-radius: 30rpx;
display: inline-block;
font-size: 22rpx;
height: 42rpx;
line-height: 42rpx;
padding: 0 15rpx;
margin-top: 12rpx;
&.active {
background: -webkit-linear-gradient(left,#e2e2e2,#e2e2e2);
color: gray;
}
}
}
.grantIssue-label-center {
width: calc(100% - 240rpx);
margin: 20rpx 20rpx 0 20rpx;
.grantIssue-center-top {
font-size: 26rpx;
color: #0f004a;
font-weight: 600;
margin-bottom: 8rpx;
text {
font-size: 40rpx;
padding-right: 10rpx;
}
}
.grantIssue-center-time {
font-size: 26rpx;
color: #757575;
}
}
.grantIssue-label-right {
width: 80rpx;
font-weight: 600;
text-align: center;
font-size: 26rpx;
color: #3d2a26;
line-height: 140rpx;
}
.grantIssue-left-top.active,
.grantIssue-center-top.active,
.grantIssue-label-right.active {
color: gray;
}
}
}
}
}
}
}
// 滑动箭头
.frozenArrow-left,
.frozenArrow-right {
position: fixed;
z-index: 9;
top: 35%;
width: 40rpx;
height: 40rpx;
text-align: center;
writing-mode:lr-tb;
color: #f0cba8;
font-size: 24rpx;
}
.frozenArrow-left {
left: 8rpx;
-webkit-animation: bounce-left 1s linear infinite;
animation: bounce-left 1s linear infinite;
image {
transform:rotate(180deg);
-moz-transform:rotate(180deg);
-webkit-transform:rotate(180deg);
}
}
.frozenArrow-right {
right: 8rpx;
-webkit-animation: bounce-right 1s linear infinite;
animation: bounce-right 1s linear infinite;
}
@keyframes bounce-left {
25% {transform: translateX(3px);}
50%, 100% {transform: translateX(0);}
75% {transform: translateX(-3px);}
}
@keyframes bounce-right {
25% {transform: translateX(-3px);}
50%, 100% {transform: translateX(0);}
75% {transform: translateX(3px);}
}
.frozenArrow-left image,
.frozenArrow-right image {
width: 24rpx;
height: 24rpx;
}
// 指示点
.dots {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
position: fixed;
bottom: 20rpx;
height: 40rpx;
view {
width: 14rpx;
height: 14rpx;
margin: 0 6rpx;
border-radius: 50%;
background-color: #c5c5c5;
&.active {
width: 24rpx;
border-radius: 40rpx;
background-color: #ffdf95;
}
}
}
</style>