You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
181 lines
4.6 KiB
181 lines
4.6 KiB
<template>
|
|
<view class="main" :style="{ background: `url(${imgUrl}) #f6f6f6 no-repeat`, backgroundSize: backgroundSize }">
|
|
|
|
<!-- <operateCoach v-if="identity=='实操教练'"/>
|
|
<principal v-if="identity=='校长'||identity=='驾校财务'"/> -->
|
|
<view class="content">
|
|
<view class="status_bar"></view>
|
|
<view class="" style="height: 30rpx;"></view>
|
|
<view class="userInfo">
|
|
<view class="tit">Hi,{{ vuex_userInfo.name }} {{identity}}</view>
|
|
<view class="flex userRow">
|
|
<view class="schoolIcon">
|
|
<image src="@/static/images/index/ic_jiaxiao.png" mode=""></image>
|
|
</view>
|
|
<view class="schoolName oneRowText">{{ vuex_userInfo.schoolName }}</view>
|
|
<!-- <view class="tag">合作教练</view> -->
|
|
</view>
|
|
</view>
|
|
<view class="card priceBox">
|
|
<view class="blueLab">今日已结算金额</view>
|
|
<view class="price">¥{{statistics.amount}}</view>
|
|
<view class="flex-b">
|
|
<view class="data">截止:{{statistics.refreshDate}}</view>
|
|
<view class="refresh" @click="getSettlementStatisticsFn">
|
|
<view class="text">刷新</view>
|
|
<view class="icon">
|
|
<image src="@/static/images/index/ic_shuaxin.png" mode=""></image>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="h1"> 结算统计</view>
|
|
<!-- <view class="tab_box"> -->
|
|
<view class="tabBox">
|
|
<view class="tabs">
|
|
<view class="tab" @click="tabClick(1)" :class="{active: currentTab==1}">最近五天</view>
|
|
<view class="tab" @click="tabClick(2)" :class="{active: currentTab==2}">最近半年</view>
|
|
</view>
|
|
</view>
|
|
<!-- <tabDate /> -->
|
|
<!-- </view> -->
|
|
<view class="card">
|
|
<view class="chart">
|
|
<columnChart :chartData="chartData"/>
|
|
</view>
|
|
</view>
|
|
<view class="flex-b">
|
|
<view class="h1">结算明细</view>
|
|
<moreRight text="更多" @click.native="$goPage('/pages/indexEntry/settlement/settlement')"/>
|
|
</view>
|
|
<view class="record">
|
|
<view class="card" v-for="(item,index) in list" :key="index">
|
|
<stage :item="item"/>
|
|
</view>
|
|
</view>
|
|
<view class="moreBtn" @click="$goPage('/pages/indexEntry/settlement/settlement')">查看更多</view>
|
|
</view>
|
|
|
|
<UserTab name ='统计'></UserTab>
|
|
|
|
|
|
</view>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
import stage from './comp/stage'
|
|
import columnChart from './comp/columnChart'
|
|
import tabDate from './comp/tabDate'
|
|
import { imgUrl } from '@/config/site.config'
|
|
import {
|
|
getSettlementStatistics,
|
|
settle_list,
|
|
getDaySettlement,
|
|
getMonthSettlement
|
|
} from '@/config/api.js'
|
|
export default {
|
|
components: {
|
|
stage,
|
|
columnChart,
|
|
tabDate
|
|
},
|
|
data() {
|
|
return {
|
|
value1: '',
|
|
currentTab: 1,
|
|
statistics: {},
|
|
list: [],
|
|
imgUrl: imgUrl+'indexTopBanner.png',
|
|
backgroundSize: '100% 492rpx',
|
|
show: false,
|
|
chartData: []
|
|
}
|
|
},
|
|
onShow() {
|
|
uni.hideTabBar();
|
|
this.getSettlementStatisticsFn()
|
|
this.settle_listFn()
|
|
this.getDaySettlement()
|
|
},
|
|
onLoad() {
|
|
|
|
},
|
|
mounted() {
|
|
|
|
},
|
|
methods: {
|
|
// 结算统计按月查询
|
|
async getDaySettlement() {
|
|
let obj = {
|
|
// startDate: 20240406,
|
|
// endDate: 20240605,
|
|
// coachId: this.vuex_coachId,
|
|
schoolId: this.vuex_schoolId
|
|
}
|
|
let data = {}
|
|
let categories = []
|
|
if(this.currentTab==1) {
|
|
data = await getDaySettlement(obj)
|
|
categories = data.data.map(item=> {
|
|
let str = item.refreshDate.slice(2,8)
|
|
return str.slice(0, 2) + '-' + str.slice(2, 4) + '-' + str.slice(4, 6)
|
|
})
|
|
}else {
|
|
data = await getMonthSettlement(obj)
|
|
categories = data.data.map(item=> {
|
|
return item.refreshDate.slice(0, 4) + '-' + item.refreshDate.slice(4)
|
|
})
|
|
}
|
|
let res = data.data
|
|
|
|
let amount = res.map(item=>item.amount)
|
|
let chartData = {
|
|
categories: categories,
|
|
series: [
|
|
{
|
|
name: "目标值",
|
|
data: amount
|
|
}
|
|
]
|
|
};
|
|
this.chartData = chartData
|
|
},
|
|
tabClick(num) {
|
|
if(num==this.currentTab) return
|
|
this.currentTab = num
|
|
this.getDaySettlement()
|
|
},
|
|
async getSettlementStatisticsFn() {
|
|
let obj = {
|
|
searchDateType: uni.$u.timeFormat(Date.now(), 'yyyymm'),
|
|
// coachId: this.vuex_coachId || ''
|
|
}
|
|
const {
|
|
data: res
|
|
} = await getSettlementStatistics(obj)
|
|
this.statistics = res
|
|
console.log(res)
|
|
},
|
|
async settle_listFn() {
|
|
let obj = {
|
|
"pageNo": 1,
|
|
"pageSize": 10,
|
|
}
|
|
const {
|
|
data: res
|
|
} = await settle_list(obj)
|
|
this.list = res.list || []
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
@import './comp/comp.scss';
|
|
|
|
|
|
</style>
|
|
|