From f6186d8c2411f8d1d2619be202428db58ec8310a Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 24 一月 2025 13:50:50 +0800
Subject: [PATCH] 1
---
admin/src/views/contract/components/contractDetail.vue | 158 ++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 120 insertions(+), 38 deletions(-)
diff --git a/admin/src/views/contract/components/contractDetail.vue b/admin/src/views/contract/components/contractDetail.vue
index f13cf9a..5683288 100644
--- a/admin/src/views/contract/components/contractDetail.vue
+++ b/admin/src/views/contract/components/contractDetail.vue
@@ -6,22 +6,29 @@
:confirm-working="isWorking"
@close="close"
@confirm="confirm">
- <div class="home_title" v-if="info">
- <div class="left">
- <span class="mr10">鍗曚綅鍚嶇О锛歿{info.renterName}}</span>
- <el-tag type="success" v-if="info.status === 0">寰呮墽琛�</el-tag>
- <el-tag type="success" v-if="info.status === 1">姝e父鎵ц涓�</el-tag>
- <el-tag type="info" v-if="info.status === 2">宸插埌鏈�</el-tag>
- <el-tag type="info" v-if="info.status === 3">閫�绉熺粨绠椾腑</el-tag>
- <el-tag type="info" v-if="info.status === 4">宸查��绉�</el-tag>
+ <div style="width: 100%; position: sticky; top: 0; left: 0; z-index: 999; background: #ffffff;">
+ <div class="home_title" v-if="info">
+ <div class="left">
+ <span class="mr10">鍗曚綅鍚嶇О锛歿{info.renterName}}</span>
+ <el-tag type="success" v-if="info.status === 0">寰呮墽琛�</el-tag>
+ <el-tag type="success" v-if="info.status === 1">姝e父鎵ц涓�</el-tag>
+ <el-tag type="info" v-if="info.status === 2">宸插埌鏈�</el-tag>
+ <el-tag type="info" v-if="info.status === 3">閫�绉熺粨绠椾腑</el-tag>
+ <el-tag type="info" v-if="info.status === 4">宸查��绉�</el-tag>
+ </div>
+ <div>
+ <el-button type="primary" @click="$refs.pendingBills.open('寰呭鐞嗚处鍗�', id)" v-if="info.status === 3">鏌ョ湅寰呭鐞嗚处鍗�</el-button>
+ <el-button @click="$refs.terminationAgreement.open('閫�绉熷崗璁�', id)" v-if="[3,4].includes(info.status)">鏌ョ湅閫�绉熷崗璁�</el-button>
+ <el-button plain type="danger" v-if="[0, 1, 2].includes(info.status)" @click="refund">閫�绉�</el-button>
+ </div>
</div>
- <el-button plain type="danger" v-if="[0, 1, 2].includes(info.status)" @click="refund">閫�绉�</el-button>
- </div>
- <div class="remark" v-if="info">{{info.remark}}</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="remark" v-if="info">{{info.remark}}</div>
+ <div class="remark" v-if="info && info.status === 3">{{info.btRemark}}</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>
</div>
<div class="main" v-if="activeTabs === 0 && info">
<div class="title">鍩虹淇℃伅</div>
@@ -40,7 +47,7 @@
</div>
<div class="item">
<div class="la">鍚堝悓绉熻祦鏁�</div>
- <div class="val">{{ info.totalArea }}</div>
+ <div class="val">{{ info.totalArea }}銕�</div>
</div>
<div class="item">
<div class="la">鎵�灞炲叕鍙�</div>
@@ -99,7 +106,7 @@
<div class="list" style="background: #F7F7F7; padding: 15px 20px;" v-if="info.type === 2 || info.type === 0">
<div class="item">
<div class="la">鎶奸噾閲戦</div>
- <div class="val">{{ info.zlDeposit }}</div>
+ <div class="val">{{ info.zlDeposit }}鍏�</div>
</div>
<div class="item">
<div class="la">浠樻鏂瑰紡</div>
@@ -110,20 +117,35 @@
</div>
<div class="item">
<div class="la">鍏嶇鏈�</div>
- <div class="val">{{ info.zlFreeStartDate }} ~ {{ info.zlFreeEndDate }}</div>
+ <div class="val" v-if="info.zlFreeStartDate && info.zlFreeEndDate">
+ {{ info.zlFreeStartDate }} ~ {{ info.zlFreeEndDate }}
+ </div>
+ <div class="val" v-else>
+ -
+ </div>
</div>
</div>
<el-table :data="info.zlDetailList" stripe style="margin-bottom: 20px;" v-if="info.type === 2 || info.type === 0">
- <el-table-column prop="startDate" label="寮�濮嬫棩鏈�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="endDate" label="缁撴潫鏃ユ湡" min-width="100" show-overflow-tooltip />
- <el-table-column prop="price" label="鍚堝悓鍗曚环" min-width="100" show-overflow-tooltip />
- <el-table-column prop="advanceDays" label="浠樻鎻愬墠澶╂暟" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="startDate" label="寮�濮嬫棩鏈�" :key="Date.now()" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="endDate" label="缁撴潫鏃ユ湡" :key="Date.now()" min-width="100" show-overflow-tooltip />
+ <el-table-column label="鍚堝悓鍗曚环" min-width="100" show-overflow-tooltip>
+ <template slot-scope="{row}">
+ {{row.price}} {{returnUnit(row.circleType)}}
+ </template>
+ </el-table-column>
+ <el-table-column label="浠樻鎻愬墠澶╂暟" min-width="100" show-overflow-tooltip>
+ <template slot-scope="{row}">
+ <template v-if="row.advanceDays">
+ {{row.advanceDays}}澶�
+ </template>
+ </template>
+ </el-table-column>
</el-table>
<div class="title" v-if="info.type === 1 || info.type === 0">鐗╀笟璐规潯娆�</div>
<div class="list" style="background: #F7F7F7; padding: 15px 20px;" v-if="info.type === 1 || info.type === 0">
<div class="item">
<div class="la">鎶奸噾閲戦</div>
- <div class="val">{{ info.wyDeposit }}</div>
+ <div class="val">{{ info.wyDeposit }}鍏�</div>
</div>
<div class="item">
<div class="la">浠樻鏂瑰紡</div>
@@ -138,15 +160,27 @@
</div>
</div>
<el-table :data="info.wyDetailList" stripe style="margin-bottom: 20px;" v-if="info.type === 1 || info.type === 0">
- <el-table-column prop="startDate" label="寮�濮嬫棩鏈�" min-width="100" show-overflow-tooltip />
- <el-table-column prop="endDate" label="缁撴潫鏃ユ湡" min-width="100" show-overflow-tooltip />
- <el-table-column prop="price" label="鍚堝悓鍗曚环" min-width="100" show-overflow-tooltip />
- <el-table-column prop="advanceDays" label="浠樻鎻愬墠澶╂暟" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="startDate" label="寮�濮嬫棩鏈�" :key="Date.now()" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="endDate" label="缁撴潫鏃ユ湡" :key="Date.now()" min-width="100" show-overflow-tooltip />
+ <el-table-column label="鍚堝悓鍗曚环" min-width="100" show-overflow-tooltip>
+ <template slot-scope="{row}">
+ {{row.price}} {{returnUnit(row.circleType)}}
+ </template>
+ </el-table-column>
+ <el-table-column label="浠樻鎻愬墠澶╂暟" min-width="100" show-overflow-tooltip>
+ <template slot-scope="{row}">
+ {{row.advanceDays}}澶�
+ </template>
+ </el-table-column>
</el-table>
<div class="title">鍚堝悓闄勪欢</div>
<div class="list">
<el-table :data="info.fileList" stripe>
- <el-table-column prop="name" label="闄勪欢鍚嶇О" show-overflow-tooltip />
+ <el-table-column label="闄勪欢鍚嶇О" show-overflow-tooltip>
+ <template slot-scope="{row}">
+ <u style="color: #0c6ce3; cursor: pointer;" @click="xiazai(row.fileurlFull)">{{row.name}}</u>
+ </template>
+ </el-table-column>
<el-table-column prop="userName" label="鎿嶄綔浜�" show-overflow-tooltip />
<el-table-column prop="createDate" label="鎿嶄綔鏃堕棿" show-overflow-tooltip />
</el-table>
@@ -162,6 +196,13 @@
border
v-loading="loading"
style="width: 100%">
+ <el-table-column
+ width="150"
+ label="璐﹀崟缂栧彿">
+ <template slot-scope="{row}">
+ <el-button type="text" @click="openBill(row.id)">{{row.code}}</el-button>
+ </template>
+ </el-table-column>
<el-table-column
label="璐圭敤绫诲瀷">
<template slot-scope="{row}">
@@ -182,18 +223,22 @@
<el-table-column
:key="Date.now()"
prop="receivableFee"
- label="搴旀敹閲戦">
+ :label="`搴�${type === 0 ? '鏀�' : '浠�'}閲戦`">
</el-table-column>
<el-table-column
prop="actReceivableFee"
- label="瀹炴敹閲戦">
+ :label="`瀹�${type === 0 ? '鏀�' : '浠�'}閲戦`">
</el-table-column>
<el-table-column
- prop="needReceivableFee"
- label="闇�鏀堕噾棰�">
+ :label="`闇�${type === 0 ? '鏀�' : '浠�'}閲戦`">
<template slot-scope="{row}">
- <el-tag type="success" v-if="row.needReceivableFee > 0">鏀�</el-tag>
- <el-tag type="warning" v-else>浠�</el-tag>
+ <template v-if="type === 0">
+ <el-tag type="success" v-if="row.needReceivableFee > 0">鏀�</el-tag>
+ <el-tag type="warning" v-else-if="row.needReceivableFee < 0">浠�</el-tag>
+ </template>
+ <template v-else>
+ <el-tag type="warning" v-if="row.needReceivableFee !== 0">浠�</el-tag>
+ </template>
<span style="margin-left: 10px;">{{Math.abs(row.needReceivableFee)}}</span>
</template>
</el-table-column>
@@ -201,10 +246,11 @@
label="璐﹀崟鏉ユ簮">
<template slot-scope="{row}">
<span v-if="row.type === 0">鍚堝悓璐﹀崟</span>
- <span v-if="row.type === 1">鑷缓璐﹀崟</span>
+ <span v-else>鑷缓璐﹀崟</span>
</template>
</el-table-column>
<el-table-column
+ width="200"
label="璁¤垂鍛ㄦ湡">
<template slot-scope="{row}">
{{ row.startDate }} ~ {{ row.endDate }}
@@ -284,6 +330,12 @@
</div>
<!-- 閫�绉� -->
<TerminateLease ref="terminateLease" @success="getData" />
+ <!-- 寰呭鐞嗚处鍗� -->
+ <PendingBills ref="pendingBills" />
+ <!-- 閫�绉熷崗璁� -->
+ <TerminationAgreement ref="terminationAgreement" />
+ <!-- 璐﹀崟璇︽儏 -->
+ <BullDetail ref="bullDetail" />
</GlobalWindow>
</template>
@@ -291,12 +343,18 @@
import GlobalWindow from '@/components/common/GlobalWindow'
import BaseOpera from '@/components/base/BaseOpera'
import TerminateLease from './terminateLease'
+import PendingBills from './pendingBills'
+import TerminationAgreement from './terminationAgreement'
+import BullDetail from '../../finance/components/bullDetail'
import { getById } from '@/api/contract'
import { fetchList } from '@/api/bill'
export default {
components: {
GlobalWindow,
- TerminateLease
+ TerminateLease,
+ PendingBills,
+ TerminationAgreement,
+ BullDetail
},
extends: BaseOpera,
data() {
@@ -310,7 +368,7 @@
page: 1,
total: 0,
tableData: [],
-
+
loading: false
}
},
@@ -324,6 +382,30 @@
this.tableData = []
this.id = id
this.getData()
+ },
+ xiazai (url) {
+ window.open(url)
+ },
+ openBill(id) {
+ this.$refs.bullDetail.open('璐﹀崟璇︽儏', id)
+ },
+ returnUnit (type) {
+ switch (type) {
+ case 0:
+ return '鍏�/m虏路澶�'
+ case 1:
+ return '鍏�/m虏路鏈�'
+ case 2:
+ return '鍏�/m虏路骞�'
+ case 3:
+ return '鍏�/澶�'
+ case 4:
+ return '鍏�/鏈�'
+ case 5:
+ return '鍏�/骞�'
+ case 6:
+ return '鍏�/鍦�'
+ }
},
getData () {
getById(this.id)
@@ -342,6 +424,7 @@
capacity: this.pageSize,
page: this.page,
model: {
+ status: 0,
billType: this.type,
contractId: this.info.id
}
@@ -352,7 +435,6 @@
})
},
changeType (e) {
- console.log(e)
this.type = e
this.page = 1
this.pageSize = 10
--
Gitblit v1.9.3