From 0527684883bc620febe0a1360f661cc2a7f16e00 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期五, 29 十一月 2024 17:21:35 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/funingyunwei

---
 admin/src/views/contract/components/contractDetail.vue |  330 ++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 276 insertions(+), 54 deletions(-)

diff --git a/admin/src/views/contract/components/contractDetail.vue b/admin/src/views/contract/components/contractDetail.vue
index f8504a5..d7beef3 100644
--- a/admin/src/views/contract/components/contractDetail.vue
+++ b/admin/src/views/contract/components/contractDetail.vue
@@ -1,140 +1,362 @@
 <template>
-  <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @close="close"
+  <GlobalWindow
+    :title="title"
+    :visible.sync="visible"
+    :confirm-working="isWorking"
+    @close="close"
     @confirm="confirm">
-    <div class="home_title">
+    <div class="home_title" v-if="info">
       <div class="left">
-        <span class="mr10">鍗曚綅鍚嶇О锛歺xx</span>
-        <span class="status">status</span>
+        <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">鎵ц涓�</el-tag>
+        <el-tag type="success" v-if="info.status === 2">宸插埌鏈�</el-tag>
+        <el-tag type="success" v-if="info.status === 3">宸查��绉�</el-tag>
       </div>
-      <el-button plain type="danger">閫�绉�</el-button>
+      <el-button plain type="danger" v-if="[0, 1, 2].includes(info.status)" @click="refund">閫�绉�</el-button>
     </div>
-    <div class="remark">鍚堝悓鎽樿锛歺xxx</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="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 class="main">
+    <div class="main" v-if="activeTabs === 0 && info">
       <div class="title">鍩虹淇℃伅</div>
       <div class="list">
         <div class="item">
           <div class="la">鍚堝悓缂栧彿</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">{{ info.code }}</div>
         </div>
         <div class="item">
           <div class="la">缁忓姙浜�</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">{{ info.userName }}</div>
         </div>
         <div class="item">
           <div class="la">鍒涘缓浜�</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">{{ info.creatorName }}</div>
         </div>
         <div class="item">
           <div class="la">鍚堝悓绉熻祦鏁�</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">{{ info.totalArea }}</div>
         </div>
         <div class="item">
           <div class="la">鎵�灞炲叕鍙�</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">{{ info.companyName }}</div>
         </div>
         <div class="item">
           <div class="la">绛捐鏃ユ湡</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">{{ info.signDate }}</div>
         </div>
         <div class="item">
           <div class="la">寮�濮嬫棩鏈�</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">{{ info.startDate }}</div>
         </div>
         <div class="item">
           <div class="la">缁撴潫鏃ユ湡</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">{{ info.endDate }}</div>
         </div>
         <div class="item">
           <div class="la">鎵�灞為」鐩�</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">{{ info.projectName }}</div>
         </div>
         <div class="item">
           <div class="la">缁撴灉鍙栨暣(鍥涜垗浜斿叆)</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">{{ info.roundedUp === 1 ? '鏄�' : '鍚�' }}</div>
         </div>
       </div>
       <div class="title">鎴挎簮淇℃伅</div>
       <div class="list">
-        <div class="item">
-          <div class="la">椤圭洰鍚嶇О</div>
-          <div class="val">{{ info.aaa }}</div>
-        </div>
-        <div class="item">
-          <div class="la">妤煎畤鍚嶇О</div>
-          <div class="val">{{ info.aaa }}</div>
-        </div>
-        <div class="item">
-          <div class="la">妤煎眰/鎴垮彿</div>
-          <div class="val">{{ info.aaa }}</div>
-        </div>
-        <div class="item">
-          <div class="la">闈㈢Н</div>
-          <div class="val">{{ info.aaa }}</div>
-        </div>
+        <el-table :data="info.roomList" stripe>
+          <el-table-column prop="projectName" label="椤圭洰鍚嶇О" show-overflow-tooltip />
+          <el-table-column prop="buildingName" label="妤煎畤鍚嶇О" show-overflow-tooltip />
+          <el-table-column prop="" label="妤煎眰/鎴垮彿" show-overflow-tooltip>
+            <template slot-scope="{row}">
+              {{row.floorName}}/{{row.code}}
+            </template>
+          </el-table-column>
+          <el-table-column prop="area" label="闈㈢Н" show-overflow-tooltip>
+            <template slot-scope="{row}">
+              {{row.area}}銕�
+            </template>
+          </el-table-column>
+        </el-table>
       </div>
       <div class="title">绉熷淇℃伅</div>
       <div class="list">
         <div class="item">
           <div class="la">绉熷</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">{{ info.renterName }}</div>
         </div>
         <div class="item">
           <div class="la">缁忓姙浜�</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">{{ info.userName }}</div>
         </div>
       </div>
