| | |
| | | <text>¥{{item.totalPay | formatNum}}</text> |
| | | </view> |
| | | <view class="list-row"> |
| | | <text>现金收入</text> |
| | | <text>现金收款</text> |
| | | <text>¥{{item.cashPay | formatNum}}</text> |
| | | </view> |
| | | <view class="list-row"> |
| | | <text>余额划扣</text> |
| | | <text>储值卡收款</text> |
| | | <text>¥{{item.cardPay | formatNum}}</text> |
| | | </view><view class="list-row"> |
| | | <text>欠款</text> |
| | | <text>¥{{item.arrearsPay | formatNum}}</text> |
| | | </view><view class="list-row"> |
| | | <text>现金退款</text> |
| | | <text>¥{{item.refundCashPay | formatNum}}</text> |
| | | </view><view class="list-row"> |
| | | <text>卡项退款</text> |
| | | <text>¥{{item.refundCardPay | formatNum}}</text> |
| | | </view><view class="list-row"> |
| | | <text>产品业绩</text> |
| | | <text>¥{{item.productAchieve | formatNum}}</text> |
| | | </view><view class="list-row"> |
| | | <text>卡项业绩</text> |
| | | <text>¥{{item.cardAchieve | formatNum}}</text> |
| | | </view><view class="list-row"> |
| | | <text>还款</text> |
| | | <text>¥{{item.refund | formatNum}}</text> |
| | | </view><view class="list-row"> |
| | | <text>客单数</text> |
| | | <text>{{item.perCustomCnt}}</text> |
| | | </view><view class="list-row"> |
| | | <text>客品数</text> |
| | | <text>{{item.customGoodsCnt}}</text> |
| | | </view><view class="list-row"> |
| | | <text>客单价</text> |
| | | <text>¥{{item.perCustomPrice | formatNum}}</text> |
| | | </view><view class="list-row"> |
| | | <text>成本</text> |
| | | <text>¥{{item.cost | formatNum}}</text> |
| | | </view> |
| | | <view class="list-row"> |
| | | <text>毛利</text> |
| | | <text>¥{{item.grossProfit | formatNum}}</text> |
| | | </view> |
| | | <view class="list-row"> |
| | | <text>毛利率</text> |
| | | <text>{{item.grossProfitRate}}</text> |
| | | </view> |
| | | <view class="list-row"> |
| | | <text>本金消耗</text> |
| | |
| | | <text>¥{{item.freeConsumePay | formatNum}}</text> |
| | | </view> |
| | | <view class="list-row"> |
| | | <text>现金退款</text> |
| | | <text>¥{{item.refundCashPay | formatNum}}</text> |
| | | <text>人头数</text> |
| | | <text>{{item.peopleCnt}}个</text> |
| | | </view> |
| | | <view class="list-row"> |
| | | <text>卡项退款</text> |
| | | <text>¥{{item.refundCardPay | formatNum}}</text> |
| | | <text>项目消耗数</text> |
| | | <text>{{item.projConsumeCnt}}个</text> |
| | | </view> |
| | | <view class="list-row"> |
| | | <text>欠款</text> |
| | | <text>¥{{item.arrearsPay | formatNum}}</text> |
| | | <text>服务时长</text> |
| | | <text>{{item.timeLength}}分钟</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view v-if="list.length"> |
| | | <uni-load-more :status="loadStatus" color="#a5abaf"></uni-load-more> |
| | | </view> |
| | | </view> |
| | | <view v-else> |
| | |
| | | <text>营业收入</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('现金收入', 2)"> |
| | | <text>现金收入</text> |
| | | <view class="list-row-bordered" @click="toAnalyse('现金收款', 2)"> |
| | | <text>现金收款</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('余额划扣', 3)"> |
| | | <text>余额划扣</text> |
| | | <view class="list-row-bordered" @click="toAnalyse('储值卡收款', 3)"> |
| | | <text>储值卡收款</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('本金消耗', 4)"> |
| | | <text>本金消耗</text> |
| | | <view class="list-row-bordered" @click="toAnalyse('欠款', 4)"> |
| | | <text>欠款</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('赠送消耗', 5)"> |
| | | <text>赠送消耗</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('现金退款', 6)"> |
| | | <view class="list-row-bordered" @click="toAnalyse('现金退款', 5)"> |
| | | <text>现金退款</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('卡项退款', 7)"> |
| | | <view class="list-row-bordered" @click="toAnalyse('卡项退款', 6)"> |
| | | <text>卡项退款</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('欠款', 8)"> |
| | | <text>欠款</text> |
| | | <view class="list-row-bordered" @click="toAnalyse('产品业绩', 7)"> |
| | | <text>产品业绩</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('卡项业绩', 8)"> |
| | | <text>卡项业绩</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('还款', 9)"> |
| | | <text>还款</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('客单数', 10)"> |
| | | <text>客单数</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('客品数', 11)"> |
| | | <text>客品数</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('客单价', 12)"> |
| | | <text>客单价</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('成本', 13)"> |
| | | <text>成本</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('毛利', 14)"> |
| | | <text>毛利</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('毛利率', 15)"> |
| | | <text>毛利率</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('本金消耗', 16)"> |
| | | <text>本金消耗</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('赠送消耗', 17)"> |
| | | <text>赠送消耗</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('人头数', 18)"> |
| | | <text>人头数</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('项目消耗数', 19)"> |
| | | <text>项目消耗数</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | <view class="list-row-bordered" @click="toAnalyse('服务时长', 20)"> |
| | | <text>服务时长</text> |
| | | <text class="iconfont iconarrow-backimg"></text> |
| | | </view> |
| | | </view> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue'; |
| | | import HTabs from "@/components/liuyuno-tabs/liuyuno-tabs.vue"; |
| | | export default { |
| | | components: { |
| | | HTabs |
| | | HTabs, |
| | | uniLoadMore |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | isShowFilter:false, |
| | | storeList: [], |
| | | shopId: '',//门店id |
| | | list: [] |
| | | list: [], |
| | | loadStatus: 'more', |
| | | pageNum: 1 |
| | | } |
| | | }, |
| | | onLoad(options) { |
| | |
| | | this.loadShopList();; |
| | | } |
| | | }, |
| | | onPullDownRefresh(){ |
| | | this.reloadData(); |
| | | let timer = setTimeout(function () { |
| | | uni.stopPullDownRefresh(); |
| | | clearTimeout(timer); |
| | | timer = null; |
| | | }, 800); |
| | | }, |
| | | onReachBottom(){ |
| | | this.loadList() |
| | | }, |
| | | onNavigationBarButtonTap(e){ |
| | | if(e.index==0){ |
| | | uni.navigateTo({ |
| | |
| | | this.hideFilter() |
| | | }, |
| | | methods:{ |
| | | reloadData(){ |
| | | this.list = []; |
| | | this.pageNum = 1; |
| | | this.loadStatus = 'more'; |
| | | this.loadList(); |
| | | }, |
| | | tabChange(index){ |
| | | let val = index + 1; |
| | | if(val == this.tabIndex){ |
| | |
| | | } |
| | | this.tabIndex = val; |
| | | if(val != 3){ |
| | | this.loadList() |
| | | this.reloadData() |
| | | } |
| | | }, |
| | | hideFilter(){ |
| | |
| | | uni.setNavigationBarTitle({ |
| | | title: item.shopShortName + '经营报表' |
| | | }); |
| | | this.loadList(); |
| | | this.reloadData(); |
| | | }, |
| | | loadShopList(){ |
| | | this.$httpUtils.request('/api/shop/findAllShopList').then((res) => { |
| | |
| | | }) |
| | | }, |
| | | loadList(){ |
| | | if(this.loadStatus!=='more'){ |
| | | return; |
| | | } |
| | | this.$httpUtils.request('/api/statistics/findShopBusinessesData', { |
| | | "pageNum": 1, |
| | | "pageSize": 100, |
| | | "pageNum": this.pageNum, |
| | | "pageSize": 10, |
| | | "shopId": this.shopId, |
| | | "type": this.tabIndex |
| | | }, 'POST').then((res) => { |
| | | if(res.status == 200){ |
| | | this.list = res.rows; |
| | | let result = res.rows; |
| | | if(result.length < 10){ |
| | | this.loadStatus = 'noMore'; |
| | | } else { |
| | | this.pageNum ++ ; |
| | | this.loadStatus = 'more'; |
| | | } |
| | | this.list = this.list.concat(result); |
| | | } |
| | | }) |
| | | } |