<template>
|
|
<!-- 全年收支 -->
|
|
<view class="page">
|
|
<navbar title="全年收支" leftClick @leftClick="$utils.navigateBack" />
|
|
<view class="page-two">
|
|
<view class="option"
|
|
@click="$refs.notebookListPicker.open()">
|
|
{{ notebook.title }}
|
|
</view>
|
|
<view class="wire"></view>
|
|
|
|
<view class="select-date"
|
|
@click="$refs.datetimePicker.open()">
|
|
{{ $dayjs(date).format('YYYY') }}
|
|
</view>
|
|
|
|
<view class="card">
|
|
<view class="card-one" style="border-right: 1px dashed #BCD2FE;">
|
|
<image src="../../static/image/keepAccounts/BlueWallet.png" mode="aspectFill" />
|
|
<view>
|
|
<view>总收入(元)</view>
|
|
<view style="color: #3889FF;">¥{{ countNumber.incomeCount }}</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="card-two">
|
|
<image src="../../static/image/keepAccounts/YellowWallet.png" mode="aspectFill" />
|
|
<view>
|
|
<view>总支出(元)</view>
|
|
<view style="color: #FD961A;">¥{{ countNumber.expenditureCount }}</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="cell" style="margin-top: 40rpx;">
|
|
<uv-cell v-for="(item,index) in list"
|
|
:key="index"
|
|
:label="item.billDate"
|
|
:title="bill.typeTitle[item.type]"
|
|
:value="`${bill.typeNo[item.type]}${item.amount}`"></uv-cell>
|
|
</view>
|
|
</view>
|
|
|
|
<uv-empty mode="list" v-if="list.length == 0"></uv-empty>
|
|
|
|
<uv-picker ref="notebookListPicker"
|
|
keyName="title"
|
|
:columns="[notebookList]"
|
|
itemHeight="80"
|
|
@confirm="notebookListConfirm"></uv-picker>
|
|
|
|
<uv-datetime-picker
|
|
ref="datetimePicker"
|
|
v-model="date"
|
|
mode="year"
|
|
@confirm="confirmDate"/>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import mixinList from '@/mixins/list.js'
|
|
export default {
|
|
mixins : [mixinList],
|
|
data() {
|
|
return {
|
|
mixinsListApi : 'queryBill',
|
|
apiType : '',
|
|
bill : {
|
|
typeNo : ['+', '-'],
|
|
typeTitle : ['收入', '支出'],
|
|
},
|
|
date : new Date().getTime(),
|
|
countNumber : {},
|
|
notebookList : [],
|
|
notebook : {
|
|
title : '选择项目',
|
|
},
|
|
}
|
|
},
|
|
onLoad({apiType}) {
|
|
this.apiType = apiType
|
|
this.mixinsListApi += apiType || ''
|
|
|
|
this.queryParams.year = this.$dayjs(this.date).format('YYYY')
|
|
|
|
this.getCommonQueryNotebookList()
|
|
},
|
|
onShow() {
|
|
this.notebookQueryBillAmount()
|
|
},
|
|
onPullDownRefresh() {
|
|
this.notebookQueryBillAmount()
|
|
},
|
|
methods: {
|
|
notebookQueryBillAmount(){
|
|
this.$api('notebookQueryBillAmount',
|
|
this.queryParams, res => {
|
|
if(res.code == 200){
|
|
this.countNumber = res.result
|
|
}
|
|
})
|
|
},
|
|
getCommonQueryNotebookList(){
|
|
this.$api('commonQueryNotebookList', {
|
|
pageNo: 1,
|
|
pageSize: 9999999,
|
|
}, res => {
|
|
if(res.code == 200){
|
|
this.notebookList = res.result.records
|
|
}
|
|
})
|
|
},
|
|
notebookListConfirm(e){
|
|
this.notebook = e.value[0]
|
|
this.queryParams.employNoteBookId = this.notebook.id
|
|
this.getData()
|
|
this.notebookQueryBillAmount()
|
|
},
|
|
confirmDate(e){
|
|
this.date = e.value
|
|
this.queryParams.year = this.$dayjs(this.date).format('YYYY')
|
|
this.getData()
|
|
this.notebookQueryBillAmount()
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="less">
|
|
.page {
|
|
background-color: #fff;
|
|
|
|
.page-two {
|
|
width: 90%;
|
|
margin-left: 5%;
|
|
|
|
.wire {
|
|
border-bottom: 4rpx dashed rgb(168, 197, 255);
|
|
}
|
|
|
|
.option {
|
|
padding: 40rpx 40rpx 40rpx 0rpx;
|
|
|
|
.select {
|
|
background-color: #EBF0FC;
|
|
padding: 15rpx 0rpx;
|
|
border: none;
|
|
color: #4280FD;
|
|
width: 150rpx;
|
|
text-align: center;
|
|
}
|
|
}
|
|
|
|
.select-date {
|
|
padding: 30rpx 0;
|
|
|
|
.select {
|
|
padding: 15rpx 0rpx;
|
|
border: none;
|
|
color: #4280FD;
|
|
}
|
|
}
|
|
|
|
.card {
|
|
display: flex;
|
|
justify-content: space-around;
|
|
align-items: center;
|
|
background-color: #F2F5FD;
|
|
|
|
.card-one,
|
|
.card-two {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
height: 150rpx;
|
|
width: 50%;
|
|
font-size: 28rpx;
|
|
line-height: 40rpx;
|
|
}
|
|
|
|
image {
|
|
height: 50rpx;
|
|
width: 50rpx;
|
|
margin-right: 20rpx;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
</style>
|