<template> <view class="consume-content" :style="{'--status-bar-': statusBarHeight}"> <view class="consume-content-info"> <!-- 头部主要内容 开始 --> <view class="consume-content-header"> <customNavbar title="收支明细" bgColor="var(--gd-bgm-color)" :customNavbarInfo="{}" :contentStyle="{}" :leftStyle="{color: '#fff'}"></customNavbar> <!-- tab 开始 --> <u-tabs :list="list1" @click="clickTabs" lineColor="var(--gd-bgm-color)" :activeStyle="{ color: 'rgba(127, 127, 127, 1)' }" :inactiveStyle="{ color: 'rgba(127, 127, 127, 1)' }" :scrollable="false" ></u-tabs> <!-- tab 结束 --> </view> <!-- 头部主要内容 结束 --> <!-- 收支列表 开始 --> <view class="consume-content-list"> <customScrollList ref="customScrollList" @load="load" @paging="paging" @refresh="refresh" > <view v-if="marketPersonsSerialList.length>0" style="width: 100%;padding: 0 30rpx;box-sizing: border-box;"> <customListItem :item="item" v-for="(item,index) in marketPersonsSerialList" /> </view> </customScrollList> </view> <!-- 收支列表 结束 --> </view> </view> </template> <script> import { navigateTo } from "@/utils/util.js" export default { data() { return { title: '收支明细', statusBarHeight: 0, // 状态栏安全距离 monry: 123456.789, moneyValue: null, tool: [ // 我的工具 { title: "支付设置", icon: this.$commonConfig.staticUrl + 'balance/zhifu.png', url: '/pages/invitationStatistics/index' }, { title: "余额提现", icon: this.$commonConfig.staticUrl + 'balance/mingxi.png', url: '/pages/balance/index' }, ], list1: [ { name: '全部', key: '', }, { name: '收入', key: 1, }, { name: '支出', key: 2, }], serialType: '', marketPersonsSerialList: [] } }, onLoad() { }, onShow() { this.statusBarHeight = getApp().globalData.statusBarHeight }, methods: { /** * @author ygh * @data 2023-12-20 */ navigateToFun() { navigateTo('/pages/cash/index') }, /** * 数字显示格式化 * */ numFormat(num = 0) { if (num < 100000) { return num } else if (num > 100000) { return (num / 10000).toFixed(2) } }, /** * 选择tabs */ clickTabs(item) { console.log('item', item); if(this.serialType == item.key) return this.serialType = item.key this.marketPersonsSerialList = [] this.$refs.customScrollList.refresh() }, /** * 获取数据 */ async load(paging) { try{ if(paging.page == 1) { this.marketPersonsSerialList = [] } this.$refs.customScrollList.showPullUp = true let res = await this.$u.api.marketPersonsSerial({ noSign: 1, userid: this.distribution_user_info.userId, pageNum: paging.page, pageSize: paging.size, serialType: this.serialType }) if(res && res.code ===200) { if(res.data.rows){ let list = JSON.parse(JSON.stringify(this.marketPersonsSerialList)) res.data.rows.forEach(item=>{ list.push({ ...item }) }) this.marketPersonsSerialList = list }else { } this.$refs.customScrollList.loadSuccess({ list: this.marketPersonsSerialList, total: res.data.total }) } else { this.$refs.customScrollList.loadSuccess({ list: [], total: res.data.total || this.marketPersonsSerialList.length }) } }catch(e){ //TODO handle the exception console.error("e===",e) this.$refs.customScrollList.loadSuccess({ list: [], total: this.marketPersonsSerialList.length }) } }, paging(paging){ console.log("下拉 加载数据") }, /** * 下拉触底 */ async refresh(paging){ console.log("上拉 加载数据") //this.$refs.customScrollList.showEmpty = true try{ //this.$refs.customScrollList.showPullUp = true let res = await this.$u.api.marketPersonsSerial({ pageNum: paging.page, pageSize: paging.size, userid: this.distribution_user_info.userId, serialType: this.serialType }) if(res && res.code ===200) { if(res.data.rows){ let list = [] res.data.rows.forEach(item=>{ list.push({ ...item }) }) this.marketPersonsSerialList = list }else { this.marketPersonsSerialList = [] } // this.marketPersonsSerialList = null this.$refs.customScrollList.refreshSuccess({ list: this.marketPersonsSerialList, total: res.data.total }) } else { this.$refs.customScrollList.refreshSuccess({ list: [], total: res.data.total || this.marketPersonsSerialList.length }) } }catch(e){ //TODO handle the exception console.error("e===",e) this.$refs.customScrollList.refreshSuccess({ list: [], total: this.marketPersonsSerialList.length }) } }, } } </script> <style lang="scss" scoped> .consume-content { width: 100%; height: 100%; --header-h: 90rpx; .consume-content-info { width: 100%; height: 100%; display: flex; flex-direction: column; box-sizing: border-box; } } /** 头部主要内容 开始 */ .consume-content-header { width: 100%; //height: var(--header-h); box-sizing: border-box; position: relative; ::v-deep .u-search { padding: 0 30rpx !important; } ::v-deep .u-search__action { color: #fff !important; } /** 余额 开始 */ .consume-content-money { width: 100%; box-sizing: border-box; margin-top: 50rpx; padding-left: 66rpx; color: #fff; >text { font-size: 24rpx; } .consume-content-money-num { display: flex; justify-content: center; align-items: flex-start; flex-direction: column; margin-top: 24rpx; >text:nth-child(1) { .balance-userinfo-util { font-size: 24rpx; margin-left: 5rpx; } ::v-deep .u-count-num { font-weight: bold !important; font-size: 48rpx !important; } } >text:nth-child(2) { margin-top: 20rpx; font-size: 24rpx; } } } /** 余额 结束 */ /** 提现 开始 */ .consume-content-cash { width: 100%; box-sizing: border-box; position: absolute; top: 100%; transform: translateY(-50%); padding: 0 12rpx; .consume-content-consume-box { width: 100%; height: 100%; background-color: #fff; box-shadow: 0rpx 2rpx 12rpx 0rpx rgba(221, 221, 221, 0.5); border-radius: 20rpx; box-sizing: border-box; padding: 34rpx 30rpx 38rpx; >text { font-size: 28rpx; color: #363636; } .consume-content-consume-money { width: 100%; display: flex; align-items: center; padding: 40rpx 0 20rpx; border-bottom: 2rpx solid #EEEEEE; ::v-deep .u-cell__body { padding: 20rpx 0 !important; } .consume-content-consume-input { width: 100%; padding: 0 10rpx; } >text { flex-shrink: 0; flex-wrap: nowrap; white-space: nowrap; } .consume-content-consume-money-icon { font-size: 32rpx; } .consume-content-consume-money-all { color: var(--gd-but-color); font-size: 24rpx; cursor: pointer; } } .consume-content-consume-card { width: 100%; ::v-deep .u-cell__body { padding: 20rpx 0 !important; } } .consume-content-consume-submit { width: 100%; height: 92rpx; display: flex; align-items: center; justify-content: center; box-sizing: border-box; padding: 0 80rpx 0; margin-top: 70rpx; >view { width: 100%; height: 100%; border-radius: 46rpx; color: #fff; background-color: var(--gd-but-color); font-size: 28rpx; font-family: SourceHanSansCN, SourceHanSansCN; display: flex; align-items: center; justify-content: center; } } } } /** 提现 结束 */ } /** 头部主要内容 结束 **/ /** 收支列表 开始 */ .consume-content-list { width: 100%; height: 100%; background: #F7F7F9; // overflow: hidden; } /** 收支列表 结束 */ </style>