<template>
|
<GlobalWindow :title="title" :withFooter="false" :visible.sync="visible" :confirm-working="isWorking" @close="close"
|
@confirm="confirm">
|
<div style="position: sticky; top: 0; left: 0; width: 100%; background: #ffffff;">
|
<div class="home_title">
|
<div class="left">
|
<span class="mr10">对方单位名称:{{info.customerName}}</span>
|
<el-tag type="success" v-if="info.status === 0">开启</el-tag>
|
<el-tag type="info" v-if="info.status === 1">关闭</el-tag>
|
</div>
|
<el-button type="danger" v-if="isShow(info.status, info.contractStatus)" @click="closeDW()">关闭流水</el-button>
|
</div>
|
<div class="line"></div>
|
<div class="main">
|
<div class="list" style="background: rgba(0,0,0,0); padding: 0; margin-bottom: 0;">
|
<div class="item" style="flex: 1;">
|
<div class="la">结清状态</div>
|
<div class="val" style="margin-top: 10px;" v-if="info1.payStatus === 0">待收款</div>
|
<div class="val" style="margin-top: 10px;" v-if="info1.payStatus === 1">已结清</div>
|
<div class="val" style="margin-top: 10px;" v-if="info1.payStatus === 2">部分结清</div>
|
<div class="val" style="margin-top: 10px;" v-if="info1.payStatus === 3">待付款</div>
|
<div class="val" style="margin-top: 10px;" v-if="info1.payStatus === 4">待退款</div>
|
<div class="val" style="margin-top: 10px;" v-if="info1.payStatus === 5">已关闭</div>
|
</div>
|
<div class="item" style="flex: 1;">
|
<div class="la">应{{info.revenueType === 0 ? '收' : '付'}}金额(元)</div>
|
<div class="val" style="margin-top: 10px;">{{info1.receivableFee}}</div>
|
</div>
|
<div class="item" style="flex: 1;">
|
<div class="la">实{{info.revenueType === 0 ? '收' : '付'}}金额(元)</div>
|
<div class="val" style="margin-top: 10px;">{{info1.actReceivableFee}}</div>
|
</div>
|
<div class="item" style="flex: 1;">
|
<div class="la">需{{info.revenueType === 0 ? '收' : '付'}}金额(元)</div>
|
<div class="val" style="margin-top: 10px;">{{info1.needReceivableFee}}</div>
|
</div>
|
<div class="item" style="flex: 1;">
|
<div class="la">应{{info.revenueType === 0 ? '收' : '付'}}日期</div>
|
<div class="val" style="margin-top: 10px;">{{info1.planPayDate}}</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="tabs">
|
<div class="tab" :class="{ active: activeTabs == 0 }" @click="tabsClick(0)">流水信息</div>
|
<div class="tab" :class="{ active: activeTabs == 1 }" @click="tabsClick(1)">关联账单</div>
|
</div>
|
<div class="main">
|
<div class="title">流水信息</div>
|
<div class="list" style="background: rgba(0,0,0,0); padding: 0;">
|
<div class="item">
|
<div class="la">收支类型</div>
|
<div class="val" v-if="info.revenueType === 0">收入</div>
|
<div class="val" v-if="info.revenueType === 1">支出</div>
|
</div>
|
<div class="item">
|
<div class="la">入账日期</div>
|
<div class="val">{{info.actPayDate}}</div>
|
</div>
|
<div class="item">
|
<div class="la">发生额(元)</div>
|
<div class="val">{{info.actReceivableFee}}</div>
|
</div>
|
<div class="item">
|
<div class="la">账单编号</div>
|
<div class="val">{{info.billCode}}</div>
|
</div>
|
<div class="item">
|
<div class="la">合同编号</div>
|
<div class="val">{{info.contractCode}}</div>
|
</div>
|
<div class="item">
|
<div class="la">创建时间</div>
|
<div class="val">{{info.createDate}}</div>
|
</div>
|
<div class="item">
|
<div class="la">对方公司</div>
|
<div class="val">{{info.customerName}}</div>
|
</div>
|
<div class="item">
|
<div class="la">经办人</div>
|
<div class="val">{{info.realname}}</div>
|
</div>
|
<div class="item">
|
<div class="la">流水账户</div>
|
<div class="val">{{info.accountTitle}}</div>
|
</div>
|
<div class="item">
|
<div class="la">备注</div>
|
<div class="val">{{info.remark}}</div>
|
</div>
|
<div class="item"></div>
|
<div class="item"></div>
|
</div>
|
<div class="title">关联账单</div>
|
<div class="list" style="background: rgba(0,0,0,0); padding: 0;">
|
<el-table
|
:data="[info1]"
|
border
|
style="width: 100%">
|
<el-table-column
|
label="费用类型">
|
<template slot-scope="{row}">
|
<span v-if="row.costType === 0">租赁费</span>
|
<span v-if="row.costType === 1">物业费</span>
|
<span v-if="row.costType === 2">租赁押金</span>
|
<span v-if="row.costType === 3">物业押金</span>
|
<span v-if="row.costType === 4">水电费</span>
|
<span v-if="row.costType === 5">杂项费</span>
|
<span v-if="row.costType === 6">其它</span>
|
<span v-if="row.costType === 7">保证金</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="receivableFee"
|
label="应收/付金额">
|
</el-table-column>
|
<el-table-column
|
prop="actReceivableFee"
|
label="实收金额">
|
</el-table-column>
|
<el-table-column
|
prop="needReceivableFee"
|
label="需收金额">
|
</el-table-column>
|
<el-table-column
|
label="计费周期">
|
<template slot-scope="{row}">
|
{{row.startDate}} ~ {{row.endDate}}
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="planPayDate"
|
label="应收/付日期">
|
</el-table-column>
|
<el-table-column
|
prop="remark"
|
label="备注">
|
</el-table-column>
|
</el-table>
|
</div>
|
<div class="title">流水附件</div>
|
<div class="list" style="background: rgba(0,0,0,0); padding: 0;">
|
<el-table
|
:data="info.multifileList"
|
border
|
style="width: 100%">
|
<el-table-column
|
prop="name"
|
label="附件名称">
|
</el-table-column>
|
<el-table-column
|
prop="userName"
|
label="操作人">
|
</el-table-column>
|
<el-table-column
|
prop="createDate"
|
label="操作时间">
|
</el-table-column>
|
</el-table>
|
</div>
|
<div class="title">操作记录</div>
|
<div class="list" style="background: rgba(0,0,0,0); padding: 0;">
|
<el-table
|
:data="info.editRecordDataVOList"
|
border
|
style="width: 100%">
|
<el-table-column
|
width="200"
|
prop="editUserName"
|
label="操作人">
|
</el-table-column>
|
<el-table-column
|
width="200"
|
prop="editTime"
|
label="操作时间">
|
</el-table-column>
|
<el-table-column
|
prop="editRemark"
|
label="操作内容">
|
</el-table-column>
|
</el-table>
|
</div>
|
</div>
|
</GlobalWindow>
|
</template>
|
|
<script>
|
import GlobalWindow from '@/components/common/GlobalWindow'
|
import BaseOpera from '@/components/base/BaseOpera'
|
import { close, getById } from '@/api/ywContractRevenue'
|
import { getYwContractBillById } from '@/api/contract'
|
export default {
|
name: 'details',
|
components: {
|
GlobalWindow
|
},
|
extends: BaseOpera,
|
data() {
|
return {
|
id: '',
|
activeTabs: '',
|
info: {},
|
info1: {}
|
}
|
},
|
methods: {
|
open (title, id) {
|
this.title = title
|
this.id = id
|
this.getDetails()
|
},
|
getDetails () {
|
getById(this.id)
|
.then(res => {
|
this.info = res
|
this.getDetails1()
|
})
|
},
|
getDetails1 () {
|
getYwContractBillById(this.info.billId)
|
.then(res => {
|
this.info1 = res
|
this.visible = true
|
})
|
},
|
tabsClick(val) {
|
this.activeTabs = val
|
},
|
isShow (status, contractStatus) {
|
if (status === 1) return false
|
if (contractStatus === '3' || contractStatus === '4') return false
|
return true
|
},
|
closeDW () {
|
this.$confirm('确认关闭此流水吗?', '提示', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(() => {
|
close(this.info.id)
|
.then(res => {
|
this.getDetails()
|
})
|
}).catch(() => {
|
|
});
|
},
|
}
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
@import '@/assets/style/variables.scss';
|
.home_title {
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
|
.left {
|
font-weight: 500;
|
font-size: 16px;
|
margin-right: 10px;
|
display: flex;
|
align-items: center;
|
|
.status {
|
padding: 0 6px;
|
height: 22px;
|
line-height: 22px;
|
border-radius: 2px;
|
border: 1px solid #00BA92;
|
color: #00BA92;
|
font-weight: 400;
|
font-size: 12px;
|
color: #00BA92;
|
}
|
}
|
}
|
|
.remark {
|
background: #E8EBF7;
|
border-radius: 2px;
|
padding: 10px 20px;
|
font-size: 16px;
|
margin: 20px 0
|
}
|
|
.tabs {
|
border-bottom: 1px solid #DFE2E8;
|
display: flex;
|
margin-bottom: 20px;
|
.tab {
|
height: 58px;
|
line-height: 58px;
|
font-size: 16px;
|
color: #666666;
|
margin-right: 30px;
|
cursor: pointer;
|
}
|
|
.active {
|
font-weight: 500;
|
color: $primary-color;
|
border-bottom: 2px solid $primary-color;
|
}
|
}
|
|
.line {
|
width: 100%;
|
margin: 15px 0;
|
border-bottom: 1px dashed #eaeaea;
|
}
|
|
.main {
|
.title {
|
font-weight: 500;
|
font-size: 18px;
|
color: $primary-color;
|
margin-bottom: 15px;
|
}
|
|
.list {
|
display: flex;
|
flex-wrap: wrap;
|
/*background: #F7F7F7;*/
|
border-radius: 2px;
|
padding: 0 20px;
|
margin-bottom: 20px;
|
|
.item {
|
flex: 25%;
|
margin-bottom: 20px;
|
|
.la {
|
color: #7f7f7f;
|
margin-bottom: 5px;
|
}
|
}
|
}
|
}
|
</style>
|