Files
houyi-uniapp/pages/wallet/index.vue
PC-202306242200\Administrator 85b89ccea7 first commit
2026-03-28 23:27:25 +08:00

254 lines
7.8 KiB
Vue

<template>
<view class="xkl-com-bg">
<view style="height: 20rpx;"></view>
<view style="
background: linear-gradient(185deg, #59A0DE 0%, #255C9A 100%);
border-radius: 10rpx;padding: 50rpx;">
<view class="u-flex u-flex-between u-flex-y-center">
<view style="color: #ffffff;">
<view style="font-size: 24rpx;color: #EEEEEE;">当前余额()</view>
<view style="font-size: 40rpx;font-weight: 800;">
<view>{{walletInfo.money}}</view>
</view>
</view>
<navigator :url="`/pages/wallet/temp?data=${encodeURIComponent(JSON.stringify(walletInfo))}`"
style="width: 120rpx;height: 56rpx;line-height: 56rpx; height: 56rpx;text-align: center;font-size: 28rpx;background: #F7F7F7;border-radius: 12rpx;opacity: 1; color: #2CA164;">
转赠
</navigator>
</view>
<view style="height: 50rpx;"></view>
<!-- <view class="u-flex u-flex-between u-flex-y-center"
style="font-size: 28rpx;text-align: center;color: #ffffff;">
<view>
<view>100</view>
<view style="color: #EEEEEE;">冻结中</view>
</view>
<view>
<view>100</view>
<view style="color: #EEEEEE;">可提现</view>
</view>
</view> -->
<u-grid :border="false" :col="2">
<u-grid-item :customStyle="{padding:'20rpx'}" @click="navto('/pages/wallet/list?status=-3')">
<view style="color: #fff;">{{walletInfo.freeze_money}}</view>
<view style="color: #c8c9cc;font-size: 28rpx;">冻结中</view>
</u-grid-item>
<u-grid-item class="u-flex" :customStyle="{padding:'20rpx'}" @click="navto('/pages/wallet/withdraw')">
<view style="color: #fff;">{{walletInfo.money}}</view>
<view style="color: #c8c9cc;font-size: 28rpx;">可提现</view>
</u-grid-item>
</u-grid>
</view>
<view style="height: 20rpx;"></view>
<view style="background-color: #ffffff; border-radius: 10rpx;">
<u-grid :border="false" :col="5">
<u-grid-item :customStyle="{padding:'20rpx 0'}" @click="navto('/pages/wallet/list')">
<u-icon name="/static/icon/money-list.png" size="50rpx"></u-icon>
<view style="height: 10rpx;"></view>
<text class="grid-text-mini">账单</text>
</u-grid-item>
<u-grid-item :customStyle="{padding:'20rpx'}" @click="topay()">
<u-icon name="/static/icon/money-list.png" size="50rpx"></u-icon>
<view style="height: 10rpx;"></view>
<text class="grid-text-mini">充值</text>
</u-grid-item>
<u-grid-item :customStyle="{padding:'20rpx 0'}" @click="navto('/pages/wallet/withdraw')">
<u-icon name="/static/icon/withdraw.png" size="50rpx"></u-icon>
<view style="height: 10rpx;"></view>
<text class="grid-text-mini">提现</text>
</u-grid-item>
<u-grid-item :customStyle="{padding:'20rpx 0'}"
@click="navto(`/pages/wallet/temp?data=${encodeURIComponent(JSON.stringify(walletInfo))}`)">
<u-icon name="gift" size="66rpx"></u-icon>
<text class="grid-text-mini">转赠</text>
</u-grid-item>
<u-grid-item :customStyle="{padding:'20rpx 0'}" @click="navto('/pages/wallet/account/index')">
<u-icon name="/static/icon/bank.png" size="50rpx"></u-icon>
<view style="height: 10rpx;"></view>
<text class="grid-text-mini">银行卡</text>
</u-grid-item>
</u-grid>
</view>
<view style="height: 20rpx;"></view>
<!-- <u-subsection :list="tabData.list" keyName="name" :current="tabData.current" @change="sectionChange"
activeColor="#2CCE7F"></u-subsection>
<view style="height: 20rpx;"></view> -->
<view class="u-flex">
<view style="width: 6rpx;background-color: #26418A;"></view>
<view style="width: 6rpx;"></view>
<view style="font-size: 28rpx;color: #2a2a2a;font-weight: 700;">最新记录</view>
</view>
<view style="height: 20rpx;"></view>
<view>
<view v-for="(item,index) in walletItems" :key="index"
style="padding: 20rpx;background-color: #ffffff;padding: 20rpx;border-radius: 16rpx;margin-bottom: 20rpx;">
<view class="u-flex u-flex-between u-flex-y-center">
<view style="color: #232323;font-size: 30rpx;">
<view class="u-flex u-flex-between">
<view>{{config.type[item.type]}}</view>
</view>
<view style="height: 10rpx;"></view>
<view style="color: #999999;font-size: 26rpx;">{{item.note}}</view>
<view style="height: 16rpx;"></view>
<view class="u-flex">
<view>{{item.created_at}}</view>
<view style="width: 20rpx;"></view>
<view style="color: #909399;">{{config.status[item.status]}}</view>
</view>
<view style="height: 16rpx;"></view>
</view>
<view style="font-size: 28rpx;">
<text v-if="item.money > 0" style="color: #FF2727;">{{item.money}}</text>
<text v-else>{{item.money}}</text>
</view>
</view>
<view v-if="item.admin_note">
<u-line></u-line>
<view style="height: 14rpx;"></view>
<view style="font-size: 26rpx;">{{item.admin_note}}</view>
</view>
<view v-if="item.account">
<u-line></u-line>
<view style="height: 14rpx;"></view>
<view class="u-flex u-flex-between">
<view>{{item.account.realname}} </view>
<view>{{item.account.mobile}} </view>
</view>
<view style="height: 10rpx;"></view>
<view>{{item.subname}}</view>
<view>{{item.account.num}}</view>
<view style="height: 10rpx;"></view>
<view>{{item.account.idcard}}</view>
</view>
</view>
</view>
<!-- <u-loadmore :status="loadStatus" /> -->
<view style="height: 400rpx;"></view>
</view>
</template>
<script>
import {
API_URL,
STATIC_URL
} from '@/env'
let self;
export default {
data() {
return {
walletInfo: {},
walletItems: [],
tabData: {
list: [{
"name": "全部",
"symbol": ""
}, {
"name": "收入",
"symbol": "+"
}, {
"name": "支出",
"symbol": "-"
}, ],
current: 0
},
loadStatus: 'loadmore',
search: {
symbol: '',
page: 1,
status: 0,
},
page: {
current: 0,
last_page: 1
},
config: null
}
},
onLoad() {
self = this;
},
onShow() {
self.getWalletInfo();
self.walletItems = [];
self.getWalletItems();
},
onPullDownRefresh() {
self.search.page = 1;
self.walletItems = [];
self.getWalletInfo();
self.getWalletItems();
uni.stopPullDownRefresh();
},
methods: {
topay() {
uni.navigateTo({
url: '/pages/wallet/recharge?data=' + encodeURIComponent(JSON.stringify(self.walletInfo))
})
// var ua = window.navigator.userAgent.toLowerCase();
// if (ua.match(/micromessenger/i) == 'micromessenger') {
// location.href = API_URL + '/shop/v10/auth/wxoauthshoprecharge?data=' + encodeURIComponent(JSON
// .stringify(self.walletInfo));
// return true;
// } else {
// uni.navigateTo({
// url: '/pages/wallet/recharge?data=' + encodeURIComponent(JSON.stringify(self.walletInfo))
// })
// return false;
// }
},
navto(url) {
uni.navigateTo({
url: url
})
},
sectionChange(index) {
self.tabData.current = index;
self.search.symbol = self.tabData.list[index].symbol;
self.search.page = 1;
self.walletItems = [];
self.getWalletItems();
},
pageStatus() {
self.loadStatus = 'loadmore';
if (self.search.page >= self.page.last_page) {
self.loadStatus = 'nomore';
return false;
}
return true;
},
getWalletItems() {
self.$http.get('/shop/v10/wallet/items', self.search).then(({
data,
success
}) => {
if (success) {
self.walletItems = self.walletItems.concat(data.items.data);
self.config = data.config;
self.page.last_page = data.items.last_page;
self.pageStatus();
}
})
},
getWalletInfo() {
self.$http.get('/shop/v10/wallet/info').then(({
data,
success
}) => {
if (success) {
self.walletInfo = data;
}
})
},
}
}
</script>
<style lang="scss">
</style>