-      <div class="title">绉熻祦鏉℃</div>
-      <div class="list">
+      <div class="title" v-if="info.type === 2 || info.type === 0">绉熻祦鏉℃</div>
+      <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.aaa }}</div>
+          <div class="val">{{ info.zlDeposit }}</div>
         </div>
         <div class="item">
           <div class="la">浠樻鏂瑰紡</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val" v-if="info.zlPayType === 0">涓�娆℃�т粯娆�</div>
+          <div class="val" v-if="info.zlPayType === 1">姣忎笁涓湀涓�浠�</div>
+          <div class="val" v-if="info.zlPayType === 2">鍏釜鏈堜竴浠�</div>
+          <div class="val" v-if="info.zlPayType === 3">涓�骞翠竴浠�</div>
         </div>
         <div class="item">
           <div class="la">鍏嶇鏈�</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">{{ info.zlFreeStartDate }} ~ {{ info.zlFreeEndDate }}</div>
         </div>
       </div>
-      <el-table :data="info.list" stripe>
-        <el-table-column prop="" label="寮�濮嬫棩鏈�" min-width="100" show-overflow-tooltip />
-        <el-table-column prop="" label="缁撴潫鏃ユ湡" min-width="100" show-overflow-tooltip />
-        <el-table-column prop="" label="鍚堝悓鍗曚环" min-width="100" show-overflow-tooltip />
-        <el-table-column prop="" label="浠樻鎻愬墠澶╂暟" min-width="100" show-overflow-tooltip />
+      <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>
+      <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>
+        <div class="item">
+          <div class="la">浠樻鏂瑰紡</div>
+          <div class="val" v-if="info.wyPayType === 0">涓�娆℃�т粯娆�</div>
+          <div class="val" v-if="info.wyPayType === 1">姣忎笁涓湀涓�浠�</div>
+          <div class="val" v-if="info.wyPayType === 2">鍏釜鏈堜竴浠�</div>
+          <div class="val" v-if="info.wyPayType === 3">涓�骞翠竴浠�</div>
+        </div>
+        <div class="item">
+          <div class="la">鍏嶇鏈�</div>
+          <div class="val">{{ info.wyFreeStartDate }} ~ {{ info.wyFreeEndDate }}</div>
+        </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>
+      <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 prop="userName" label="鎿嶄綔浜�" show-overflow-tooltip />
+          <el-table-column prop="createDate" label="鎿嶄綔鏃堕棿" show-overflow-tooltip />
+        </el-table>
+      </div>
+    </div>
+    <div class="main" v-if="activeTabs === 1 && info">
+      <el-radio-group v-model="type" @change="changeType" style="margin-bottom: 20px;">
+        <el-radio-button :label="0">鏀舵璐﹀崟</el-radio-button>
+        <el-radio-button :label="1">浠樻璐﹀崟</el-radio-button>
+      </el-radio-group>
+      <el-table
+        :data="tableData"
+        border
+        v-loading="loading"
+        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="totleFee"
+          label="璐﹀崟閲戦">
+        </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}">
+            <span v-if="row.type === 0">鍚堝悓璐﹀崟</span>
+            <span v-if="row.type === 1">鑷缓璐﹀崟</span>
+          </template>
+        </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
+          label="鏄惁閫炬湡">
+          <template slot-scope="{row}">
+            <span v-if="row.isOverdue === 0">鍚�</span>
+            <span v-if="row.isOverdue === 1">鏄�</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          fixed="right"
+          label="鐘舵��">
+          <template slot-scope="{row}">
+            <span v-if="row.payStatus === 0">寰呮敹娆�</span>
+            <span v-if="row.payStatus === 1">宸茬粨娓�</span>
+            <span v-if="row.payStatus === 2">閮ㄥ垎缁撴竻</span>
+            <span v-if="row.payStatus === 3">寰呬粯娆�</span>
+            <span v-if="row.payStatus === 4">寰呴��娆�</span>
+            <span v-if="row.payStatus === 5">宸插叧闂�</span>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="page"
+        :page-sizes="[10, 15, 20, 25]"
+        :page-size="pageSize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total">
+      </el-pagination>
+    </div>
+    <div class="main" v-if="activeTabs === 2 && info">
+      <div class="title">鎿嶄綔璁板綍</div>
+      <el-table
+        :data="info.logList"
+        border
+        style="width: 100%">
+        <el-table-column
+          prop="param1"
+          label="鎿嶄綔浜�">
+        </el-table-column>
+        <el-table-column
+          prop="createDate"
+          label="鎿嶄綔鏃堕棿">
+        </el-table-column>
+        <el-table-column
+          label="鎿嶄綔">
+          <template slot-scope="{row}">
+            <span v-if="row.objType === 0">宸ュ崟鍒涘缓</span>
+            <span v-if="row.objType === 1">鎸囨淳</span>
+            <span v-if="row.objType === 2">澶勭悊</span>
+            <span v-if="row.objType === 3">鍚堝悓鍒涘缓</span>
+            <span v-if="row.objType === 4">鍚堝悓鍙樻洿</span>
+            <span v-if="row.objType === 5">鍚堝悓閫�绉�</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="content"
+          label="鎿嶄綔鍐呭">
+        </el-table-column>
       </el-table>
     </div>
