2024-08-06 19:30:19 +08:00

1741 lines
52 KiB
Vue

<template>
<view class="main">
<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="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>
</view>
<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="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="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="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="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="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="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="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="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="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">
<span class="label" style="color: red">待审核:</span>
<span class="value">{{progressDetail.APPOVED_NAME || ''}}</span>
</view>
</view>
<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>
<view class="lineBox" v-if="index < progressList.length-1">
<view class="line"></view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import request from '@/util/index.js'
import numeral from "numeral";
import Store from "../../store/store";
export default {
name: "monthDetail",
data() {
return {
detailObj:{},// 传入的详情数据
staticMonth:'',// 外面查询时间的结束时间
SETTLEMENT_MODESObj:{
1000:"营收回款",
2000: "资金返款",
3000: "营收分润",
4000: "组合分润",
9998: "阶段提成",
9999: "分段提成",
},// 写死的枚举
topDetail:{},// 顶部详情数据
actuaryData:{},// 精算数据
approveDesc:'已核对,拟同意!',// 审批意见
nextPerson:[],// 下一环节审批人列表
nextPersonIndex:'',// 下一环节审批人索引
nextPersonLabel:'',// 下一环节审批人索引
nextPersonValue:'',// 下一环节审批人的值
showLabel:'',// 审核人的显示
progressList: [],// 流程的数据
showPop:false,// 悬浮框
showType: 0,// 1审核 2 驳回
progressDetail:{},// 进度详情
rejectDataList:[],// 驳回的列表
rejectSelectIndex: '',// 驳回索引
rejectSelectValue: '',// 驳回的选择值
showRejectText:'',// 驳回显示的文字
isPending: false,// 接口是否进行中
isShowBtn: false,// 判断是否显示按钮
isShowApplyFor: false,// 发起申请的悬浮框
MobilePayCorrect: 0,// 移动支付差额
CashPayCorrect: 0,// 现金支付差额
newCalibration: {},// 校准之后的数据
afterCalibration: false,// 是否为校准之后
lastMonthIsOver: false,// 判断上个月是否已经审结
LastSettlementMonth: '',// 最近审结的月份
isShowSelect: false,// 出现选人的悬浮框
yearDataList:[],// 年度结算的悬浮框数据
isAllMonthSuccess: true,// 判断是不是全部的月份都已经审结了
allYearMonthDataList:[],//用来处理没完成的结算月度数据
yearDataListAfter:[],// 年度精算数据
yearDataListObj:[],// 年度精算数据 list也就一条
isShowProgress: true,// 是否显示流程进度
isPush: false,// 是否是推送
progressObjDetail:{},// 流程详情
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)
}else{
if(query.obj){
this.detailObj = JSON.parse(query.obj)
}
}
console.log('this.detailObj',this.detailObj)
if(query.staticMonth){
this.staticMonth = this.$moment(query.staticMonth ).format('YYYYMM')
}
// 拿到顶部数据
await this.handleGetDetailDifference()
// 月度数据
// 拿到月度精算数据
await this.handleGetActuaryData()
if (this.detailObj.BusinessApprovalId) {
// 精算数据
await this.handleGetDetail()
}
// 拿到流程数据
await this.handleGetProgress()
},
onUnload(){
// 因为返回不会卸载页面 但是详情返回列表下一次进来肯定全部重新判断的 所以只能这样
this.detailObj = {}
this.topDetail = {}
this.actuaryData = {}
this.yearDataListObj = {}
this.newCalibration = {}
this.progressDetail = {}
this.nextPerson = []
this.staticMonth = ''
this.nextPersonIndex = ''
this.nextPersonLabel = ''
this.showLabel = ''
this.approveDesc = ''
this.progressList = []
this.afterCalibration = false
this.monthId = ''
this.closeApplyFor()
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({
title: '请求用户数据...'
})
const req = {
BusinessApprovalId: id,
UserId: this.users.UserId
}
console.log('req',req)
const data = await request.$webGet('EShangApiMain/BusinessProject/GetProjectAccountDetail',req)
console.log('data',data)
let res = data.Result_Data
console.log('res',res)
let obj = {
...res,
Approvalstate: res.SETTLEMENT_STATE === 0 ? 0 : res.SETTLEMENT_STATE === 1 ? 9 : res.SETTLEMENT_STATE === 2 ? 1 : '',
startTime: this.$moment(res.SETTLEMENT_DATE + (res.SETTLEMENT_TYPE === 1 ? '' : '/01')).startOf('months').format('YYYY-MM-DD'),
endTime: this.$moment(res.SETTLEMENT_DATE + (res.SETTLEMENT_TYPE === 1 ? '' : '/01')).endOf('months').format('YYYY-MM-DD')
}
this.detailObj = obj
this.staticMonth = this.$moment(obj.endTime).format('YYYYMM')
console.log('this.detailObj',this.detailObj)
uni.hideLoading()
},
// 获得顶部详情和差异数据
async handleGetDetailDifference(){
const req = {
StartDate: this.detailObj.STARTDATE?this.$moment(this.detailObj.STARTDATE).format('YYYY-MM-DD'):'',
EndDate: this.detailObj.ENDDATE?this.$moment(this.detailObj.ENDDATE).format('YYYY-MM-DD'):'',
SHOPROYALTY_ID: this.detailObj.SHOPROYALTY_ID || '',
BUSINESSPROJECT_ID: this.detailObj.BUSINESSPROJECT_ID || '',
ACCOUNT_TYPE: 1000,
SERVERPARTSHOP_ID: this.detailObj.SERVERPARTSHOP_ID,
DataSourceType: 2,
SERVERPART_ID: this.detailObj.SERVERPART_ID,
STATISTICS_MONTH: this.staticMonth || (this.detailObj.SETTLEMENT_DATE ? this.$moment(this.detailObj.SETTLEMENT_DATE +(this.detailObj.SETTLEMENT_TYPE===1?'':'/01')).format('YYYYMM') : '')
}
console.log('this.staticMonth',this.staticMonth)
console.log('req',req)
uni.showLoading({
title: '请求详情数据...'
})
const data = await request.$webGet('EShangApiMain/Revenue/GetRevenueReportByBIZPSPLITMONTH',req)
console.log('data',data)
let res = data.Result_Data.List
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()
},
// 获取精算数据
async handleGetActuaryData(){
const req = {
BusinessProjectId: this.detailObj.BUSINESSPROJECT_ID,
StatisticsMonth: this.staticMonth || (this.detailObj.SETTLEMENT_DATE ? this.$moment(this.detailObj.SETTLEMENT_DATE + (this.detailObj.SETTLEMENT_TYPE===1?'':'/01')).format('YYYYMM') : ''),
ShopRoyaltyId: this.detailObj.SHOPROYALTY_ID,
}
uni.showLoading({
title: '请求精算数据...'
})
const data = await request.$webGet('EShangApiMain/Finance/GetProjectPeriodIncome', req)
let res = data.Result_Data.List[0]
console.log('res3232',res)
this.actuaryData = res
if(res.AllowSettlement===1){
this.lastMonthIsOver = true
}else if(res.AllowSettlement===2){
this.lastMonthIsOver = false
this.LastSettlementMonth = `${res.LastSettlementMonth}审结中月度结算正在审批中,请审结后再发起${req.StatisticsMonth}月度结算`
}else{
this.lastMonthIsOver = false
if(res.LastSettlementState===0){
// this.LastSettlementMonth =`请先进行${res.LastSettlementMonth}月度结算`
this.LastSettlementMonth = res.LastSettlementMonth
}else if(res.LastSettlementState===1){
// this.LastSettlementMonth =`请先进行${res.LastSettlementMonth}月度结算`
this.LastSettlementMonth = res.LastSettlementMonth
}else if(res.LastSettlementState===2){
// this.LastSettlementMonth =`请先进行${res.LastSettlementMonth}月度结算正在审批中,请审结后再发起下一个月度结算`
this.LastSettlementMonth = res.LastSettlementMonth
}
}
uni.hideLoading()
},
async handleGetDetail(){
console.log('this.detailObj',this.detailObj)
uni.showLoading({
title: '请求月度精算数据...'
})
const data = await request.$webGet('EShangApiMain/BusinessProcess/GetBUSINESSAPPROVALDetail',{BUSINESSAPPROVALId: this.detailObj.BusinessApprovalId})
console.log('data', data)
let id = data.Result_Data.BUSINESSPROCESS_ID
const res = await request.$webGet('EShangApiMain/BusinessProject/GetBIZPSPLITMONTHDetail',{BIZPSPLITMONTHId: id})
let obj = res.Result_Data
const req = {
BusinessProjectId: this.detailObj.BUSINESSPROJECT_ID,
StatisticsMonth: this.staticMonth || (this.detailObj.SETTLEMENT_DATE ? this.$moment(this.detailObj.SETTLEMENT_DATE + (this.detailObj.SETTLEMENT_TYPE===1?'':'/01')).format('YYYYMM') : ''),
ShopRoyaltyId: this.detailObj.SHOPROYALTY_ID,
MobilePayCorrect: obj.MOBILEPAY_CORRECT || 0,
CashPayCorrect: obj.CASHPAY_CORRECT || 0
}
const result = await request.$webGet('EShangApiMain/Finance/GetProjectPeriodIncome',req)
console.log('Incomeresult',result)
let bigObj = result.Result_Data.List[0]
this.monthId = bigObj.bizpsplitMonthId
this.monthNewCalibration = bigObj
this.monthNewCalibration.REVENUEDAILY_AMOUNTTotalTEXT = this.$util.getMoney(this.monthNewCalibration.REVENUEDAILY_AMOUNTTotal)
this.monthNewCalibration.CurMonthRevenueTEXT = this.$util.getMoney(this.monthNewCalibration.CurMonthRevenue)
this.monthNewCalibration.MOBILEPAY_AMOUNTTEXT = numeral(this.$util.getMoney(this.monthNewCalibration.MOBILEPAY_AMOUNT + (this.monthNewCalibration.MOBILEPAY_CORRECT || 0))).format('0,0.00')
this.monthNewCalibration.MOBILEPAY_CORRECTTEXT = this.$util.getMoney(this.monthNewCalibration.MOBILEPAY_CORRECT)
this.monthNewCalibration.CASHPAY_AMOUNTTEXT = numeral(this.$util.getMoney(this.monthNewCalibration.CASHPAY_AMOUNT + (this.monthNewCalibration.CASHPAY_CORRECT || 0))).format('0,0.00')
this.monthNewCalibration.CASHPAY_CORRECTTEXT = this.$util.getMoney(this.monthNewCalibration.CASHPAY_CORRECT)
this.monthNewCalibration.GUARANTEERATIOAMOUNTTEXT = this.$util.getMoney(this.monthNewCalibration.GUARANTEERATIOAMOUNT)
this.monthNewCalibration.GUARANTEERATIOINCOMETEXT = this.$util.getMoney(this.monthNewCalibration.GUARANTEERATIOINCOME)
console.log('this.newCalibration2', this.monthNewCalibration)
uni.hideLoading()
},
// 流程 下一环节 等数据
async handleGetProgress(){
if(!this.detailObj.BusinessApprovalId){
const req = {
OperationType: this.detailObj.SETTLEMENT_TYPE===1?'11':'12',
CurState: 1000,
IsValid: 1,
ShowApprovalUser: true,
ServerpartIds: this.detailObj.SERVERPART_ID || '',
ShopIds: this.detailObj.SERVERPARTSHOP_ID || ''
}
const data = await request.$webGet('EShangApiMain/BusinessProcess/GetAPPROVALROUTEDetail', req)
console.log('handleGetProgress',data)
let res = data.Result_Data
if(res.UserList && res.UserList.length>0){
let list = []
res.UserList.forEach(item=>{
list.push({ label: item.USER_NAME, value: `${item.USER_NAME}-${item.USER_ID}` })
})
this.nextPerson = list
if (list && list.length > 0 && list.length === 1) {
this.nextPersonIndex = 0
this.nextPersonValue = list[0].value
}
}
return
}
const req = {
BUSINESSAPPROVALId: this.detailObj.BusinessApprovalId
}
uni.showLoading({
title: '请求流程数据...'
})
const data = await request.$webGet('EShangApiMain/BusinessProcess/GetBUSINESSAPPROVALDetail', req)
let res = data.Result_Data
console.log('res',res)
const secondReq = {
OperationType: this.detailObj.SETTLEMENT_TYPE===1?'11':'12',
CurState: res.BUSINESSAPPROVAL_STATE,
IsValid: 1,
ShowApprovalUser: true,
ServerpartIds: this.detailObj.SERVERPART_ID || '',
ShopIds: this.detailObj.SERVERPARTSHOP_ID || ''
}
const secondData = await request.$webGet('EShangApiMain/BusinessProcess/GetAPPROVALROUTEDetail', secondReq)
this.progressObjDetail = secondData.Result_Data
console.log('secondData',secondData)
this.progressDetail = res
console.log('Store.state.userData.UserId',Store.state.userData.UserId)
console.log('res.APPOVED_IDS',res.APPOVED_IDS)
if(Number(res.APPOVED_IDS) === Number(Store.state.userData.UserId)){
this.isShowBtn = true
}
this.progressList = res.approveList
this.progressList.unshift({
APPLYAPPROVE_NAME: '服务区经营主管',
APPLYAPPROVE_DATE:res.BUSINESS_STARTDATE,
STAFF_NAME:res.STAFF_NAME,
APPLYAPPROVE_INFO: res.BUSINESSAPPROVAL_DESC,
})
let list = []
if(res.UserList && res.UserList.length>0){
res.UserList.forEach(item=>{
// list.push({label: item.USER_NAME,value: item.USER_ID})
list.push({label: item.USER_NAME,value: `${item.USER_NAME}-${item.USER_ID}`})
})
}
this.nextPerson = list
console.log('this.nextPerson',this.nextPerson)
let rejectList = []
if(res.rejectList && res.rejectList.length>0){
res.rejectList.forEach((item) => {
rejectList.push({ label: item.APPROVALROUTE_NAME, value: JSON.stringify(item) })
})
}
this.rejectDataList = rejectList
console.log('this.rejectDataList',this.rejectDataList)
uni.hideLoading()
}
}
}
</script>
<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;
padding: 16rpx 16rpx 0;
font-size: 32rpx;
}
.detailBox{
width: 100%;
box-sizing: border-box;
padding: 0 16rpx 16rpx;
margin-top: 16rpx;
background: #fff;
.detailRow{
display: flex;
align-items: center;
justify-content: space-between;
.detailItem{
width: 50%;
display: flex;
justify-content: flex-start;
.label{
color: #ADB2BF;
font-size: 26rpx;
}
.value{
font-size: 26rpx;
}
}
.detailAllItem{
width: 100%;
.label{
color: #ADB2BF;
font-size: 26rpx;
}
}
}
}
.tableBox{
margin-top: 24rpx;
background: #fff;
box-sizing: border-box;
width: 100%;
padding: 16rpx;
.smallTitle{
font-size: 26rpx;
font-weight: 600;
margin-bottom: 16rpx;
}
.line{
height: 2rpx;
width: 100%;
background-color: #eee;
margin-bottom: 18rpx;
margin-top: 16rpx;
}
.rowItemBox{
display: flex;
.allRowItem{
width: 100%;
.label{
color: #ADB2BF;
font-size: 26rpx;
}
.value{
font-size: 26rpx;
}
}
.rowItem{
width: 50%;
display: flex;
align-items: center;
justify-content: flex-start;
.label{
color: #ADB2BF;
font-size: 26rpx;
}
.value{
font-size: 26rpx;
}
.imgIcon{
width: 50rpx;
height: 32rpx;
border-radius: 50%;
}
}
}
.getMoreBox{
width: 100%;
display: flex;
align-items: center;
justify-content: center;
.imgIcon{
width: 50rpx;
height: 32rpx;
border-radius: 50%;
transform: rotate(90deg);
}
}
.compareBox{
width: 100%;
display: flex;
.compareBoxItem{
width: 50%;
.smallTitle{
font-size: 26rpx;
font-weight: 600;
margin-bottom: 16rpx;
}
.rowItemBox{
display: flex;
.allRowItem{
width: 100%;
.label{
color: #ADB2BF;
font-size: 26rpx;
}
.value{
font-size: 26rpx;
}
}
.rowItem{
width: 50%;
display: flex;
align-items: center;
justify-content: flex-start;
.label{
color: #ADB2BF;
font-size: 26rpx;
}
.value{
font-size: 26rpx;
}
.imgIcon{
width: 50rpx;
height: 32rpx;
border-radius: 50%;
}
}
}
}
}
.comparedBox{
width: 100%;
.comparedBoxTitleBox{
margin-bottom: 16rpx;
display: flex;
align-items: center;
.beforeTitleBox{
width: 60%;
font-size: 26rpx;
font-weight: 600;
text-align: left;
}
.afterTitleBox{
width: 40%;
font-size: 26rpx;
font-weight: 600;
text-align: right;
}
}
.comparedItem{
width: 100%;
display: flex;
align-items: center;
margin-bottom: 12rpx;
.compareLabel{
width: 30%;
color: #ADB2BF;
font-size: 26rpx;
}
.beforeItem{
width: 30%;
font-size: 26rpx;
text-align: right;
}
.afterItem{
width: 40%;
font-size: 26rpx;
text-align: right;
}
}
}
}
.btnBox{
width: 100%;
background: #fff;
box-sizing: border-box;
padding: 16rpx;
margin-top: 24rpx;
.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;
}
.value{
margin-left: 8rpx;
}
}
}
.detailBox{
width: calc(100% - 32rpx);
box-shadow: 0px 0 6rpx 2rpx rgb(234, 234, 234);
background-color: #fff;
border-radius: 8rpx;
margin-left: 16rpx;
box-sizing: border-box;
padding: 16rpx;
.detailItem{
margin-bottom: 16rpx;
.label{
color: #888;
}
.value{
}
}
}
.btnList{
width: 100%;
box-sizing: border-box;
padding: 32rpx 32rpx;
display: flex;
align-items: center;
justify-content: space-around;
.btnItem{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.iconBox{
width: 100rpx;
height: 100rpx;
border-radius: 50%;
overflow: hidden;
.itemIcon{
width: 100%;
height: 100%;
}
}
}
}
}
.progressBox{
width: 100%;
box-sizing: border-box;
padding: 32rpx;
background: #fff;
margin-top: 24rpx;
.progressTopBox{
width: 100%;
position: relative;
margin-bottom: 16rpx;
display: flex;
align-items: center;
justify-content: space-between;
.progressTitle{
}
.getMoreIcon{
width: 30rpx;
height: 30rpx;
}
}
.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;
}
}
}
.progressList{
width: 100%;
margin-top: 24rpx;
.progressItem{
width: 100%;
.progressItemTop{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.progressItemTopLeft{
display: flex;
align-items: center;
.progressIcon{
width: 20rpx;
height: 20rpx;
}
.progressValue{
font-size: 26rpx;
}
}
.progressItemTopRight{
font-size: 26rpx;
}
}
.progressItemBottom{
width: 100%;
display: flex;
align-items: center;
.progressItemBottomLeft{
font-size: 26rpx;
}
.progressItemBottomRight{
flex: 1;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
}
}
}
}
.uniPopup{
width: calc(100vw - 140rpx);
height: 250px;
box-sizing: border-box;
padding: 32rpx 0;
.uniPopupTop{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.uniPopupTitle{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 32rpx;
color: #160002;
line-height: 44rpx;
text-align: left;
font-style: normal;
}
.close{
width: 40rpx;
height: 40rpx;
}
}
.detailBox{
margin-top: 24rpx;
width: calc(100% - 32rpx);
box-shadow: 0px 0 6rpx 2rpx rgb(234, 234, 234);
background-color: #fff;
border-radius: 8rpx;
margin-left: 16rpx;
box-sizing: border-box;
padding: 16rpx;
.detailItem{
margin-bottom: 16rpx;
.label{
color: #888;
}
}
}
.btn{
width: 100%;
display: flex;
align-items: center;
justify-content: center;
.btnItem{
display: inline-block;
padding: 4rpx 8rpx;
margin-top: 24rpx;
border-radius: 8rpx;
background: #1890FF;
color: #fff;
}
}
}
.uniPopupApplyFor{
width: calc(100vw - 140rpx);
height: 480px;
box-sizing: border-box;
padding: 32rpx 0;
.uniPopupTop{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.uniPopupTitle{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 32rpx;
color: #160002;
line-height: 44rpx;
text-align: left;
font-style: normal;
}
.close{
width: 40rpx;
height: 40rpx;
}
}
.detailBoxApplyFor{
.smallTitle{
font-size: 26rpx;
font-weight: 600;
margin-bottom: 16rpx;
}
.tableRow{
.rowItemBox{
display: flex;
.allRowItem{
width: 100%;
.label{
color: #ADB2BF;
font-size: 26rpx;
}
.value{
font-size: 26rpx;
}
}
.rowItem{
width: 50%;
display: flex;
align-items: center;
justify-content: flex-start;
.label{
color: #ADB2BF;
font-size: 26rpx;
}
.value{
font-size: 26rpx;
}
.imgIcon{
width: 50rpx;
height: 32rpx;
border-radius: 50%;
}
}
.rowItemSpecial{
display: flex;
justify-content: flex-start;
.label{
color: #ADB2BF;
font-size: 26rpx;
}
.value{
font-size: 26rpx;
}
}
}
}
}
.goRightBox{
margin-top: 40rpx;
display: flex;
justify-content: space-around;
.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{
}
}
.commodityContent>div {
background: url('/static/images/effective/sjjy_jb.png') no-repeat center;
width: 100%;
text-align: center;
background-size: contain;
}
.commodityContent-cashpay {
justify-content: flex-start;
box-shadow: unset;
display: flex;
}
}
.btn{
width: 100%;
display: flex;
align-items: center;
justify-content: center;
.btnItem{
display: inline-block;
padding: 4rpx 8rpx;
margin-top: 24rpx;
border-radius: 8rpx;
background: #1890FF;
color: #fff;
}
}
.line{
height: 2rpx;
width: 100%;
background-color: #eee;
margin-bottom: 18rpx;
margin-top: 16rpx;
}
}
.uniPopupShowSelect{
width: calc(100vw - 140rpx);
height: 350px;
box-sizing: border-box;
padding: 32rpx 0;
.uniPopupTop{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.uniPopupTitle{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 32rpx;
color: #160002;
line-height: 44rpx;
text-align: left;
font-style: normal;
}
.close{
width: 40rpx;
height: 40rpx;
}
}
.uniPopupContent{
.contentItem{
.label{
font-size: 16px;
font-weight: 600;
}
.text-area-box{
width: 100%;
background: #F2F4F5;
border-radius: 8rpx;
box-sizing: border-box;
padding: 24rpx;
}
}
.btn{
width: 100%;
display: flex;
align-items: center;
justify-content: center;
.btnItem{
display: inline-block;
padding: 4rpx 8rpx;
margin-top: 24rpx;
border-radius: 8rpx;
background: #1890FF;
color: #fff;
}
}
}
}
.uniPopupYearApplyFor{
width: calc(100vw - 140rpx);
height: 480px;
box-sizing: border-box;
padding: 32rpx 0;
.uniPopupTop{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.uniPopupTitle{
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 32rpx;
color: #160002;
line-height: 44rpx;
text-align: left;
font-style: normal;
}
.close{
width: 40rpx;
height: 40rpx;
}
}
.detailBoxApplyFor{
.smallTitle{
font-size: 26rpx;
font-weight: 600;
margin-bottom: 16rpx;
}
.tableRow{
.rowItemBox{
display: flex;
.allRowItem{
width: 100%;
.label{
color: #ADB2BF;
font-size: 26rpx;
}
.value{
font-size: 26rpx;
}
}
.rowItem{
width: 50%;
display: flex;
align-items: center;
justify-content: flex-start;
.label{
color: #ADB2BF;
font-size: 26rpx;
}
.value{
font-size: 26rpx;
}
.imgIcon{
width: 50rpx;
height: 32rpx;
border-radius: 50%;
}
}
.rowItemSpecial{
display: flex;
justify-content: flex-start;
.label{
color: #ADB2BF;
font-size: 26rpx;
}
.value{
font-size: 26rpx;
}
}
}
}
}
}
}
</style>