This commit is contained in:
cclu 2024-08-06 19:30:19 +08:00
parent 4bf61c9c1a
commit c14e7137f7
13 changed files with 2798 additions and 1130 deletions

View File

@ -103,6 +103,13 @@
"navigationBarTitleText": "结算审批"
}
},
{
"path": "monthList",
"style":
{
"navigationBarTitleText": "月度结算列表"
}
},
{
"path": "yearSettlement",
"style":
@ -114,6 +121,7 @@
"path": "monthDetail",
"style":
{
"navigationStyle": "custom",
"navigationBarTitleText": "月度详情"
}
}

File diff suppressed because it is too large Load Diff

View File

@ -54,7 +54,6 @@
类型
</view>
</view>
</view>
<scroll-view class="contentBox" :scroll-y="true" :style="{height: `calc(100vh - ${menu.bottom + 92}px)`}"
@ -93,7 +92,7 @@
</view>
</view>
</view>
<view class="load-more" v-if="dataList.length>0">
<view class="load-more" v-if="dataList && dataList.length>0">
<text>{{!isEnd ? '正在加载,请稍后...':'——— 我是有底线的 ———'}}</text>
</view>
</scroll-view>
@ -103,9 +102,9 @@
<view class="filterBox2">
<view class="filterTitle">结算类型</view>
<view class="filterItemList">
<view :class="SettlementType===0?'filterItem selectFilterItem':'filterItem'" @click="handleChangeSettlementType(0)">全部</view>
<view :class="SettlementType===1?'filterItem selectFilterItem':'filterItem'" @click="handleChangeSettlementType(1)">年度</view>
<view :class="SettlementType===2?'filterItem selectFilterItem':'filterItem'" @click="handleChangeSettlementType(2)">月度</view>
<view :class="SettlementType===0?'filterItem selectFilterItem':'filterItem'" @click.stop="handleChangeSettlementType(0)">全部</view>
<view :class="SettlementType===1?'filterItem selectFilterItem':'filterItem'" @click.stop="handleChangeSettlementType(1)">年度</view>
<view :class="SettlementType===2?'filterItem selectFilterItem':'filterItem'" @click.stop="handleChangeSettlementType(2)">月度</view>
</view>
</view>
<view style="display: flex;justify-content: center">
@ -340,6 +339,8 @@ import moment from "moment";
this.startDate = moment(e.detail.value).format('YYYY-MM')
this.startMonth = this.$moment(this.startDate).format('MM')
this.startYear = this.$moment(this.startDate).format('YYYY')
this.isEnd = false
this.PageIndex = 1
this.handleGetPageData()
},
//
@ -347,6 +348,8 @@ import moment from "moment";
this.endDate = moment(e.detail.value).format('YYYY-MM')
this.endMonth = this.$moment(this.endDate).format('MM')
this.endYear = this.$moment(this.endDate).format('YYYY')
this.isEnd = false
this.PageIndex = 1
this.handleGetPageData()
},
handleChangeSettlementType(e){
@ -389,7 +392,7 @@ import moment from "moment";
console.log('data',data)
this.dataList = this.PageIndex === 1?data.Result_Data.List:[...this.dataList,...data.Result_Data.List]
console.log('this.dataList',this.dataList)
if(data.Result_Data.TotalCount < 10){
if(data.Result_Data.List && data.Result_Data.List.length < 10){
this.isEnd = true
}
uni.hideLoading()
@ -598,7 +601,6 @@ import moment from "moment";
background-color: #f3f3f3;
.dataList{
width: 100%;
height: 100%;
box-sizing: border-box;
padding: 24rpx 24rpx 0;
.dataItem{
@ -690,17 +692,27 @@ import moment from "moment";
}
}
}
.load-more {
text-align: center;
width: 100%;
height: 80rpx;
color: #9999;
font-size: 24rpx;
}
}
.meng{
width: 100%;
background-color: rgba(0, 0, 0, 0.6);
position: fixed;
z-index:9;
.filterBox{
width: 100%;
background: #FFFFFF;
border-radius: 0rpx 0rpx 16rpx 16rpx;
padding: 48rpx 32rpx 24rpx ;
box-sizing: border-box;
z-index:10;
position: relative;
.filterBox2{
.filterTitle{
font-family: PingFangSC, PingFang SC;
@ -725,7 +737,7 @@ import moment from "moment";
display: flex;
flex-wrap: wrap;
.filterItem{
width: calc((100% - 32rpx)/3);
width: calc((100% - 36rpx)/3);
display: flex;
align-items: center;
justify-content: center;
@ -746,8 +758,8 @@ import moment from "moment";
margin-right: 0;
}
.selectFilterItem{
color: #2363FF;
background: #ECF2FF;
color: #FD7F21;
border: 2rpx solid #FD7F21;
}
}
}

View File

@ -1,229 +1,177 @@
<template>
<view class="main">
<view style="background: #fff">
<!-- 顶部标题-->
<view class="pageTitle">{{
detailObj.SETTLEMENT_TYPE===1?`${detailObj.SERVERPART_NAME}-${topDetail.SERVERPARTSHOP_NAME || ''}年度结算表`:
`${detailObj.SERVERPART_NAME}-${topDetail.SERVERPARTSHOP_NAME || ''}-${$moment(detailObj.ENDDATE).format('YYYYMM')}月度结算表`
}}</view>
<!-- 顶部详情-->
<view class="detailBox">
<view class="header">
<view class="headerBox" :style="{height: menu.bottom + 18 + 'px'}">
<view class="arrowBox" :style="{paddingTop: menu.top + 'px',height: menu.height + 'px'}">
<image @click="handleBack" class="img" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/navigation-left.svg"/>
<view class="detailRow">
<view class="detailAllItem">
<span class="label">商家名称</span>
<span class="value">{{topDetail.MERCHANTS_NAME || ''}}</span>
<view class="selectServiceBox">
<image class="serviceIcon" src="/static/images/settlementApproval/serviceIcon.png"/>
<view class="nameBox">
<span class="service">{{ detailObj.SERVERPART_NAME}}</span>
<image class="moreIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/commercial/rightArrow.svg"/>
</view>
</view>
<view class="detailRow">
<view class="detailAllItem">
<span class="label">合同总金额</span>
<span class="value">{{topDetail.RENTFEE ? $util.getMoney(topDetail.RENTFEE / 10000)+'万元':''}}</span>
</view>
</view>
<view class="detailRow">
<view class="detailItem">
<span class="label">税率</span>
<span class="value">{{topDetail.TaxRate ? `${topDetail.TaxRate}%` : '-'}}</span>
</view>
<view class="detailItem">
<span class="label">期除税收入</span>
<span class="value">{{topDetail.MINTURNOVER ? `${$util.getMoney(topDetail.MINTURNOVER / 10000)}万元` : ''}}</span>
</view>
</view>
<view class="detailRow">
<view class="detailItem">
<span class="label">履约保证金</span>
<span class="value">{{topDetail.SECURITYDEPOSIT ? $util.getMoney(topDetail.SECURITYDEPOSIT / 10000)+'万元':''}}</span>
</view>
<view class="detailItem">
<span class="label">提成比例</span>
<span class="value">{{topDetail.GUARANTEERATIO ? `${topDetail.GUARANTEERATIO}%` : '-'}}</span>
</view>
</view>
<view class="detailRow">
<view class="detailItem">
<span class="label">结算模式</span>
<span class="value">{{detailObj.SETTLEMENT_MODES?SETTLEMENT_MODESObj[detailObj.SETTLEMENT_MODES] : ''}}</span>
</view>
<view class="detailItem">
<span class="label">项目期数</span>
<span class="value">{{detailObj.CURRENT_PERIOD || ''}}</span>
</view>
</view>
<view class="detailRow" v-if="topDetail.DecorateDesc && topDetail.DecorateDesc!=='-'">
<view class="detailAllItem">
<span class="label">装修期</span>
<span class="value">{{topDetail.DecorateDesc || ''}}</span>
</view>
</view>
<view class="detailRow">
<view class="detailItem">
<span class="label">开始时间</span>
<span class="value">{{detailObj.STARTDATE || ''}}</span>
</view>
<view class="detailItem">
<span class="label">结束日期</span>
<span class="value">{{detailObj.ENDDATE || ''}}</span>
<view class="headerDetail" :style="{paddingTop: menu.bottom + 18 + 'px'}">
<view class="detailContent">
<view class="contentTop">
<view class="topLeft">
<image class="detailIcon" :src="projectObj.Project_ICO"/>
</view>
<view class="topRight">
<view class="detailTitle">{{topDetail.Name || ''}}</view>
<view class="typeBox">
<view class="typeItem">{{ settlementModes[topDetail.SettlementModes] || '' }}</view>
<view class="indexItem">{{ settlementModes.IndexStr || '' }}</view>
</view>
</view>
</view>
<!-- 月度的结算数据-->
<view class="tableBox" v-if="actuaryData.Approvalstate===0">
<view class="smallTitle">结算数据</view>
<view class="contentMoney">
<view class="moneyItem">
<view class="redMoney">{{ topDetail.RENTFEE ? $util.getMoney(topDetail.RENTFEE / 10000):'' }}</view>
<view class="label">
合同总金额
<span class="unit">/万元</span>
</view>
</view>
<view class="moneyItem">
<view class="moneyValue">{{topDetail.MINTURNOVER ? `${$util.getMoney(topDetail.MINTURNOVER / 10000)}` : ''}}</view>
<view class="label">
期除税收入
<span class="unit">/万元</span>
</view>
</view>
</view>
<view class="otherMessage">
<view class="otherItem">
<view class="value">{{topDetail.TaxRate ? `${topDetail.TaxRate}%` : '-'}}</view>
<view class="label">税率</view>
</view>
<view class="otherItem">
<view class="value">{{topDetail.GUARANTEERATIO ? `${topDetail.GUARANTEERATIO}%` : '-'}}</view>
<view class="label">提成比例</view>
</view>
<view class="otherItem">
<view class="value">{{topDetail.SECURITYDEPOSIT ? $util.getMoney(topDetail.SECURITYDEPOSIT / 10000):'-'}}</view>
<view class="label">履约保证金<span class="unit">/万元</span></view>
</view>
</view>
</view>
<view class="stateBox" v-if="detailObj.Approvalstate!==9" :style="{top: menu.bottom + 18 + 'px'}">
<image class="stateIcon" :src="detailObj.Approvalstate===0?'/static/images/settlementApproval/stateIcon.png':detailObj.Approvalstate===1?'/static/images/settlementApproval/pendIcon.png':''"/>
<span class="stateText">{{detailObj.Approvalstate===0?'待结算':detailObj.Approvalstate===1?'审核中':''}}</span>
</view>
<view class="overBox" v-else :style="{top: menu.bottom + 33 + 'px'}" >
<image class="overIcon" src="/static/images/settlementApproval/isPassIcon.png"/>
</view>
</view>
</view>
<view class="monthDetailBox">
<view class="detailBoxTop">
<span class="detailBoxTitle">月度结算详情</span>
</view>
<view class="detailBoxTime">
<image class="timeIcon" src="/static/images/settlementApproval/timeIcon.png"/>
<view class="endTime">结算时间{{detailObj.STARTDATE || ''}} {{detailObj.ENDDATE || ''}}</view>
</view>
<view class="table">
<view class="tableHeader">
<view class="firstTableTitle">数据类型</view>
<view class="borderRight"></view>
<view class="otherTableTitle">
<image class="dataIcon" src="/static/images/settlementApproval/settlementIcon.png"/>
结算数据
</view>
<view class="borderRight"></view>
<view class="otherTableTitle">
<image class="dataIcon" src="/static/images/settlementApproval/successData.png"/>
精算数据
</view>
</view>
<view class="tableBody">
<view class="tableRow tableRowGray">
<view class="labelRow">本月营收</view>
<view class="borderRight"></view>
<view class="valueRow">{{actuaryData.CurMonthRevenue?`${$util.getMoney(actuaryData.CurMonthRevenue)}`:'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">{{monthNewCalibration.CurMonthRevenueTEXT?monthNewCalibration.CurMonthRevenueTEXT:'-'}}</view>
</view>
<view class="tableRow">
<view class="rowItemBox">
<view class="allRowItem">
<span class="label">期限</span>
<span class="value">{{`${detailObj.STARTDATE}-${detailObj.ENDDATE}`}}</span>
</view>
<view class="labelRow">累计营业额</view>
<view class="borderRight"></view>
<view class="valueRow">{{actuaryData.REVENUEDAILY_AMOUNTTotal?`${$util.getMoney(actuaryData.REVENUEDAILY_AMOUNTTotal)}`:'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">{{monthNewCalibration.REVENUEDAILY_AMOUNTTotalTEXT?monthNewCalibration.REVENUEDAILY_AMOUNTTotalTEXT:'-'}}</view>
</view>
<view class="rowItemBox">
<view class="rowItem">
<span class="label">本月营收</span>
<span class="value">{{actuaryData.CurMonthRevenue?`${$util.getMoney(actuaryData.CurMonthRevenue)}`:'-'}}</span>
</view>
<view class="rowItem">
<span class="label">累计营业额</span>
<span class="value">{{actuaryData.REVENUEDAILY_AMOUNTTotal?`${$util.getMoney(actuaryData.REVENUEDAILY_AMOUNTTotal)}`:'-'}}</span>
<view class="tableRow tableRowGray">
<view class="labelRow">移动支付</view>
<view class="borderRight"></view>
<view class="valueRow">{{actuaryData.MOBILEPAY_AMOUNT?`${$util.getMoney(actuaryData.MOBILEPAY_AMOUNT)}`:'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">{{monthNewCalibration.MOBILEPAY_AMOUNTTEXT || ''}}
<span v-if="monthNewCalibration.MOBILEPAY_CORRECT" style="color: red">({{monthNewCalibration.MOBILEPAY_CORRECT>0?'+':''}}{{monthNewCalibration.MOBILEPAY_CORRECTTEXT || ''}})</span></view>
</view>
<!-- <view class="allRowItem">-->
<!-- <span class="label">累计营业额</span>-->
<!-- <span class="value">{{actuaryData.REVENUEDAILY_AMOUNTTotal?`${$util.getMoney(actuaryData.REVENUEDAILY_AMOUNTTotal)}`:''}}</span>-->
<!-- </view>-->
<view class="tableRow">
<view class="labelRow">移动冲正</view>
<view class="borderRight"></view>
<view class="valueRow">{{actuaryData.MOBILEPAY_CORRECT?`${$util.getMoney(actuaryData.MOBILEPAY_CORRECT)}`:'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">{{monthNewCalibration.MOBILEPAY_CORRECTTEXT || ''}}</view>
</view>
<view class="rowItemBox">
<view class="rowItem">
<span class="label">移动支付</span>
<span class="value">{{actuaryData.MOBILEPAY_AMOUNT?`${$util.getMoney(actuaryData.MOBILEPAY_AMOUNT)}`:'-'}}</span>
</view>
<view class="rowItem">
<span class="label">移动冲正</span>
<span class="value">{{actuaryData.MOBILEPAY_CORRECT?`${$util.getMoney(actuaryData.MOBILEPAY_CORRECT)}`:'-'}}</span>
</view>
</view>
<view class="rowItemBox">
<view class="rowItem">
<span class="label">现金交易</span>
<span class="value">{{actuaryData.CASHPAY_AMOUNT?`${$util.getMoney(actuaryData.CASHPAY_AMOUNT)}`:'-'}}</span>
</view>
<view class="rowItem">
<span class="label">现金冲正</span>
<span class="value">{{actuaryData.CASHPAY_CORRECT?`${$util.getMoney(actuaryData.CASHPAY_CORRECT)}`:'-'}}</span>
</view>
</view>
<view class="rowItemBox">
<view class="rowItem">
<span class="label">提成金额</span>
<span class="value">{{actuaryData.GUARANTEERATIOAMOUNT?`${$util.getMoney(actuaryData.GUARANTEERATIOAMOUNT)}`:'-'}}</span>
</view>
<view class="rowItem">
<span class="label">提成收入</span>
<span class="value">{{actuaryData.GUARANTEERATIOINCOME?`${$util.getMoney(actuaryData.GUARANTEERATIOINCOME)}`:'-'}}</span>
</view>
</view>
</view>
</view>
<!-- 月度的精算数据-->
<view class="tableBox" v-if="actuaryData.Approvalstate>0" >
<view class="comparedBox">
<view class="comparedBoxTitleBox">
<view class="beforeTitleBox" style="text-align: right">结算数据</view>
<view class="afterTitleBox">精算数据</view>
</view>
<view class="comparedItem">
<view class="compareLabel" style="width: 15%">期限</view>
<view class="beforeItem" style="width: 45%">{{`${detailObj.STARTDATE}-${detailObj.ENDDATE}`}}</view>
<view class="afterItem" :style="{color: detailObj.Approvalstate>0?'#faad14':'#1890ff'}">{{detailObj.Approvalstate>0?'已结算':'待结算'}}</view>
</view>
<view class="comparedItem">
<view class="compareLabel">本月营收</view>
<view class="beforeItem">{{actuaryData.CurMonthRevenue?`${$util.getMoney(actuaryData.CurMonthRevenue)}`:'-'}}</view>
<view class="afterItem">{{monthNewCalibration.CurMonthRevenueTEXT?monthNewCalibration.CurMonthRevenueTEXT:'-'}}</view>
</view>
<view class="comparedItem">
<view class="compareLabel">累计营业额</view>
<view class="beforeItem">{{actuaryData.REVENUEDAILY_AMOUNTTotal?`${$util.getMoney(actuaryData.REVENUEDAILY_AMOUNTTotal)}`:'-'}}</view>
<view class="afterItem">{{monthNewCalibration.REVENUEDAILY_AMOUNTTotalTEXT?monthNewCalibration.REVENUEDAILY_AMOUNTTotalTEXT:'-'}}</view>
</view>
<view class="comparedItem">
<view class="compareLabel">移动支付</view>
<view class="beforeItem">{{actuaryData.MOBILEPAY_AMOUNT?`${$util.getMoney(actuaryData.MOBILEPAY_AMOUNT)}`:'-'}}</view>
<view class="afterItem">
{{monthNewCalibration.MOBILEPAY_AMOUNTTEXT || ''}}
<span v-if="monthNewCalibration.MOBILEPAY_CORRECT" style="color: red">({{monthNewCalibration.MOBILEPAY_CORRECT>0?'+':''}}{{monthNewCalibration.MOBILEPAY_CORRECTTEXT || ''}})</span>
</view>
</view>
<view class="comparedItem">
<view class="compareLabel">移动冲正</view>
<view class="beforeItem">{{actuaryData.MOBILEPAY_CORRECT?`${$util.getMoney(actuaryData.MOBILEPAY_CORRECT)}`:'-'}}</view>
<view class="afterItem">{{monthNewCalibration.MOBILEPAY_CORRECTTEXT || ''}}</view>
</view>
<view class="comparedItem">
<view class="compareLabel">现金交易</view>
<view class="beforeItem">{{actuaryData.CASHPAY_AMOUNT?`${$util.getMoney(actuaryData.CASHPAY_AMOUNT)}`:'-'}}</view>
<view class="afterItem">
<view class="tableRow tableRowGray">
<view class="labelRow">现金交易</view>
<view class="borderRight"></view>
<view class="valueRow">{{actuaryData.CASHPAY_AMOUNT?`${$util.getMoney(actuaryData.CASHPAY_AMOUNT)}`:'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">
{{monthNewCalibration.CASHPAY_AMOUNTTEXT || ''}}
<span v-if="monthNewCalibration.CASHPAY_CORRECT" style="color: red">({{ monthNewCalibration.CASHPAY_CORRECT > 0 ? '+' : '' }}{{ monthNewCalibration.CASHPAY_CORRECTTEXT || '' }})</span>
</view>
</view>
<view class="comparedItem">
<view class="compareLabel">现金冲正</view>
<view class="beforeItem">{{actuaryData.CASHPAY_CORRECT?`${$util.getMoney(actuaryData.CASHPAY_CORRECT)}`:'-'}}</view>
<view class="afterItem">{{monthNewCalibration.CASHPAY_CORRECTTEXT || '0'}}</view>
<view class="tableRow">
<view class="labelRow">现金冲正</view>
<view class="borderRight"></view>
<view class="valueRow">{{actuaryData.CASHPAY_CORRECT?`${$util.getMoney(actuaryData.CASHPAY_CORRECT)}`:'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">{{monthNewCalibration.CASHPAY_CORRECTTEXT || '0'}}</view>
</view>
<view class="comparedItem">
<view class="compareLabel">提成金额</view>
<view class="beforeItem">{{actuaryData.GUARANTEERATIOAMOUNT?`${$util.getMoney(actuaryData.GUARANTEERATIOAMOUNT)}`:'-'}}</view>
<view class="afterItem">{{monthNewCalibration.GUARANTEERATIOAMOUNTTEXT || ''}}</view>
<view class="tableRow tableRowGray">
<view class="labelRow">提成金额</view>
<view class="borderRight"></view>
<view class="valueRow">{{actuaryData.GUARANTEERATIOAMOUNT?`${$util.getMoney(actuaryData.GUARANTEERATIOAMOUNT)}`:'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">{{monthNewCalibration.GUARANTEERATIOAMOUNTTEXT || ''}}</view>
</view>
<view class="comparedItem">
<view class="compareLabel">提成收入</view>
<view class="beforeItem">{{actuaryData.GUARANTEERATIOINCOME?`${$util.getMoney(actuaryData.GUARANTEERATIOINCOME)}`:'-'}}</view>
<view class="afterItem">{{monthNewCalibration.GUARANTEERATIOINCOMETEXT || ''}}</view>
<view class="tableRow">
<view class="labelRow">提成收入</view>
<view class="borderRight"></view>
<view class="valueRow">{{actuaryData.GUARANTEERATIOINCOME?`${$util.getMoney(actuaryData.GUARANTEERATIOINCOME)}`:'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">{{monthNewCalibration.GUARANTEERATIOINCOMETEXT || ''}}</view>
</view>
</view>
</view>
</view>
<!-- 流程-->
<view class="progressBox" >
<view class="progressTopBox">
<span class="progressTitle">审批流程</span>
<image class="getMoreIcon" :style="{transform: isShowProgress?'rotate(-180deg)':''}" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/downIconMore.png" @click="handleChangeShowProgress"/>
</view>
<view class="detailTopBox" v-if="detailObj.Approvalstate>0 && isShowProgress">
<view class="leftTop">
<span class="label">申请人</span>
<span class="value">{{progressDetail.STAFF_NAME || ''}}</span>
</view>
<view class="rightTop">
<span class="value">{{progressDetail.BUSINESS_STARTDATE || ''}}</span>
</view>
</view>
<view class="progressList" v-if="detailObj.Approvalstate>0">
<view class="progressTitle">审批流程</view>
<view class="detailTopBox" v-if="detailObj.Approvalstate>0 && isShowProgress && progressDetail.BUSINESSAPPROVAL_STATE !== 9000">
<view class="leftTop">
@ -232,25 +180,37 @@
</view>
</view>
<view class="progressList" v-if="isShowProgress">
<view class="progressItem" v-for="(item,index) in progressList" :key="index">
<view class="progressItemTop">
<view class="progressItemTopLeft">
<image class="progressIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/right-ico.png"/>
<span class="progressValue">{{`${item.APPLYAPPROVE_NAME}`}}</span>
<view class="listBox" v-if="isShowProgress">
<view class="listItem" v-for="(item,index) in progressList" :key="index">
<view class="listItemTop">
<view class="itemLeft">
<view class="nameIcon">
<span class="name" v-if="item.STAFF_NAME.length===3">{{item.STAFF_NAME.slice(1,3)}}</span>
<image v-else class="defaultPerson" src="/static/images/settlementApproval/defaultPersonIcon.png"/>
<image class="successIcon" src="/static/images/settlementApproval/passIcon.png"/>
</view>
</view>
<view class="itemRight">
<view class="nameBox">
<view class="name">{{`${item.APPLYAPPROVE_NAME}`}}</view>
<view class="time">{{`${item.APPLYAPPROVE_DATE}`}}</view>
</view>
<view class="desc">
{{item.STAFF_NAME}}:{{`${item.APPLYAPPROVE_INFO}`}}
</view>
</view>
<view class="progressItemTopRight">{{`${item.APPLYAPPROVE_DATE}`}}</view>
</view>
<view class="progressItemBottom">
<view class="progressItemBottomLeft">{{item.STAFF_NAME}}: </view>
<view class="progressItemBottomRight">{{`${item.APPLYAPPROVE_INFO}`}}</view>
<view class="lineBox" v-if="index < progressList.length-1">
<view class="line"></view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
@ -309,9 +269,14 @@ export default {
monthId:'', // id
monthNewCalibration:{},//
yearId:'',// id
menu:{},
settlementModes:{},//
projectObj:{},//
}
},
async onLoad(query){
this.menu = uni.getMenuButtonBoundingClientRect()
this.handleGetSETTLEMENTMODES()
if (query.id) {
this.isPush = true
await this.handleGetPageDetail(query.id)
@ -320,6 +285,7 @@ export default {
this.detailObj = JSON.parse(query.obj)
}
}
console.log('this.detailObj',this.detailObj)
if(query.staticMonth){
this.staticMonth = this.$moment(query.staticMonth ).format('YYYYMM')
}
@ -334,6 +300,8 @@ export default {
}
//
await this.handleGetProgress()
},
onUnload(){
@ -358,6 +326,24 @@ export default {
this.closeShowSelect()
},
methods:{
//
async handleGetSETTLEMENTMODES(){
const req = { FieldExplainField: 'SETTLEMENT_MODES' }
const result = await request.$webGet('EShangApiMain/FrameWork/GetFieldEnumByField',req)
console.log('result',result)
let res = result.Result_Data.List
let obj = {}
if(res && res.length>0){
res.forEach(item=>{
obj[item.value] = item.label
})
}
this.settlementModes = obj
},
//
handleBack(){
this.$util.toNextRoute('navigateBack',{ delta: 1})
},
//
async handleGetPageDetail(id) {
uni.showLoading({
@ -407,6 +393,7 @@ export default {
if(res && res.length>0){
let detailObj = res[0]
this.topDetail = detailObj.RevenueRecognition
this.projectObj = detailObj.BUSINESSPROJECT
console.log('this.topDetail',this.topDetail)
}
uni.hideLoading()
@ -572,6 +559,517 @@ export default {
<style scoped lang="scss">
.main{
.header{
width: 100%;
background-image: url("https://eshangtech.com/ShopICO/yxcl/settlementApproval/pageBg.png");
background-repeat: no-repeat;
background-size: contain;
margin-bottom: 24rpx;
.headerBox{
width: 100%;
box-sizing: border-box;
padding: 0 32rpx;
position: fixed;
top: 0;left: 0;
z-index: 9;
background-image: url("https://eshangtech.com/ShopICO/yxcl/settlementApproval/pageBg.png");
background-repeat: no-repeat;
background-size: cover;
.arrowBox{
width: 100%;
display: flex;
align-items: center;
.img{
width: 48rpx;
height: 48rpx;
}
.selectServiceBox{
margin-left: 16rpx;
display: flex;
align-items: center;
.serviceIcon{
width: 80rpx;
height: 80rpx;
position: relative;
z-index: 2;
}
.nameBox{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 28rpx;
color: #160002;
line-height: 40rpx;
text-align: left;
font-style: normal;
padding: 12rpx 34rpx 12rpx 48rpx;
display: inline-block;
border-top-right-radius: 200rpx;
border-bottom-right-radius: 200rpx;
background: #fff;
transform: translateX(-20px);
.moreIcon{
width: 24rpx;
height: 24rpx;
margin-left: 14rpx;
}
}
}
}
}
.headerDetail{
width: calc(100% - 48rpx);
margin-left: 24rpx;
background: #FFFFFF;
border-radius: 16rpx;
box-sizing: border-box;
padding: 1px;
position: relative;
.detailContent{
width: 100%;
background: linear-gradient( 180deg, #FFEBE0 0%, #FFFFFF 30%);
border-radius: 14rpx 14rpx 0rpx 0rpx;
box-sizing: border-box;
padding: 24rpx;
.contentTop{
display: flex;
align-items: center;
.topLeft{
width: 96rpx;
height: 96rpx;
border-radius: 16rpx;
overflow: hidden;
margin-right: 16rpx;
.detailIcon{
width: 96rpx;
height: 96rpx;
}
}
.topRight{
.detailTitle{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 32rpx;
color: #160002;
line-height: 44rpx;
text-align: left;
font-style: normal;
margin-bottom: 12rpx;
}
.typeBox{
display: flex;
align-items: center;
.typeItem{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #ED8200;
line-height: 36rpx;
text-align: left;
font-style: normal;
padding: 2rpx 8rpx;
background: #FFEEC8;
border-radius: 4rpx;
}
.indexItem{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #FF7200;
line-height: 36rpx;
text-align: left;
font-style: normal;
background: #FFEAD9;
border-radius: 4rpx;
padding: 2rpx 8rpx;
margin-left: 12rpx;
}
}
}
}
.contentMoney{
display: flex;
align-items: center;
margin-top: 40rpx;
.moneyItem{
width: 50%;
.redMoney{
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 40rpx;
color: #9A3D1A;
line-height: 50rpx;
text-align: left;
font-style: normal;
}
.moneyValue{
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 34rpx;
color: #160002;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
.label{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #786B6C;
line-height: 36rpx;
text-align: left;
font-style: normal;
.unit{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #A69E9F;
line-height: 36rpx;
text-align: left;
font-style: normal;
margin-left: 4rpx;
}
}
}
}
.otherMessage{
background: #F9F9F9;
border-radius: 8rpx;
width: 100%;
box-sizing: border-box;
padding: 24rpx;
margin-top: 24rpx;
display: flex;
align-items: center;
.otherItem{
width: calc(100% / 3);
box-sizing: border-box;
.value{
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 28rpx;
color: #160002;
line-height: 36rpx;
text-align: left;
font-style: normal;
margin-bottom: 4rpx;
}
.label{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #786B6C;
line-height: 36rpx;
text-align: left;
font-style: normal;
.unit{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #A69E9F;
line-height: 36rpx;
text-align: left;
font-style: normal;
margin-left: 4rpx;
}
}
}
}
}
.stateBox{
position: absolute;
right: 0;top: 0;
display: flex;
align-items: center;
padding: 10rpx 16rpx;
background: linear-gradient( 48deg, #FF9762 0%, #FF8C8C 100%);
border-radius: 0rpx 16rpx 0rpx 38rpx;
.stateIcon{
width: 28rpx;
height: 28rpx;
margin-right: 6rpx;
}
.stateText{
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #FFFFFF;
line-height: 36rpx;
text-align: left;
font-style: normal;
}
}
.overBox{
position: absolute;
right: 30rpx;top: 30rpx;
.overIcon{
width: 134rpx;
height: 134rpx;
}
}
}
}
.monthDetailBox{
width: 100%;
box-sizing: border-box;
padding: 32rpx 32rpx;
background: #FFFFFF;
border-radius: 32rpx 32rpx 0rpx 0rpx;
.detailBoxTop{
display: flex;
align-items: center;
justify-content: space-between;
.detailBoxTitle{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 32rpx;
color: #212226;
line-height: 44rpx;
text-align: left;
font-style: normal;
margin-bottom: 8rpx;
}
.goMoreMonth{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 28rpx;
color: #FA8B39;
line-height: 40rpx;
text-align: left;
font-style: normal;
.rightArrow{
width: 24rpx;
height: 24rpx;
}
}
}
.detailBoxTime{
display: flex;
align-items: center;
margin-bottom: 20rpx;
margin-top: 8rpx;
.timeIcon{
width: 28rpx;
height: 28rpx;
margin-right: 8rpx;
}
.endTime{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #786B6C;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
}
.table{
width: calc(100% - 4rpx);
border-radius: 12rpx;
border: 2rpx solid #EEEEF0;
.tableHeader{
display: flex;
align-items: center;
width: 100%;
height: 156rpx;
background-color: #F7F8FA;
.firstTableTitle{
width: 30%;
box-sizing: border-box;
padding-left: 24rpx;
}
.borderRight{
width: 2rpx;
height: 100%;
background-color: #F1F1F1;
}
.otherTableTitle{
width: 35%;
display: flex;
flex-direction: column;
align-items: center;
.dataIcon{
width: 60rpx;
height: 60rpx;
margin-bottom: 8rpx;
}
}
}
.tableBody{
.tableRow{
width: 100%;
height: 100%;
display: flex;
align-items: center;
.labelRow{
width: 30%;
box-sizing: border-box;
padding: 22rpx 0 22rpx 22rpx;
font-size: 28rpx;
}
.refundPay{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 24rpx;
color: #9A3D1A;
line-height: 36rpx;
text-align: left;
font-style: normal;
}
.borderRight{
width: 2rpx;
min-height: 80rpx;
background-color: #F1F1F1;
}
.valueRow{
width: 35%;
box-sizing: border-box;
padding: 22rpx 24rpx 22rpx 0;
text-align: right;
font-size: 28rpx;
}
}
.tableRowGray{
background-color: #F9F9FA!important;
}
}
}
}
.progressList{
width: 100%;
background-color: #fff;
box-sizing: border-box;
padding: 48rpx 32rpx 0;
.progressTitle{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 32rpx;
color: #212226;
line-height: 44rpx;
text-align: left;
font-style: normal;
}
.detailTopBox{
width: 100%;
box-sizing: border-box;
//padding: 0 16rpx;
display: flex;
justify-content: space-between;
.leftTop,.rightTop{
display: flex;
align-items: center;
.label{
color: #888;
font-size: 26rpx;
}
.value{
margin-left: 8rpx;
font-size: 26rpx;
}
}
}
.listBox{
margin-top: 24rpx;
width: 100%;
.listItem{
.listItemTop{
display: flex;
align-items: flex-start;
.itemLeft{
display: flex;
align-items: center;
.nameIcon{
width: 72rpx;
height: 72rpx;
background: #FFA35F;
border-radius: 40rpx;
position: relative;
display: flex;
align-items: center;
justify-content: center;
.successIcon{
position: absolute;
width: 32rpx;
height: 32rpx;
right: 0;
bottom: 0;
}
.name{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #FFFFFF;
line-height: 32rpx;
text-align: left;
font-style: normal;
}
.defaultPerson{
width: 32rpx;
height: 36rpx;
}
}
}
.itemRight{
margin-left: 12rpx;
.nameBox{
display: flex;
align-items: center;
justify-content: space-between;
.name{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #242729;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
.time{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #9FA3A8;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
}
.desc{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #9FA3A8;
line-height: 40rpx;
text-align: left;
font-style: normal;
width: 100%;
display: inline-block;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
}
}
.lineBox{
width: 100%;
height: 38rpx;
position: relative;
.line{
position: absolute;
width: 4rpx;
height: 50rpx;
background: #E3E3E4;
bottom: 3rpx;left: 32rpx;
}
}
}
}
}
.pageTitle{
width: 100%;
box-sizing: border-box;

View File

@ -0,0 +1,232 @@
<template>
<view class="main">
<view class="listBox" v-if="dataList && dataList.length>0">
<view class="listItem" v-for="(item,index) in dataList" :key="index" @click="handleGoMonthDetail(item)">
<view class="itemTop">
<view class="topLeft">
<image class="leftIcon" src="/static/images/settlementApproval/monthIcon.png"/>
<span class="leftTime">{{ item.StartDate || '' }} {{item.EndDate || ''}} </span>
</view>
<view class="topRight">
<span class="itemState">{{item.IsApplySuccess?'已结算':'待结算'}}</span>
</view>
</view>
<view class="itemContent">
<view class="sumBox">
<view class="bigMoney">{{item.RevenueAmount?numeral(item.RevenueAmount).format('0,0.00'):'-'}}</view>
<view class="bigText">营业额合计<span class="unit">/万元</span></view>
</view>
<view class="contentList">
<view class="contentItem">
<view class="value">{{item.CashAmount?numeral(item.CashAmount).format('0,0.00'):'-'}}</view>
<view class="label">现金</view>
</view>
<view class="contentItem">
<view class="value">{{item.MobilePayAmount?numeral(item.MobilePayAmount).format('0,0.00'):'-'}}</view>
<view class="label">微支付</view>
</view>
<view class="contentItem">
<view class="value">{{item.RoyaltyAmount?numeral(item.RoyaltyAmount).format('0,0.00'):'-'}}</view>
<view class="label">驿达收款</view>
</view>
<view class="contentItem">
<view class="value">{{item.ReceivableAmount?numeral(item.ReceivableAmount).format('0,0.00'):'-'}}</view>
<view class="label">营收费用合计</view>
</view>
<view class="contentItem">
<view class="value">{{item.GuaranteeFee?numeral(item.GuaranteeFee).format('0,0.00'):'-'}}</view>
<view class="label">租金</view>
</view>
<view class="contentItem">
<view class="value">{{item.RefundSupplement?numeral(item.RefundSupplement).format('0,0.00'):'-'}}</view>
<view class="label">退补款</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import numeral from "numeral";
export default {
name: "monthList",
data() {
return {
dataList: [],
detailObj:{}
}
},
onLoad(query){
console.log('query',query)
if(query.list){
this.dataList = JSON.parse(query.list)
console.log('this.dataList',this.dataList)
}
if(query.detailObj){
this.detailObj = JSON.parse(query.detailObj)
console.log('this.detailObj',this.detailObj)
}
},
methods:{
numeral,
handleGoMonthDetail(obj){
console.log('this.detailObj',this.detailObj)
console.log('obj',obj)
let id = obj.BUSINESSPROJECT_ID ? obj.BUSINESSPROJECT_ID : ''
let res = {
...obj,
STARTDATE: obj.StartDate ? this.$moment(obj.StartDate.replace('.', '-').replace('.', '-')).format('YYYY-MM-DD') : '',
ENDDATE: obj.EndDate ? this.$moment(obj.EndDate.replace('.', '-').replace('.', '-')).format('YYYY-MM-DD') : '',
SHOPROYALTY_ID: this.detailObj.SHOPROYALTY_ID || '',
BUSINESSPROJECT_ID: this.detailObj.BUSINESSPROJECT_ID || '',
SERVERPARTSHOP_ID: this.detailObj.SERVERPARTSHOP_ID || '',
SERVERPART_ID: this.detailObj.SERVERPART_ID || '',
SERVERPART_NAME: this.detailObj.SERVERPART_NAME || '',
Approvalstate: this.detailObj.Approvalstate
}
let staticMonth = this.$moment(res.ENDDATE).endOf('months').format('YYYYMM')
this.$util.toNextRoute('navigateTo', `/pages/settlementApproval/monthDetail?obj=${JSON.stringify(res)}&staticMonth=${staticMonth}&id=${id}`)
}
}
}
</script>
<style scoped lang="scss">
.main{
width: 100%;
min-height: 100vh;
box-sizing: border-box;
padding: 26rpx 0 ;
background-color: #F3F3F3;
.listBox{
width: 100%;
box-sizing: border-box;
padding: 0 32rpx;
.listItem{
width: 100%;
box-sizing: border-box;
background-color: #fff;
border-radius: 16rpx;
margin-bottom: 24rpx;
.itemTop{
box-sizing: border-box;
padding: 24rpx;
display: flex;
align-items: center;
justify-content: space-between;
background: linear-gradient( 180deg, #FFF7F2 0%, #FFFFFF 100%);
border-radius: 14rpx 14rpx 0rpx 0rpx;
border-bottom: 2rpx solid #F7F7F7;
.topLeft{
display: flex;
align-items: center;
.leftIcon{
width: 40rpx;
height: 40rpx;
margin-right: 12rpx;
}
.leftTime{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #242729;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
}
.topRight{
.itemState{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #C27424;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
}
}
.itemContent{
width: 100%;
box-sizing: border-box;
padding: 0 24rpx;
.sumBox{
margin-top: 40rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.bigMoney{
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 32rpx;
color: #9A3D1A;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
.bigText{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #786B6C;
line-height: 36rpx;
text-align: left;
font-style: normal;
.unit{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #A69E9F;
line-height: 36rpx;
text-align: left;
font-style: normal;
}
}
}
.contentList{
margin-top: 32rpx;
display: flex;
align-items: center;
flex-wrap: wrap;
padding-bottom: 8rpx;
.contentItem{
width: calc(100% / 3);
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
margin-bottom: 24rpx;
.value{
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 26rpx;
color: #483E3A;
line-height: 32rpx;
text-align: right;
font-style: normal;
height: 32rpx;
}
.label{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #786B6C;
line-height: 36rpx;
text-align: right;
font-style: normal;
height: 36rpx;
}
}
}
}
}
}
}
</style>

View File

@ -1,6 +1,6 @@
<template>
<view class="main">
<!-- 顶部-->
<!-- 顶部-->
<view style="background: #fff">
<view class="pageTitle">{{detailObj.BUSINESSPROJECT_NAME || ''}}</view>
<!-- 顶部详情-->
@ -138,8 +138,243 @@
<view class="line" v-if="index!==yearDataList.length-1"></view>
</view>
</view>
<!-- 合作商户合同期结算明细表-->
<view style="background: #fff">
<view class="renovationBox">
<view v-for="(item,index) in yearDataList" :key="index">
<view v-if="index!==yearDataList.length-1" style="width: calc(100% - 48rpx);margin-left: 24rpx;background-color: #F3F3F3;margin-bottom: 24rpx">
<view class="renovationContent">
<view class="renovationTop">
<view class="topLeft">
<image class="renovationIcon" src="/static/images/settlementApproval/renovationIcon.png"/>
</view>
<view class="topRight">
<view class="contentTitle">{{item.PeriodIndexStr ||''}}</view>
<view style="display: flex;align-items: center;justify-content: space-between">
<view class="timeBox">{{item.StartDate || ''}} {{item.EndDate || ''}}</view>
<view class="goMoreMonth" v-if="item.children && item.children.length>0" @click="handleGoMonthList(item)">
查看月度结算
<image class="rightArrow" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/labourRight.png"/>
</view>
</view>
</view>
</view>
<view class="renovationMoney">
<view class="itemTitle">营业额</view>
<view class="revenueBox">
<view class="revenueItem">
<view class="revenueValue">{{item.RevenueAmount?numeral(item.RevenueAmount).format('0,0.00'):'-'}}</view>
<view class="revenueLabel">合计</view>
</view>
<view class="revenueItem">
<view class="revenueValue">{{item.CashAmount?numeral(item.CashAmount).format('0,0.00'):'-'}}</view>
<view class="revenueLabel">现金</view>
</view>
<view class="revenueItem">
<view class="revenueValue">{{item.MobilePayAmount?numeral(item.MobilePayAmount).format('0,0.00'):'-'}}</view>
<view class="revenueLabel">微支付</view>
</view>
</view>
<view class="line"></view>
<view class="itemTitle">驿达收款</view>
<view class="revenueBox">
<view class="revenueItem">
<view class="revenueValue">{{item.RoyaltyAmount?numeral(item.RoyaltyAmount).format('0,0.00'):'-'}}</view>
<view class="revenueLabel">合计</view>
</view>
</view>
<view class="line"></view>
<view class="itemTitle">营收费用</view>
<view class="revenueBox">
<view class="revenueItem">
<view class="revenueValue">{{item.ReceivableAmount?numeral(item.ReceivableAmount).format('0,0.00'):'-'}}</view>
<view class="revenueLabel">合计</view>
</view>
<view class="revenueItem">
<view class="revenueValue">{{item.GuaranteeFee?numeral(item.GuaranteeFee).format('0,0.00'):'-'}}</view>
<view class="revenueLabel">租金</view>
</view>
<view class="revenueItem">
<view class="revenueValue">{{item.RefundSupplement?numeral(item.RefundSupplement).format('0,0.00'):'-'}}</view>
<view class="revenueLabel">退补款</view>
</view>
</view>
</view>
<view class="stateBox" v-if="detailObj.Approvalstate!==9">
<image class="stateIcon" :src="detailObj.Approvalstate===0?'/static/images/settlementApproval/stateIcon.png':detailObj.Approvalstate===1?'/static/images/settlementApproval/pendIcon.png':''"/>
<span class="stateText">{{detailObj.Approvalstate===0?'待结算':detailObj.Approvalstate===1?'审核中':''}}</span>
</view>
<view class="overBox" v-else>
<image class="overIcon" src="/static/images/settlementApproval/isPassIcon.png"/>
</view>
</view>
</view>
<view v-else>
<view class="pageDetailBox">
<view class="detailBoxTop">
<span class="detailBoxTitle">合作商户合同期结算明细表</span>
<view class="goMoreMonth" v-if="item.children && item.children.length>0" @click="handleGoMonthList(item)">
查看月度结算
<image class="rightArrow" src="https://eshangtech.com/ShopICO/ahyd-BID/newIndex3/labourRight.png"/>
</view>
</view>
<view class="detailBoxTime">
<image class="timeIcon" src="/static/images/settlementApproval/timeIcon.png"/>
<view class="endTime">结算时间{{item.StartDate || ''}} {{item.EndDate || ''}}</view>
</view>
<view class="table">
<view class="tableHeader">
<view class="firstTableTitle">数据类型</view>
<view class="borderRight"></view>
<view class="otherTableTitle">
<image class="dataIcon" src="/static/images/settlementApproval/settlementIcon.png"/>
结算数据
</view>
<view class="borderRight"></view>
<view class="otherTableTitle">
<image class="dataIcon" src="/static/images/settlementApproval/successData.png"/>
精算数据
</view>
</view>
<view class="tableBody">
<view class="tableRow">
<view class="labelRow refundPay">退补款</view>
<view class="borderRight"></view>
<view class="valueRow refundPay">{{item.RefundSupplement?numeral(item.RefundSupplement).format('0,0.00'):'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow refundPay">{{yearDataListObj.RefundSupplement?numeral(yearDataListObj.RefundSupplement).format('0,0.00'):''}}</view>
</view>
<view class="tableRow tableRowGray">
<view class="labelRow">营业额合计</view>
<view class="borderRight"></view>
<view class="valueRow">{{item.RevenueAmount?numeral(item.RevenueAmount).format('0,0.00'):'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">
{{yearDataListObj.RevenueAmountTEXT?yearDataListObj.RevenueAmountTEXT:''}}
<view style="color: red" v-if="yearDataListObj.CorrectAmount">({{yearDataListObj.CorrectAmount>0?'+':''}}{{yearDataListObj.CorrectAmountTEXT || ''}})</view>
</view>
</view>
<view class="tableRow">
<view class="labelRow" style="padding-left: 44rpx">现金</view>
<view class="borderRight"></view>
<view class="valueRow">{{item.CashAmount?numeral(item.CashAmount).format('0,0.00'):'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">{{yearDataListObj.CashAmount?numeral(yearDataListObj.CashAmount).format('0,0.00'):''}}</view>
</view>
<view class="tableRow tableRowGray">
<view class="labelRow" style="padding-left: 44rpx">微支付</view>
<view class="borderRight"></view>
<view class="valueRow">{{item.MobilePayAmount?numeral(item.MobilePayAmount).format('0,0.00'):'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">{{yearDataListObj.MobilePayAmount?numeral(yearDataListObj.MobilePayAmount).format('0,0.00'):''}}</view>
</view>
<view class="tableRow">
<view class="labelRow">驿达收款</view>
<view class="borderRight"></view>
<view class="valueRow">{{item.RoyaltyAmount?numeral(item.RoyaltyAmount).format('0,0.00'):'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">{{yearDataListObj.RoyaltyAmount?numeral(yearDataListObj.RoyaltyAmount).format('0,0.00'):''}}</view>
</view>
<view class="tableRow tableRowGray">
<view class="labelRow">营收费用合计</view>
<view class="borderRight"></view>
<view class="valueRow">{{item.ReceivableAmount?numeral(item.ReceivableAmount).format('0,0.00'):'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">{{yearDataListObj.ReceivableAmount?numeral(yearDataListObj.ReceivableAmount).format('0,0.00'):''}}</view>
</view>
<view class="tableRow">
<view class="labelRow" style="padding-left: 44rpx">租金</view>
<view class="borderRight"></view>
<view class="valueRow">{{item.GuaranteeFee || item.GuaranteeFee===0?numeral(item.GuaranteeFee).format('0,0.00'):'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">{{yearDataListObj.GuaranteeFee?numeral(yearDataListObj.GuaranteeFee).format('0,0.00'):''}}</view>
</view>
<view class="tableRow tableRowGray">
<view class="labelRow" style="padding-left: 44rpx">物业费</view>
<view class="borderRight"></view>
<view class="valueRow">{{item.PropertyFee || item.PropertyFee===0?numeral(item.PropertyFee).format('0,0.00'):'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">{{yearDataListObj.PropertyFee || yearDataListObj.PropertyFee===0?numeral(yearDataListObj.PropertyFee).format('0,0.00'):''}}</view>
</view>
<view class="tableRow">
<view class="labelRow" style="padding-left: 44rpx">房租</view>
<view class="borderRight"></view>
<view class="valueRow">{{item.HouseRent || item.HouseRent===0?numeral(item.HouseRent).format('0,0.00'):'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">{{yearDataListObj.HouseRent || yearDataListObj.HouseRent===0?numeral(yearDataListObj.HouseRent).format('0,0.00'):''}}</view>
</view>
<view class="tableRow tableRowGray">
<view class="labelRow" style="padding-left: 44rpx">罚款</view>
<view class="borderRight"></view>
<view class="valueRow">{{item.BreachPenalty || item.BreachPenalty===0?numeral(item.BreachPenalty).format('0,0.00'):'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">{{yearDataListObj.BreachPenalty || yearDataListObj.BreachPenalty===0?numeral(yearDataListObj.BreachPenalty).format('0,0.00'):''}}</view>
</view>
<view class="tableRow">
<view class="labelRow" style="padding-left: 44rpx">电费</view>
<view class="borderRight"></view>
<view class="valueRow">{{item.ElectricityCharge || item.ElectricityCharge===0?numeral(item.ElectricityCharge).format('0,0.00'):'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">{{yearDataListObj.ElectricityCharge || yearDataListObj.ElectricityCharge===0?numeral(yearDataListObj.ElectricityCharge).format('0,0.00'):''}}</view>
</view>
<view class="tableRow tableRowGray">
<view class="labelRow" style="padding-left: 44rpx">水费</view>
<view class="borderRight"></view>
<view class="valueRow">{{item.WaterCharge || item.WaterCharge===0?numeral(item.WaterCharge).format('0,0.00'):'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">{{yearDataListObj.WaterCharge || yearDataListObj.WaterCharge===0?numeral(yearDataListObj.WaterCharge).format('0,0.00'):''}}</view>
</view>
<view class="tableRow">
<view class="labelRow" style="padding-left: 44rpx">其他</view>
<view class="borderRight"></view>
<view class="valueRow">{{item.OtherFee || item.OtherFee===0?numeral(item.OtherFee).format('0,0.00'):'-'}}</view>
<view class="borderRight"></view>
<view class="valueRow">{{yearDataListObj.OtherFee || yearDataListObj.OtherFee===0?numeral(yearDataListObj.OtherFee).format('0,0.00'):''}}</view>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="tableBoxs">
<view class="amountBox">
<div class="commodityContent">
<input class="color1" type="number" v-model="correctionAmount"/>
<div>
<span class="ctitle">冲正金额</span>
</div>
</div>
<view class="btn">
<span class="btnItem" @click="handleRecalibrate">精算数据</span>
<span class="btnItem" v-if="isSuccessRecalibrate" style="margin-left: 16rpx" @click="handleShowApplyForPop">发起申请</span>
</view>
</view>
</view>
</view>
<view style="background: #fff" v-if="false">
<view class="tableBox" >
<view class="smallTitle">合作商户合同期结算明细表</view>
<view class="smallTitle">结算数据</view>
@ -346,16 +581,16 @@
<!--发起结算的按钮-->
<view class="btnBox" v-if="isSuccessRecalibrate">
<view class="btnList">
<view class="btnItem" @click="handleShowApplyForPop">
<view class="iconBox">
<image class="itemIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/yj-btn.png"/>
</view>
<span>发起申请</span>
</view>
</view>
</view>
<!-- <view class="btnBox" v-if="isSuccessRecalibrate">-->
<!-- <view class="btnList">-->
<!-- <view class="btnItem" @click="handleShowApplyForPop">-->
<!-- <view class="iconBox">-->
<!-- <image class="itemIcon" src="https://eshangtech.com/ShopICO/ahyd-BID/yj-btn.png"/>-->
<!-- </view>-->
<!-- <span>发起申请</span>-->
<!-- </view>-->
<!-- </view>-->
<!-- </view>-->
<!-- 年度申请 -->
<UniPop :show="isShowYearApplyFor" @hidePopup="closeYearApplyFor" type="middle" @touchmove.prevent round="true">
@ -431,12 +666,15 @@ export default {
approveDesc:'',//
yearId:'',// id
yearAfterData:[],//
menu:{},//
yearDataListObj:{}
}
},
computed: {
...mapGetters({'users':'getUser'}),
},
async onLoad(query){
this.menu = uni.getMenuButtonBoundingClientRect()
console.log('query',query)
if(query.obj){
this.detailObj = JSON.parse(query.obj)
@ -454,6 +692,16 @@ export default {
},
methods:{
numeral,
//
handleGoMonthList(obj){
console.log('obj',obj)
let list = JSON.stringify(obj.children)
this.$util.toNextRoute('navigateTo', `/pages/settlementApproval/monthList?list=${list}&detailObj=${JSON.stringify(this.detailObj)}`)
},
//
handleBack(){
this.$util.toNextRoute('navigateBack',{ delta: 1})
},
//
handleShowApplyForPop(){
this.isShowYearApplyFor = true
@ -603,6 +851,7 @@ export default {
//
handleRecalibrate(){
let newReqList = []
console.log('this.yearDataList',this.yearDataList)
this.yearDataList.forEach((item) => {
if (item.PeriodDesc !== '精算数据') {
newReqList.push(item)
@ -628,9 +877,26 @@ export default {
let list = []
newObj.PeriodDesc = '精算数据'
newObj.children = null
console.log('newObj',newObj)
list.push(newObj)
this.yearDataListAfter = list
console.log('this.yearDataList',this.yearDataList)
list.forEach(item => {
item.level = 1
item.CorrectAmount = this.correctionAmount
item.showChildren = false
item.CashAmountTEXT = numeral(item.CashAmount).format('0,0.00')
item.MobilePayAmountTEXT = numeral(item.MobilePayAmount).format('0,0.00')
item.RevenueAmountTEXT = numeral(item.RevenueAmount).format('0,0.00')
// numeral(this.$util.getMoney(item.RevenueAmount)).format('0,0.00') + (item.CorrectAmount ? ('(' + (item.CorrectAmount > 0 ? '+' : '') + item.CorrectAmount + ')') : '')
item.CorrectAmountTEXT = numeral(item.CorrectAmount).format('0,0.00')
item.RoyaltyAmountTEXT = numeral(item.RoyaltyAmount).format('0,0.00')
item.ReceivableAmountTEXT = numeral(item.ReceivableAmount).format('0,0.00')
item.GuaranteeFeeTEXT = numeral(item.GuaranteeFee).format('0,0.00')
item.RefundSupplementTEXT = numeral(item.RefundSupplement).format('0,0.00')
item.children = null
})
this.yearDataListObj = list[0]
console.log('this.yearDataListAfter',this.yearDataListAfter)
this.isSuccessRecalibrate = true
},
//
@ -915,6 +1181,8 @@ export default {
<style scoped lang="scss">
.main{
width: 100%;
height: 100vh;
.pageTitle{
width: 100%;
box-sizing: border-box;
@ -1037,12 +1305,611 @@ export default {
padding: 6rpx 24rpx;
margin-top: 24rpx;
border-radius: 8rpx;
background: #1890FF;
background: #FA8B39;
color: #fff;
}
}
}
}
.renovationBox{
width: 100%;
//width: calc(100% - 48rpx);
//margin-left: 24rpx;
box-sizing: border-box;
padding: 2rpx;
border-radius: 16rpx;
.renovationContent{
width: 100%;
background: linear-gradient( 180deg, #FFF7F2 0%, #FFFFFF 20%);
box-sizing: border-box;
border-radius: 16rpx;
padding: 22rpx;
position: relative;
.renovationTop{
display: flex;
align-items: center;
margin-bottom: 40rpx;
.topLeft{
margin-right: 16rpx;
width: 80rpx;
height: 80rpx;
border-radius: 8rpx;
overflow: hidden;
.renovationIcon{
width: 80rpx;
height: 80rpx;
}
}
.topRight{
flex: 1;
.contentTitle{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 32rpx;
color: #160002;
line-height: 44rpx;
text-align: left;
font-style: normal;
}
.timeBox{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #786B6C;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
.goMoreMonth{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 28rpx;
color: #FA8B39;
line-height: 40rpx;
text-align: left;
font-style: normal;
.rightArrow{
width: 24rpx;
height: 24rpx;
}
}
}
}
.renovationMoney{
.itemTitle{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #786B6C;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
.revenueBox{
margin-top: 16rpx;
display: flex;
.revenueItem{
width: calc(100% / 3);
.revenueValue{
font-family: DINAlternate, DINAlternate;
font-weight: bold;
font-size: 36rpx;
color: #160002;
line-height: 44rpx;
text-align: left;
font-style: normal;
}
.revenueLabel{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #786B6C;
line-height: 36rpx;
text-align: left;
font-style: normal;
marginTop: 4rpx;
}
}
}
.line{
width: 100%;
height: 2rpx;
background: #F5F5F5;
border-radius: 11rpx;
margin: 24rpx 0;
}
}
.pageDetailBox{
width: 100%;
box-sizing: border-box;
padding: 32rpx;
background-color: #fff;
border-radius: 32rpx 32rpx 0rpx 0rpx;
.detailBoxTop{
display: flex;
align-items: center;
justify-content: space-between;
.detailBoxTitle{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 32rpx;
color: #212226;
line-height: 44rpx;
text-align: left;
font-style: normal;
}
.goMoreMonth{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 28rpx;
color: #FA8B39;
line-height: 40rpx;
text-align: left;
font-style: normal;
.rightArrow{
width: 24rpx;
height: 24rpx;
}
}
}
.detailBoxTime{
display: flex;
align-items: center;
margin-bottom: 20rpx;
margin-top: 8rpx;
.timeIcon{
width: 28rpx;
height: 28rpx;
margin-right: 8rpx;
}
.endTime{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #786B6C;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
}
.table{
width: calc(100% - 4rpx);
border-radius: 12rpx;
border: 2rpx solid #EEEEF0;
.tableHeader{
display: flex;
align-items: center;
width: 100%;
height: 156rpx;
background-color: #F7F8FA;
.firstTableTitle{
width: 30%;
box-sizing: border-box;
padding-left: 24rpx;
}
.borderRight{
width: 2rpx;
height: 100%;
background-color: #F1F1F1;
}
.otherTableTitle{
width: 35%;
display: flex;
flex-direction: column;
align-items: center;
.dataIcon{
width: 60rpx;
height: 60rpx;
margin-bottom: 8rpx;
}
}
}
.tableBody{
.tableRow{
width: 100%;
height: 100%;
display: flex;
align-items: center;
.labelRow{
width: 30%;
box-sizing: border-box;
padding: 22rpx 0 22rpx 22rpx;
}
.refundPay{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 24rpx;
color: #9A3D1A;
line-height: 36rpx;
text-align: left;
font-style: normal;
}
.borderRight{
width: 2rpx;
min-height: 80rpx;
background-color: #F1F1F1;
}
.valueRow{
width: 35%;
box-sizing: border-box;
padding: 22rpx 24rpx 22rpx 0;
text-align: right;
}
}
.tableRowGray{
background-color: #F9F9FA!important;
}
}
}
.progressList{
width: 100%;
margin-top: 48rpx;
.progressTitle{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 32rpx;
color: #212226;
line-height: 44rpx;
text-align: left;
font-style: normal;
}
.listBox{
margin-top: 24rpx;
width: 100%;
.listItem{
.itemLeft{
.nameIcon{
width: 72rpx;
height: 72rpx;
background: #FFA35F;
border-radius: 40rpx;
position: relative;
display: flex;
align-items: center;
justify-content: center;
.successIcon{
position: absolute;
width: 32rpx;
height: 32rpx;
right: 0;
bottom: 0;
}
.name{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #FFFFFF;
line-height: 32rpx;
text-align: left;
font-style: normal;
}
.defaultPerson{
width: 32rpx;
height: 36rpx;
}
}
}
.itemRight{
.nameBox{
display: flex;
align-items: center;
justify-content: space-between;
.name{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #242729;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
.time{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #9FA3A8;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
}
.desc{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #9FA3A8;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
}
}
}
}
}
.stateBox{
position: absolute;
right: 0;top: 0;
display: flex;
align-items: center;
padding: 10rpx 16rpx;
background: linear-gradient( 48deg, #FF9762 0%, #FF8C8C 100%);
border-radius: 0rpx 16rpx 0rpx 38rpx;
.stateIcon{
width: 28rpx;
height: 28rpx;
margin-right: 6rpx;
}
.stateText{
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #FFFFFF;
line-height: 36rpx;
text-align: left;
font-style: normal;
}
}
.overBox{
position: absolute;
right: 30rpx;top: 30rpx;
.overIcon{
width: 134rpx;
height: 134rpx;
}
}
}
.pageDetailBox{
width: 100%;
box-sizing: border-box;
padding: 32rpx;
background-color: #fff;
border-radius: 32rpx 32rpx 0rpx 0rpx;
.detailBoxTop{
display: flex;
align-items: center;
justify-content: space-between;
.detailBoxTitle{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 32rpx;
color: #212226;
line-height: 44rpx;
text-align: left;
font-style: normal;
}
.goMoreMonth{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 28rpx;
color: #FA8B39;
line-height: 40rpx;
text-align: left;
font-style: normal;
.rightArrow{
width: 24rpx;
height: 24rpx;
}
}
}
.detailBoxTime{
display: flex;
align-items: center;
margin-bottom: 20rpx;
margin-top: 8rpx;
.timeIcon{
width: 28rpx;
height: 28rpx;
margin-right: 8rpx;
}
.endTime{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #786B6C;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
}
.table{
width: calc(100% - 4rpx);
border-radius: 12rpx;
border: 2rpx solid #EEEEF0;
.tableHeader{
display: flex;
align-items: center;
width: 100%;
height: 156rpx;
background-color: #F7F8FA;
.firstTableTitle{
width: 30%;
box-sizing: border-box;
padding-left: 24rpx;
}
.borderRight{
width: 2rpx;
height: 100%;
background-color: #F1F1F1;
}
.otherTableTitle{
width: 35%;
display: flex;
flex-direction: column;
align-items: center;
.dataIcon{
width: 60rpx;
height: 60rpx;
margin-bottom: 8rpx;
}
}
}
.tableBody{
.tableRow{
width: 100%;
height: 100%;
display: flex;
.labelRow{
width: 30%;
box-sizing: border-box;
padding: 22rpx 0 22rpx 22rpx;
}
.refundPay{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 24rpx;
color: #9A3D1A;
line-height: 36rpx;
text-align: left;
font-style: normal;
}
.borderRight{
width: 2rpx;
min-height: 80rpx;
background-color: #F1F1F1;
}
.valueRow{
width: 35%;
box-sizing: border-box;
padding: 22rpx 24rpx 22rpx 0;
text-align: right;
}
}
.tableRowGray{
background-color: #F9F9FA!important;
}
}
}
.progressList{
width: 100%;
margin-top: 48rpx;
.progressTitle{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 32rpx;
color: #212226;
line-height: 44rpx;
text-align: left;
font-style: normal;
}
.listBox{
margin-top: 24rpx;
width: 100%;
.listItem{
.itemLeft{
.nameIcon{
width: 72rpx;
height: 72rpx;
background: #FFA35F;
border-radius: 40rpx;
position: relative;
display: flex;
align-items: center;
justify-content: center;
.successIcon{
position: absolute;
width: 32rpx;
height: 32rpx;
right: 0;
bottom: 0;
}
.name{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #FFFFFF;
line-height: 32rpx;
text-align: left;
font-style: normal;
}
.defaultPerson{
width: 32rpx;
height: 36rpx;
}
}
}
.itemRight{
.nameBox{
display: flex;
align-items: center;
justify-content: space-between;
.name{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #242729;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
.time{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #9FA3A8;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
}
.desc{
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #9FA3A8;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
}
}
}
}
}
.tableBoxs{
background-color: #fff;
padding-bottom: 32rpx;
.amountBox{
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.commodityContent {
box-sizing: border-box;
display: flex;
align-items: center;
width: 180rpx;
justify-content: center;
/* padding-top: 6rpx; */
box-shadow: 0px 1rpx 8rpx 0.4rpx #ccc;
flex-direction: column;
border-radius: 4rpx;
.color1{
}
}
.btn{
width: 100%;
display: flex;
align-items: center;
justify-content: center;
.btnItem{
display: inline-block;
padding: 6rpx 24rpx;
margin-top: 24rpx;
border-radius: 8rpx;
background: #FA8B39;
color: #fff;
}
}
}
}
}
.line{
height: 2rpx;
width: 100%;
@ -1166,7 +2033,7 @@ export default {
padding: 6rpx 24rpx;
margin-top: 24rpx;
border-radius: 8rpx;
background: #1890FF;
background: #FA8B39;
color: #fff;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 894 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 675 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B