From a2299a6d4a6f99e9c11132138f5d3e9ec68f03ea Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 06 六月 2025 19:19:34 +0800 Subject: [PATCH] 开发更新 --- admin/src/views/finance/components/bullDetail.vue | 256 +++++++++++++++++++++++++++++++------------------- 1 files changed, 158 insertions(+), 98 deletions(-) diff --git a/admin/src/views/finance/components/bullDetail.vue b/admin/src/views/finance/components/bullDetail.vue index 2f99054..70cfe50 100644 --- a/admin/src/views/finance/components/bullDetail.vue +++ b/admin/src/views/finance/components/bullDetail.vue @@ -1,85 +1,114 @@ <template> - <GlobalWindow :title="'璐﹀崟璇︽儏'" :visible.sync="visible" :confirm-working="isWorking" @close="close" + <GlobalWindow :title="'璐﹀崟璇︽儏'" :withFooter="false" :visible.sync="visible" :confirm-working="isWorking" @close="close" @confirm="confirm"> - <div class="home_title"> - <div class="left"> - <span class="mr10">浠樻鏂癸細xxx</span> - <el-tag type="success">status</el-tag> - </div> - <el-button plain type="primary" @click="$refs.flowingWater.open('鍒涘缓鏀舵敮娴佹按')">鏂板缓鏀舵敮娴佹按</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;">宸茬粨娓�</div> + <div style="width: 100%; position: sticky; top: 0; left: 0; z-index: 999; background: #ffffff;"> + <div class="home_title"> + <div class="left"> + <span class="mr10">{{info.billType === 0 ? '鏀舵鏂�' : '浠樻鏂�'}}锛歿{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> - <div class="item" style="flex: 1;"> - <div class="la">搴旀敹閲戦锛堝厓锛�</div> - <div class="val" style="margin-top: 10px;">1,000.00</div> - </div> - <div class="item" style="flex: 1;"> - <div class="la">瀹炴敹閲戦锛堝厓锛�</div> - <div class="val" style="margin-top: 10px;">1,000.00</div> - </div> - <div class="item" style="flex: 1;"> - <div class="la">闇�浠橀噾棰濓紙鍏冿級</div> - <div class="val" style="margin-top: 10px;">1,000.00</div> - </div> - <div class="item" style="flex: 1;"> - <div class="la">搴旀敹鏃ユ湡</div> - <div class="val" style="margin-top: 10px;">2024-11-16</div> + <div style="display: flex; align-items: center;"> + <el-button @click="$refs.call.open('鍙戦�佸偓缂撮�氱煡', [info.id])" v-if="info.isOverdue === 1 && info.billType === 0">鍙戦�佺即璐归�氱煡</el-button> + <el-button plain type="primary" v-if="![1].includes(info.payStatus)" @click="$refs.flowingWater.open('鍒涘缓鏀舵敮娴佹按', { + billType: returnBillType(), + billId: info.id, + costType: info.costType, + receivableFee: Math.abs(info.needReceivableFee), + costTypeName: returnText(info.costType), + contractCode: info.contractCode, + contractId: info.contractId, + startDate: info.startDate, + endDate: info.endDate, + multifileList: [], + date: `${info.startDate} ~ ${info.endDate}`, + companyId: info.companyId, + companyName: info.companyName, + actReceivableFee: Math.abs(info.needReceivableFee), + needReceivableFeeCopy: info.needReceivableFee + })">鏂板缓鏀舵敮娴佹按</el-button> </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 class="tab" :class="{ active: activeTabs == 2 }" @click="tabsClick(2)">鏀舵敮娴佹按</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="info.payStatus === 0">寰呮敹娆�</div> + <div class="val" style="margin-top: 10px;" v-if="info.payStatus === 1">宸茬粨娓�</div> + <div class="val" style="margin-top: 10px;" v-if="info.payStatus === 2">閮ㄥ垎缁撴竻</div> + <div class="val" style="margin-top: 10px;" v-if="info.payStatus === 3">寰呬粯娆�</div> + <div class="val" style="margin-top: 10px;" v-if="info.payStatus === 4">寰呴��娆�</div> + <div class="val" style="margin-top: 10px;" v-if="info.payStatus === 5">宸插叧闂�</div> + </div> + <div class="item" style="flex: 1;"> + <div class="la">搴攞{info.billType === 0 ? '鏀�' : '浠�'}}閲戦锛堝厓锛�</div> + <div class="val" style="margin-top: 10px;">{{info.receivableFee}}</div> + </div> + <div class="item" style="flex: 1;"> + <div class="la">瀹瀧{info.billType === 0 ? '鏀�' : '浠�'}}閲戦锛堝厓锛�</div> + <div class="val" style="margin-top: 10px;">{{info.actReceivableFee}}</div> + </div> + <div class="item" style="flex: 1;"> + <template v-if="info.billType === 1"> + <div class="la">闇�浠橀噾棰濓紙鍏冿級</div> + </template> + <div class="la" v-else>闇�{{info.needReceivableFee > 0 ? '鏀�' : '浠�'}}閲戦锛堝厓锛�</div> + <div class="val" style="margin-top: 10px;">{{Math.abs(info.needReceivableFee)}}</div> + </div> + <div class="item" style="flex: 1;"> + <div class="la">搴攞{info.billType === 0 ? '鏀�' : '浠�'}}鏃ユ湡</div> + <div class="val" style="margin-top: 10px;">{{info.planPayDate}}</div> + </div> + </div> + </div> + <div class="tabs"> + <div class="tab" :class="{ active: activeTabs == 0 }" @click="tabsClick(0)">鍩虹淇℃伅</div> + <div class="tab" :class="{ active: activeTabs == 2 }" @click="tabsClick(2)">鏀舵敮娴佹按</div> + </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">绉熼噾</div> + <div class="la">璐圭敤绫诲瀷</div> + <div class="val">{{returnText(info.costType)}}</div> </div> <div class="item"> <div class="la">璁¤垂鍛ㄦ湡</div> - <div class="val">2024-11-17 ~ 2025-11-17</div> + <div class="val">{{info.startDate}} ~ {{info.endDate}}</div> </div> <div class="item"> <div class="la">璐﹀崟閲戦(鍏�)</div> - <div class="val">10000.00</div> + <div class="val">{{info.totleFee}}</div> </div> <div class="item"> <div class="la">璐﹀崟缂栧彿</div> - <div class="val">ZD20241117-0002</div> + <div class="val">{{info.code}}</div> </div> <div class="item"> <div class="la">鍚堝悓缂栧彿</div> - <div class="val">202411-0017</div> + <div class="val" style="color: #2080f7; cursor: pointer;" @click="handleDetail(info.contractId)">{{info.contractCode}}</div> </div> <div class="item"> <div class="la">鍒涘缓鏃堕棿</div> - <div class="val">2024-11-16 15:17:01</div> + <div class="val">{{info.createDate}}</div> </div> <div class="item"> <div class="la">浠樻鏂�</div> - <div class="val">XX鍏徃</div> + <div class="val">{{info.customerName}}</div> </div> <div class="item"> <div class="la">缁忓姙浜�</div> - <div class="val">寮犱笁</div> + <div class="val">{{info.realname}}</div> </div> <div class="item"> <div class="la">鎵�灞炲叕鍙�</div> - <div class="val">XXX鏈夐檺鍏徃</div> + <div class="val">{{info.companyName}}</div> </div> <div class="item"> <div class="la">璐﹀崟澶囨敞</div> - <div class="val">杩欐槸澶囨敞鍐呭</div> + <div class="val">{{info.remark}}</div> </div> <div class="item"></div> <div class="item"></div> @@ -87,102 +116,85 @@ <div class="title">鎴挎簮淇℃伅</div> <div class="list" style="background: rgba(0,0,0,0); padding: 0;"> <el-table - :data="tableData" + :data="info.ywContractRoomList" border style="width: 100%"> <el-table-column - prop="date" + prop="projectName" label="椤圭洰鍚嶇О"> </el-table-column> <el-table-column - prop="name" + prop="floorName" label="妤煎畤鍚嶇О"> </el-table-column> <el-table-column - prop="address" label="妤煎眰/鎴垮彿"> + <template slot-scope="{row}"> + {{row.buildingName}}/{{row.roomName}} + </template> </el-table-column> <el-table-column - prop="address" 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="tableData" - border - style="width: 100%"> - <el-table-column - prop="date" - label="璐圭敤绫诲瀷"> - </el-table-column> - <el-table-column - prop="name" - label="搴旀敹/浠橀噾棰�"> - </el-table-column> - <el-table-column - prop="address" - label="瀹炴敹閲戦"> - </el-table-column> - <el-table-column - prop="address" - label="闇�鏀堕噾棰�"> - </el-table-column> - <el-table-column - prop="address" - label="璁¤垂鍛ㄦ湡"> - </el-table-column> - <el-table-column - prop="address" - label="搴旀敹/浠樻棩鏈�"> - </el-table-column> - <el-table-column - prop="address" - label="澶囨敞"> + <template slot-scope="{row}"> + {{row.area}}銕� + </template> </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="tableData" + :data="info.ywContractRevenueList" border style="width: 100%"> <el-table-column - prop="date" label="娴佹按绫诲瀷"> + <template slot-scope="{row}"> + <span v-if="row.revenueType === 0">鏀跺叆</span> + <span v-if="row.revenueType === 1">鏀嚭</span> + </template> </el-table-column> <el-table-column - prop="name" + prop="customerName" label="瀵规柟鍗曚綅鍚嶇О"> </el-table-column> <el-table-column - prop="address" label="璐圭敤绫诲瀷"> + <template slot-scope="{row}"> + <span v-if="row.payType === 0">鐜伴噾</span> + <span v-if="row.payType === 1">缃戦摱杞处</span> + <span v-if="row.payType === 2">POS鏈�</span> + <span v-if="row.payType === 3">鏀粯瀹�</span> + <span v-if="row.payType === 4">寰俊</span> + <span v-if="row.payType === 5">杞处鏀エ</span> + <span v-if="row.payType === 6">鍏朵粬</span> + </template> </el-table-column> <el-table-column - prop="address" + prop="actPayDate" label="鍏ヨ处鏃ユ湡"> </el-table-column> <el-table-column - prop="address" + prop="actReceivableFee" label="鍙戠敓棰�"> </el-table-column> <el-table-column - prop="address" + prop="createDate" label="鍒涘缓鏃堕棿"> </el-table-column> <el-table-column - prop="address" + prop="remark" label="澶囨敞"> </el-table-column> </el-table> </div> </div> <!-- 鍒涘缓娴佹按 --> - <FlowingWater ref="flowingWater" /> + <FlowingWater ref="flowingWater" @success="getDetails" @refresh="Refresh" /> + <!-- 鍚堝悓璇︽儏 --> + <ContractDetail ref="ContractDetailRef" /> + <!-- 鍙戦�佺即璐归�氱煡 --> + <Call ref="call" /> </GlobalWindow> </template> @@ -190,10 +202,15 @@ import GlobalWindow from '@/components/common/GlobalWindow' import BaseOpera from '@/components/base/BaseOpera' import FlowingWater from './flowingWater' +import Call from './call' +import ContractDetail from '../../contract/components/contractDetail' +import { getYwContractBillById } from '@/api/contract' export default { components: { GlobalWindow, - FlowingWater + FlowingWater, + ContractDetail, + Call }, extends: BaseOpera, data() { @@ -206,11 +223,54 @@ } }, methods: { + open (title, id) { + this.title = title + this.id = id + this.getDetails() + }, + handleDetail (id) { + this.$refs.ContractDetailRef.open('鍚堝悓璇︽儏', id) + }, + getDetails () { + getYwContractBillById(this.id) + .then(res => { + this.info = res + this.visible = true + }) + }, + returnBillType () { + if (this.info.payStatus === 0) { + return 0 + } else if (this.info.payStatus === 2) { + return this.info.billType + } else if ([3,4].includes(this.info.payStatus)) { + return 1 + } + }, + Refresh () { + this.$emit('success') + }, tabsClick(val) { this.activeTabs = val }, - getDetail() { - + returnText (e) { + if (e === 0) { + return '绉熻祦璐�' + } else if (e === 1) { + return '鐗╀笟璐�' + } else if (e === 2) { + return '绉熻祦鎶奸噾' + } else if (e === 3) { + return '鐗╀笟鎶奸噾' + } else if (e === 4) { + return '姘寸數璐�' + } else if (e === 5) { + return '鏉傞」璐�' + } else if (e === 6) { + return '鍏朵粬' + } else if (e === 7) { + return '淇濊瘉閲�' + } } } } -- Gitblit v1.9.3