[本时生活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

300
pages/account/account.vue Normal file
View File

@@ -0,0 +1,300 @@
<template>
<view>
<!-- 账户余额 -->
<view class="integra-top">
<view class="integra-name">
<block v-if="balanceType == 'silver'">白金账户余额</block>
<block v-else-if="balanceType == 'drill'">钻石账户余额</block>
</view>
<view class="integra-info">
<view class="integra-right">
<view class="integra-title"><text>可用余额</text><image src="/static/icon/integra_icon00.png"></image></view>
<view class="integra-number">{{ balanceData.number }}</view>
<view class="integra-btn"><text>可用余额入账记录</text></view>
<!-- <navigator class="integra-btn" hover-class="none" url="/pages/account/recharge"><text>立即充值</text><image src="/static/icon/rightsArrow.png"></image></navigator> -->
</view>
<view class="integra-right">
<view class="integra-title"><text>待发放</text><image src="/static/icon/integra_icon01.png"></image></view>
<view class="integra-number">{{ balanceData.blockeds }}</view>
<navigator hover-class="none" :url="'/pages/frozen/frozen?type=' + balanceType + '&blockeds=' + balanceData.blockeds" class="integra-btn integra-blue">立即查询<image src="/static/icon/rightsArrow.png"></image></navigator>
</view>
</view>
</view>
<!-- 账变记录 -->
<view class="integra-cont">
<view class="integra-cont-title">
<view class="integra-cont-name">账变记录</view>
<view class="integra-cont-picker" v-if="balanceData.screenArray[balanceData.screenIndex]">
<picker @change="screenBind" :value="balanceData.screenIndex" :range-key="'name'" :range="balanceData.screenArray">
{{ balanceData.screenArray[balanceData.screenIndex].name }}
</picker>
<image class="integra-cont-icon" src="/static/icon/arrow_down.png"></image>
</view>
</view>
<block v-if="balanceData.accounts.length > 0">
<view class="integra-list" v-for="(item,index) in balanceData.accounts" :key="index">
<view class="integra-text">
<view class="integra-title">
<view class="integra-title-tips" :class="{active : item.channel == 'in'}">{{ item.channel == 'in' ? '入' : '出' }}</view>{{ item.title }}
</view>
<view class="integra-oints" :class="{active : item.channel == 'in'}">
{{ item.variable }}
</view>
</view>
<view class="integra-remark">
{{ item.remark }}
</view>
<view class="integra-date">
<view class="integra-time">
<text>{{ item.channel == 'in' ? '有效期:' : '扣除时间:' }}</text>
{{ item.created_at }}{{ item.channel == 'in' ? ' 至 ' + item.expired_at : '' }}
</view>
</view>
</view>
</block>
<!-- 暂无内容 -->
<view class="pack-center pages-hint" v-else>
<image src="/static/img/null_icon.png"></image>
<view>抱歉目前暂无内容~</view>
</view>
</view>
</view>
</template>
<script>
import { logs } from '@/apis/interfaces/user'
import { create, store } from '@/apis/interfaces/recharge'
export default {
data() {
return {
balanceType : '', // 卡来源-类型
balanceData : {
blockeds : '', // 待发放余额
number : '', // 账户余额
accounts : [], //账户列表
screenChannel : '', //账变记录筛选数组标识
screenIndex : 0, //账变记录筛选index
screenArray : [
{
channel: 'all',
name: '全部'
},
{
channel: 'in',
name: '入账'
},
{
channel: 'out',
name: '出账'
}
]
},
load: {
page : 1, // 第一页
allpage : 0, // 总页数
has_more: false, // 是否有分页
show : false // 是否有下一页数据
},
finished : false, //商品列表没有更多商品是否显示
LoadData : false //数据加载完渲染
}
},
onLoad(options) {
this.balanceType = options.type
},
onShow() {
// 获取账变记录
this.accountInfo();
},
methods:{
// 账变记录
accountInfo() {
if (this.load.page == 1) {
this.balanceData.accounts = [];
}
logs({
type : this.balanceType,
channel : this.balanceData.screenChannel,
page : this.load.page
}).then(res=>{
//判断金卡、银卡、钻石卡
let number
if(this.balanceType == "silver") {
number = res.account.silver
} else if(this.balanceType == "gold") {
number = res.account.gold
} else if(this.balanceType == "drill") {
number = res.account.drill
} else {
return
}
this.balanceData.accounts = this.balanceData.accounts.concat(res.data)
this.balanceData.number = number
this.balanceData.blockeds = res.blockeds
this.load.allpage = res.page.total_page
this.load.has_more = res.page.has_more
// 数据渲染加载
this.LoadData = true
})
},
// 筛选账变记录-条件
screenBind(e) {
this.balanceData.screenIndex = e.detail.value,
this.balanceData.screenChannel= this.balanceData.screenArray[e.detail.value].channel
// 获取账变记录
this.accountInfo();
},
}
}
</script>
<style lang="scss" scoped>
// 账户余额
.integra-top {
padding: 30rpx 20rpx 0;
background-color: #dfb48b;
border-radius: 0 0 100rpx 100rpx;
.integra-name {
color: #fff;
font-size: 32rpx;
margin-bottom: 30rpx;
}
.integra-info {
background-color: #fff;
text-align: center;
border-radius: 20rpx;
display: flex;
box-shadow: 0 10rpx 10rpx rgba(0, 0, 0, .1);
padding: 30rpx 20rpx;
box-sizing: border-box;
text-align: left;
.integra-right {
flex: 2;
position: relative;
&:first-child {
padding-right: 20rpx;
box-sizing: border-box;
}
&:last-child {
padding-left: 30rpx;
box-sizing: border-box;
}
&:first-child::after {
display: none;
}
.integra-title {
margin-bottom: 20rpx;
display: flex;
image {
width: 36rpx;
height: 36rpx;
margin: 4rpx 0 0 10rpx;
}
}
.integra-number {
font-size: 40rpx;
}
.integra-btn {
font-size: 28rpx;
margin-top: 20rpx;
color: #adadad;
display: flex;
text {
color: #dfb48b;
}
image {
width: 36rpx;
height: 36rpx;
margin-top: 2rpx;
}
}
.integra-blue {
color: #317afa;
}
}
}
}
// 账变记录
.integra-cont-title {
padding: 40rpx 20rpx 10rpx;
display: flex;
.integra-cont-name {
font-weight: 600;
flex: 1;
}
.integra-cont-picker {
display: flex;
color: #797979;
font-size: 30rpx;
.integra-cont-icon {
width: 28rpx;
height: 28rpx;
margin: 6rpx 0 0 10rpx;
}
}
}
.integra-list {
width: calc(100% - 40rpx);
margin: 20rpx;
padding: 30rpx 20rpx;
position: relative;
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, .1);
box-sizing: border-box;
background: #fff;
border-radius: 10rpx;
.integra-text {
display: flex;
margin-bottom: 20rpx;
.integra-title {
flex: 1;
font-size: 30rpx;
display: flex;
margin: 0;
.integra-title-tips {
background-color: green;
color: #fff;
width: 40rpx;
height: 40rpx;
line-height: 38rpx;
text-align: center;
border-radius: 50%;
margin-right: 10rpx;
font-size: 24rpx;
transform: scale(0.8);
&.active {
background-color: red;
}
}
}
.integra-oints {
color: green;
&.active {
color: red;
}
}
}
.integra-remark {
margin-bottom: 20rpx;
font-size: 26rpx;
color: #4e4e4e;
background: #f5f5f5;
display: inline-block;
padding: 6rpx 20rpx;
border-radius: 50rpx;
}
.integra-date {
display: flex;
}
}
.pages-hint {
margin: 20rpx;
border-radius: 10rpx;
}
</style>