dingdong-master/pages/my/my-money-bag.vue

172 lines
5.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="margin-bottom-lg">
<!-- 顶部操作条 -->
<cu-custom :bgColor="'bg-main-color'" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">交易明细</block>
</cu-custom>
<!-- <view class="margin-sm shadow-warp">
<view class="padding-tb-lg padding-lr bg-gradual-color light">
<view>账户余额</view>
<view class="flex justify-between margin-top-sm">
<view class="text-xxl">--</view>
<view class="cu-btn bg-white radius">充值</view>
</view>
</view>
<view class="padding bg-white flex justify-between">
<view>可提现金额<text class="text-price text-black">--</text></view>
<view>
<text>提现</text>
<text class="cuIcon-right"></text>
</view>
</view>
</view> -->
<view class="padding-tb bg-white solid-bottom">
<view class="flex justify-between align-center margin-top-xs padding-left">
<my-uni-combox class="flex-sub margin-right-xs" :candidates="billingStateList"
:showField="'name'" placeholder="筛选账单状态" v-model="billingStateObj"
@input="chooseBillingState($event)"></my-uni-combox>
<view class="text-xl text-bold">
<text class="cuIcon-search margin-right-sm" @click="searchBills"></text>
</view>
</view>
</view>
<uni-collapse v-model="openStatusArr[index]" ref="collapse" v-for="(billItem, index) in bill">
<uni-collapse-item>
<template v-slot:title>
<view class="padding bg-white" :data-index="index" @click="showStatement">
<view class="margin-bottom-xs">{{billItem.createTime}}</view>
<view>
<text class="margin-right"><text>支出:</text><text
class="text-price text-black">{{billItem.payCount}}</text></text>
<text><text>收入:</text><text
class="text-price text-black">{{billItem.incomeCount}}</text></text>
</view>
</view>
</template>
<view>
<view v-for="(item, index1) in billItem.statement"
class="bg-white padding flex justify-between align-center solid-bottom" @click="showDetail(bill[index].statement[index1])">
<view>
<view class="flex">
<view class="margin-right-sm">服务订单:{{item.orderDetailCode}}</view>
<view class="text-gray">
<view class="margin-bottom-xs" v-if="item.financialDetailType == 0">结单金额</view>
<view class="margin-bottom-xs" v-else-if="item.financialDetailType == 1">大师傅/店铺提成金额</view>
<!-- <view class="margin-bottom-xs" v-else-if="item.financialDetailType == 2">多级分销</view>
<view class="margin-bottom-xs" v-else-if="item.financialDetailType == 3">平台抽成</view> -->
</view>
</view>
<view class="text-gray">{{item.createTime}}</view>
</view>
<view class="text-price text-black">{{item.payMoney}}</view>
</view>
</view>
</uni-collapse-item>
</uni-collapse>
</view>
</template>
<script>
import myUniCombox from '@/components/uni-combox/my-uni-combox.vue';
export default {
components: {
myUniCombox
},
data() {
return {
openStatusArr: [], //0打开1收起
bill: [],
curUserInfo: {},
billingStateList: [{
code: 1,
name: '待到帐'
},{
code: 6,
name: '已取消'
},{
code: 5,
name: '已到帐'
}],
billingStateObj: null
}
},
onLoad() {
this.loadData();
},
methods: {
async loadData() {
this.curUserInfo = this.$request.getCurUserInfo();
// 查询账单
this.qryBills();
},
async qryBills(params = {}) {
let billRes = await this.$request.qryFinancialCount({
financialDetailTypes: [0,1],
...params
});
this.bill = billRes.data;
this.openStatusArr = [];
for (let i = 0; i < this.bill.length; i++) {
this.openStatusArr.push('1');
}
},
async showStatement(e) {
let curIndex = e.currentTarget.dataset.index;
// 1为缩起状态0为展开状态
if (this.openStatusArr[curIndex] == '1' && !this.bill[curIndex].statement) {
let createTime = new Date(new Date(this.bill[curIndex].createTime).setHours(0));
let createMonth = createTime.getMonth() + 1;
let createYear = createTime.getFullYear();
let finishYear = createMonth === 12 ? createYear + 1 : createYear;
let finishMonth = createMonth === 12 ? 1 : createMonth + 1;
let createTimeStr = createYear + '-' + createMonth + '-1 00:00:00';
let finishTimeStr = finishYear + '-' + finishMonth + '-1 00:00:00';
uni.showLoading({
mask: true,
title: '加载中'
})
let res = await this.$request.qryFinancialDetail({
beginTime: createTimeStr,
endTime: finishTimeStr,
financialDetailTypes: [0,1],
payeeId: this.curUserInfo.workerId,
billingState: this.billingStateObj ? this.billingStateObj.code : null
});
// let newStatements = this.statements.concat();
// newStatements[curIndex] = res.rows;
// this.statements = newStatements;
let newBill = this.bill.concat();
newBill[curIndex].statement = res.rows;
this.bill = newBill;
// #ifdef MP
this.$nextTick(() => {
this.$refs.collapse[curIndex].resize();
uni.hideLoading();
})
// #endif
}
},
showDetail(item) {
uni.navigateTo({
url: '/pages/my/statement-desc?statementDesc=' + encodeURIComponent(JSON.stringify(item))
})
},
chooseBillingState(e) {
this.billingStateObj = e;
},
searchBills() {
this.qryBills({
billingState: this.billingStateObj ? this.billingStateObj.code : null
});
}
},
}
</script>
<style>
</style>