+    <!--  閫�绉�  -->
+    <TerminateLease ref="terminateLease" @success="getData" />
   </GlobalWindow>
 </template>
 
 <script>
 import GlobalWindow from '@/components/common/GlobalWindow'
 import BaseOpera from '@/components/base/BaseOpera'
+import TerminateLease from './terminateLease'
+import { getById } from '@/api/contract'
+import { fetchList } from '@/api/bill'
 export default {
   components: {
-    GlobalWindow
+    GlobalWindow,
+    TerminateLease
   },
   extends: BaseOpera,
   data() {
     return {
       id: '',
       visible: false,
-      activeTabs: '',
-      info: {}
+      activeTabs: 0,
+      type: 0,
+      info: null,
+      pageSize: 10,
+      page: 1,
+      total: 0,
+      tableData: [],
+      
+      loading: false
     }
   },
   methods: {
+    open (title, id) {
+      this.title = title
+      this.activeTabs = 0
+      this.type = 0
+      this.page = 1
+      this.pageSize = 10
+      this.tableData = []
+      this.id = id
+      this.getData()
+    },
+    getData () {
+      getById(this.id)
+        .then(res => {
+          this.info = res
+          this.getList()
+          this.visible = true
+        })
+    },
+    refund () {
+      this.$refs.terminateLease.open('鏂板缓閫�绉熷崗璁�', JSON.parse(JSON.stringify(this.info)))
+    },
+    getList () {
+      this.loading = true
+      fetchList({
+        capacity: this.pageSize,
+        page: this.page,
+        model: {
+          billType: this.type,
+          contractId: this.info.id
+        }
+      }).then(res => {
+        this.loading = false
+        this.tableData = res.records
+        this.total = res.total
+      })
+    },
+    changeType (e) {
+      console.log(e)
+      this.type = e
+      this.page = 1
+      this.pageSize = 10
+      this.tableData = []
+      this.getList()
+    },
     tabsClick(val) {
       this.activeTabs = val
     },
     getDetail() {
 
+    },
+    handleSizeChange (e) {
+      this.pageSize = e
+      this.getList()
+    },
+    handleCurrentChange (e) {
+      this.page = e
+      this.getList()
     }
   }
 }
@@ -207,9 +429,9 @@
   .list {
     display: flex;
     flex-wrap: wrap;
-    background: #F7F7F7;
+    /*background: #F7F7F7;*/
     border-radius: 2px;
-    padding: 15px 20px;
+    /*padding: 15px 20px;*/
     margin-bottom: 20px;
 
     .item {
@@ -218,7 +440,7 @@
 
       .la {
         color: #7f7f7f;
-        margin-top: 2px;
+        margin-bottom: 10px;
       }
     }
   }

--
Gitblit v1.9.3