From d492850f1cc64ddcfaf43798af9c76c2505414fd Mon Sep 17 00:00:00 2001
From: renkang <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 24 一月 2025 18:24:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0.1' into 2.0.1

---
 admin/src/views/roomStatus/index.vue | 1286 ++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 808 insertions(+), 478 deletions(-)

diff --git a/admin/src/views/roomStatus/index.vue b/admin/src/views/roomStatus/index.vue
index bff1757..3ef5bef 100644
--- a/admin/src/views/roomStatus/index.vue
+++ b/admin/src/views/roomStatus/index.vue
@@ -2,37 +2,58 @@
     <div class="box">
         <div class="box_content">
             <div class="left">
-                <el-input v-model="input" placeholder="璇疯緭鍏ュ唴瀹�"></el-input>
+                <el-input v-model="filterText" placeholder="鎼滅储"></el-input>
                 <div style="width: 100%; height: 20px;"></div>
-                <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
+                <el-tree
+                    ref="tree"
+                    :data="houseList"
+                    node-key="id"
+                    :default-expanded-keys="ids"
+                    highlight-current
+                    @node-click="nodeClick"
+                    :default-checked-keys="ids"
+                    :filter-node-method="filterNode"
+                    :props="{ children: 'projectDataVOList', label: 'name' }">
+                    <span class="custom-tree-node" style="width: 100%; display: flex; align-items: center; justify-content: space-between;" slot-scope="{ node, data }">
+                      <span>{{ data.name }}</span>
+                      <span style="color: #2080f7;" v-if="data.lv === 3">
+                        {{data.leaseStatus === 0 ? '寰呯璧�' : data.leaseStatus === 1 ? '宸茬璧�' : data.leaseStatus === 2 ? '鏈紑鍚璧�' : ''}}
+                      </span>
+                    </span>
+                </el-tree>
             </div>
             <div class="right">
-                <div class="right_head">椤圭洰鍚嶇О</div>
+                <div class="right_head">
+                    {{title}}
+                    <el-tag type="info" v-if="leaseStatus === 0" style="margin-left: 10px;">寰呯璧�</el-tag>
+                    <el-tag type="success" v-if="leaseStatus === 1" style="margin-left: 10px;">宸茬璧�</el-tag>
+                    <el-tag type="warning" v-if="leaseStatus === 2" style="margin-left: 10px;">鏈紑鍚璧�</el-tag>
+                </div>
                 <div class="right_cate">
                     <el-tabs v-model="activeName" @tab-click="handleClick">
-                        <el-tab-pane label="椤圭洰姒傚喌" name="first">
+                        <el-tab-pane label="椤圭洰姒傚喌" name="first" v-if="lv === 0">
                             <div class="xm">
                                 <el-card>
                                     <div class="xm_one">
                                         <div class="xm_one_row">
                                             <span>鍦ㄧ鍚堝悓鏁�</span>
-                                            <span>4</span>
-                                            <span>鍦ㄧ鎴挎簮鏁帮細5</span>
+                                            <span>{{projectNums.leaseContractAmount}}</span>
+                                            <span>鍦ㄧ鎴挎簮鏁帮細{{projectNums.leaseRoomAmount}}</span>
                                         </div>
                                         <div class="xm_one_row">
                                             <span>鍙嫑鍟嗛潰绉�</span>
-                                            <span>50000銕�</span>
-                                            <span>鍙嫑鍟嗘埧婧愭暟锛�15</span>
+                                            <span>{{projectNums.investmentArea}}銕�</span>
+                                            <span>鍙嫑鍟嗘埧婧愭暟锛歿{projectNums.investmentRoomAmount}}</span>
                                         </div>
                                         <div class="xm_one_row">
                                             <span>鍦ㄧ瀹炴椂鍧囦环</span>
-                                            <span>145.75鍏�/m虏路澶�</span>
-                                            <span>鍦ㄧ闈㈢Н锛�900.00m虏</span>
+                                            <span>{{projectNums.leasePrice}}鍏�/m虏路澶�</span>
+                                            <span>鍦ㄧ闈㈢Н锛歿{projectNums.leaseArea}}m虏</span>
                                         </div>
                                         <div class="xm_one_row">
                                             <span>鍑虹鐜�</span>
-                                            <span>50.00%</span>
-                                            <span>寰呯闈㈢Н锛�700.00m虏</span>
+                                            <span>{{(projectNums.leaseRoomAmount / projectNums.investmentRoomAmount).toFixed(2)}}%</span>
+                                            <span>寰呯闈㈢Н锛歿{projectNums.investmentArea - projectNums.leaseArea}}m虏</span>
                                         </div>
                                     </div>
                                 </el-card>
@@ -43,19 +64,19 @@
                                     <div class="xm_info">
                                         <div class="xm_info_row" style="width: 25%;">
                                             <span>椤圭洰鍚嶇О</span>
-                                            <span>XXXXXXXXXX</span>
+                                            <span>{{projectInfo.name}}</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 25%;">
                                             <span>鎵�灞炲湴鍖�</span>
-                                            <span>瀹夊窘鐪�-鍚堣偉甯�-铚�灞卞尯</span>
+                                            <span>{{projectInfo.provinceName}}-{{projectInfo.cityName}}-{{projectInfo.areaName}}</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 50%;">
                                             <span>璇︾粏鍦板潃</span>
-                                            <span>Lorem ipsum dolor sit amet, consectetur</span>
+                                            <span>{{projectInfo.addr}}</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 100%; margin-top: 15px;">
                                             <span>椤圭洰绠�浠�</span>
-                                            <span>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum</span>
+                                            <span>{{projectInfo.remark}}</span>
                                         </div>
                                     </div>
                                 </el-card>
@@ -64,34 +85,53 @@
                                         <span>褰撳墠鍦ㄧ鍚堝悓</span>
                                     </div>
                                     <div class="xm_table">
-                                        <el-input v-model="input" style="width: 300px; margin-bottom: 15px;" placeholder="璇疯緭鍏ュ唴瀹�"></el-input>
+                                        <div style="display: flex; align-items: center; margin-bottom: 15px;">
+                                            <el-input v-model="form.code" style="width: 150px; margin-right: 15px;" placeholder="璇疯緭鍏ュ悎鍚岀紪鍙�"></el-input>
+                                            <el-button type="primary" @click="getFetchList">鎼滅储</el-button>
+                                            <el-button @click="clear">閲嶇疆</el-button>
+                                        </div>
                                         <el-table
                                             :data="tableData"
                                             border
+                                            v-loading="loading"
                                             style="width: 100%">
                                             <el-table-column
-                                                prop="date"
                                                 label="鍚堝悓缂栧彿">
+                                                <template slot-scope="{row}">
+                                                    <el-button type="text">{{row.code}}</el-button>
+                                                </template>
                                             </el-table-column>
                                             <el-table-column
-                                                prop="name"
+                                                prop="renterName"
                                                 label="绉熷">
                                             </el-table-column>
                                             <el-table-column
-                                                prop="address"
                                                 label="绉熻祦鍗曚环">
+                                                <template slot-scope="{row}">
+                                                    <div style="display: flex; align-items: center;">
+                                                        <span>{{row.leasePrice || 0}}鍏�/銕÷峰ぉ</span>
+                                                    </div>
+                                                </template>
                                             </el-table-column>
                                             <el-table-column
-                                                prop="address"
+                                                prop="leaseDays"
                                                 label="绉熻祦澶╂暟">
                                             </el-table-column>
                                             <el-table-column
-                                                prop="address"
                                                 label="绉熻祦闈㈢Н">
+                                                <template slot-scope="{row}">
+                                                    {{row.totalArea}}銕�
+                                                </template>
                                             </el-table-column>
                                             <el-table-column
-                                                prop="address"
                                                 label="鎴挎簮">
+                                                <template slot-scope="{row}">
+                                                    <div style="display: flex; flex-direction: column;">
+                                                        <span v-for="(item, index) in row.roomList" :key="index">
+                                                            {{item.projectName}}/{{item.buildingName}}/{{item.floorName}}/{{item.roomNum}}
+                                                        </span>
+                                                    </div>
+                                                </template>
                                             </el-table-column>
                                         </el-table>
                                         <div class="xm_table_f">
@@ -109,7 +149,7 @@
                                 </el-card>
                             </div>
                         </el-tab-pane>
-                        <el-tab-pane label="鎴挎簮淇℃伅" name="houseinfo">
+                        <el-tab-pane label="鎴挎簮淇℃伅" name="houseinfo" v-if="[3].includes(lv)">
                             <div class="xm">
                                 <el-card style="margin-top: 20px;">
                                     <div slot="header" class="clearfix">
@@ -118,91 +158,99 @@
                                     <div class="xm_info">
                                         <div class="xm_info_row" style="width: 25%;">
                                             <span>鎵�灞為」鐩�</span>
-                                            <span>XXXXXXXXXX</span>
+                                            <span>{{roomInfo.projectName}}</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 25%;">
                                             <span>妤煎畤</span>
-                                            <span>缁煎悎妤�</span>
+                                            <span>{{roomInfo.buildingName}}</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 25%;">
                                             <span>妤煎眰</span>
-                                            <span>1</span>
+                                            <span>{{roomInfo.floorName}}</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 25%;">
                                             <span>鎴垮彿</span>
-                                            <span>101娲诲姩瀹�</span>
+                                            <span>{{roomInfo.roomNum}}</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
                                             <span>鎴块棿缂栧彿</span>
-                                            <span>101</span>
+                                            <span>{{roomInfo.code}}</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
                                             <span>鏄惁鎷涘晢</span>
-                                            <span>鍚�</span>
+                                            <span v-if="roomInfo.isInvestment === 0">鍚�</span>
+                                            <span v-if="roomInfo.isInvestment === 1">鏄�</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
                                             <span>寤虹瓚闈㈢Н</span>
-                                            <span>50銕�</span>
+                                            <span>{{roomInfo.area}}銕�</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
                                             <span>璁$闈㈢Н</span>
-                                            <span>50銕�</span>
+                                            <span>{{roomInfo.rentArea}}銕�</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
                                             <span>璁¤垂闈㈢Н</span>
-                                            <span>45銕�</span>
+                                            <span>{{roomInfo.feeArea}}銕�</span>
                                         </div>
                                     </div>
                                 </el-card>
                             </div>
                         </el-tab-pane>
-                        <el-tab-pane label="绉熷鍚堝悓" name="project">
+                        <el-tab-pane label="绉熷鍚堝悓" name="project" v-if="[3].includes(lv)">
                             <div class="xm">
                                 <el-card style="margin-top: 20px;">
                                     <div slot="header" class="clearfix">
                                         <span>褰撳墠鍦ㄧ鍚堝悓</span>
                                     </div>
                                     <div class="xm_table">
-                                        <el-input v-model="input" style="width: 300px; margin-bottom: 15px;" placeholder="璇疯緭鍏ュ悎鍚岀紪鍙�"></el-input>
+                                        <div style="display: flex; align-items: center; margin-bottom: 15px;">
+                                            <el-input v-model="form.code" style="width: 150px; margin-right: 15px;" placeholder="璇疯緭鍏ュ悎鍚岀紪鍙�"></el-input>
+                                            <el-button type="primary" @click="getFetchList">鎼滅储</el-button>
+                                            <el-button @click="clear">閲嶇疆</el-button>
+                                        </div>
                                         <el-table
                                             :data="tableData"
                                             border
+                                            v-loading="loading"
                                             style="width: 100%">
                                             <el-table-column
-                                                prop="date"
                                                 label="鍚堝悓缂栧彿">
+                                                <template slot-scope="{row}">
+                                                    <el-button type="text">{{row.code}}</el-button>
+                                                </template>
                                             </el-table-column>
                                             <el-table-column
-                                                prop="name"
-                                                label="瀹㈡埛鍚嶇О">
+                                                prop="renterName"
+                                                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}">
+                                                    <div style="display: flex; align-items: center;">
+                                                        <span>{{row.leasePrice || 0}}鍏�/銕÷峰ぉ</span>
+                                                    </div>
+                                                </template>
                                             </el-table-column>
                                             <el-table-column
-                                                prop="address"
-                                                label="绉熻祦闈㈢Н锛堛帯锛�">
+                                                prop="leaseDays"
+                                                label="绉熻祦澶╂暟">
                                             </el-table-column>
                                             <el-table-column
-                                                prop="address"
-                                                label="绛捐鏃�">
+                                                label="绉熻祦闈㈢Н">
+                                                <template slot-scope="{row}">
+                                                    {{row.totalArea}}銕�
+                                                </template>
                                             </el-table-column>
                                             <el-table-column
-                                                prop="address"
-                                                label="鍚堝悓鏉ユ簮">
-                                            </el-table-column>
-                                            <el-table-column
-                                                prop="address"
-                                                label="鍚堝悓鐘舵��">
+                                                label="鎴挎簮">
+                                                <template slot-scope="{row}">
+                                                    <div style="display: flex; flex-direction: column;">
+                                                        <span v-for="(item, index) in row.roomList" :key="index">
+                                                            {{item.projectName}}/{{item.buildingName}}/{{item.floorName}}/{{item.roomNum}}
+                                                        </span>
+                                                    </div>
+                                                </template>
                                             </el-table-column>
                                         </el-table>
                                         <div class="xm_table_f">
@@ -220,29 +268,70 @@
                                 </el-card>
                             </div>
                         </el-tab-pane>
-                        <el-tab-pane label="妤煎畤姒傚喌" name="louyu">
+                        <el-tab-pane label="鎴挎�佺鐞�" name="house" v-if="[1,2].includes(lv)">
+                            <div class="xm">
+                                <div class="xm_house">
+                                    <div class="xm_house_tips">
+                                        <div class="xm_house_tips_row">
+                                            <div class="xm_house_tips_row_d" style="background: rgba(0,186,146,0.1);"></div>
+                                            <span>宸插嚭绉�</span>
+                                        </div>
+                                        <div class="xm_house_tips_row">
+                                            <div class="xm_house_tips_row_d" style="background: #F7F7F7;"></div>
+                                            <span>鏈嚭绉�</span>
+                                        </div>
+                                        <div class="xm_house_tips_row">
+                                            <div class="xm_house_tips_row_d" style="background: rgba(255,158,0,0.14);"></div>
+                                            <span>90鏃ュ唴鍒版湡</span>
+                                        </div>
+                                    </div>
+                                    <div class="xm_house_list" v-for="(item, index) in roomStatus" :key="index">
+                                        <div class="xm_house_list_left">
+                                            <div class="xm_house_list_left_row">
+                                                <span>{{item.floorName}}</span>
+                                                <span>{{item.floorArea}}銕�</span>
+                                            </div>
+                                        </div>
+                                        <div class="xm_house_list_right">
+                                            <div class="xm_house_list_right_row" :style="{ width: ifWidth(child.roomRentArea), backgroundColor: ifBackground(child.roomStatus) }" v-for="(child, i) in item.ywRoomStatusDataVOList" :key="i">
+                                                <div class="ft">
+                                                    <span>{{child.roomCode}}</span>
+                                                    <span>锛坽{child.roomRentArea}}銕★級</span>
+                                                </div>
+                                                <div class="xm_house_list_right_row_info" v-if="child.roomStatus !== 0">
+                                                    <span>{{child.customerName}}</span>
+                                                    <span>{{child.overData.substring(0, 10)}}鍒版湡</span>
+                                                </div>
+                                                <div class="xm_house_list_right_row_day" v-if="child.roomStatus === 0">鏈嚭绉燂綔绌虹疆{{child.freeDayAmount}}澶�</div>
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </el-tab-pane>
+                        <el-tab-pane label="妤煎畤姒傚喌" name="louyu" v-if="lv === 1">
                             <div class="xm">
                                 <el-card>
                                     <div class="xm_one">
                                         <div class="xm_one_row">
                                             <span>鍦ㄧ鍚堝悓鏁�</span>
-                                            <span>4</span>
-                                            <span>鍦ㄧ鎴挎簮鏁帮細5</span>
+                                            <span>{{projectNums.leaseContractAmount}}</span>
+                                            <span>鍦ㄧ鎴挎簮鏁帮細{{projectNums.leaseRoomAmount}}</span>
                                         </div>
                                         <div class="xm_one_row">
                                             <span>鍙嫑鍟嗛潰绉�</span>
-                                            <span>50000銕�</span>
-                                            <span>鍙嫑鍟嗘埧婧愭暟锛�15</span>
+                                            <span>{{projectNums.investmentArea}}銕�</span>
+                                            <span>鍙嫑鍟嗘埧婧愭暟锛歿{projectNums.investmentRoomAmount}}</span>
                                         </div>
                                         <div class="xm_one_row">
                                             <span>鍦ㄧ瀹炴椂鍧囦环</span>
-                                            <span>145.75鍏�/m虏路澶�</span>
-                                            <span>鍦ㄧ闈㈢Н锛�900.00m虏</span>
+                                            <span>{{projectNums.leasePrice}}鍏�/m虏路澶�</span>
+                                            <span>鍦ㄧ闈㈢Н锛歿{projectNums.leaseArea}}m虏</span>
                                         </div>
                                         <div class="xm_one_row">
                                             <span>鍑虹鐜�</span>
-                                            <span>50.00%</span>
-                                            <span>寰呯闈㈢Н锛�700.00m虏</span>
+                                            <span>{{(projectNums.leaseRoomAmount / projectNums.investmentRoomAmount).toFixed(2)}}%</span>
+                                            <span>寰呯闈㈢Н锛歿{projectNums.investmentArea - projectNums.leaseArea}}m虏</span>
                                         </div>
                                     </div>
                                 </el-card>
@@ -253,43 +342,43 @@
                                     <div class="xm_info">
                                         <div class="xm_info_row" style="width: 25%;">
                                             <span>鎵�灞為」鐩�</span>
-                                            <span>闃滃畞鏂囦綋涓績</span>
+                                            <span>{{buildingInfo.projectName}}</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 25%;">
                                             <span>妤煎畤鍚嶇О</span>
-                                            <span>A搴�</span>
+                                            <span>{{buildingInfo.name}}</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 25%;">
                                             <span>妤煎畤缂栫爜</span>
-                                            <span>A-</span>
+                                            <span>{{buildingInfo.code}}</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 25%;">
                                             <span>璇︾粏鍦板潃</span>
-                                            <span>闃滃畞鏂囦綋涓績瑗垮崡瑙�</span>
+                                            <span>{{buildingInfo.addr}}</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 100%; margin-top: 15px;">
-                                            <span>璇︾粏鍦板潃</span>
-                                            <span>闃滃畞鏂囦綋涓績瑗垮崡瑙�</span>
+                                            <span>妤煎畤绠�浠�</span>
+                                            <span>{{buildingInfo.remark}}</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
                                             <span>寤虹瓚闈㈢Н</span>
-                                            <span>1000銕�</span>
+                                            <span>{{buildingInfo.cqArea}}銕�</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
                                             <span>璁$闈㈢Н</span>
-                                            <span>1000銕�</span>
+                                            <span>{{buildingInfo.roomRentArea}}銕�</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 50%; margin-top: 15px;">
                                             <span>璁¤垂闈㈢Н</span>
-                                            <span>1000銕�</span>
+                                            <span>{{buildingInfo.roomFeeArea}}銕�</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
                                             <span>鍦颁笂灞傛暟</span>
-                                            <span>5</span>
+                                            <span>{{buildingInfo.onFloor}}</span>
                                         </div>
                                         <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
                                             <span>鍦颁笅灞傛暟</span>
-                                            <span>2</span>
+                                            <span>{{buildingInfo.underFloor}}</span>
                                         </div>
                                     </div>
                                 </el-card>
@@ -298,184 +387,53 @@
                                         <span>褰撳墠鍦ㄧ鍚堝悓</span>
                                     </div>
                                     <div class="xm_table">
-                                        <el-input v-model="input" style="width: 300px; margin-bottom: 15px;" placeholder="璇疯緭鍏ュ唴瀹�"></el-input>
-                                        <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>
-                                        <div class="xm_table_f">
-                                            <el-pagination
-                                                    @size-change="handleSizeChange"
-                                                    @current-change="handleCurrentChange"
-                                                    :current-page="page"
-                                                    :page-sizes="[10, 20, 30, 40]"
-                                                    :page-size="pageTotal"
-                                                    layout="total, sizes, prev, pager, next, jumper"
-                                                    :total="total">
-                                            </el-pagination>
-                                        </div>
-                                    </div>
-                                </el-card>
-                            </div>
-                        </el-tab-pane>
-                        <el-tab-pane label="鎴挎�佺鐞�" name="house">
-                            <div class="xm">
-                                <div class="xm_house">
-                                    <div class="xm_house_tips">
-                                        <div class="xm_house_tips_row">
-                                            <div class="xm_house_tips_row_d"></div>
-                                            <span>宸插嚭绉�</span>
-                                        </div>
-                                        <div class="xm_house_tips_row">
-                                            <div class="xm_house_tips_row_d"></div>
-                                            <span>鏈嚭绉�</span>
-                                        </div>
-                                        <div class="xm_house_tips_row">
-                                            <div class="xm_house_tips_row_d"></div>
-                                            <span>90鏃ュ唴鍒版湡</span>
-                                        </div>
-                                    </div>
-                                    <div class="xm_house_list">
-                                        <div class="xm_house_list_left">
-                                            <div class="xm_house_list_left_row">
-                                                <span>1F</span>
-                                                <span>600銕�</span>
-                                            </div>
-                                        </div>
-                                        <div class="xm_house_list_right">
-                                            <div class="item">
-                                                <div class="xm_house_list_right_row">
-                                                    <span>101锛�600銕★級</span>
-                                                    <div class="xm_house_list_right_row_info">
-                                                        <span>绉熷鍚嶇О</span>
-                                                        <span>2024-08-16鍒版湡</span>
-                                                    </div>
-                                                </div>
-                                                <div class="xm_house_list_right_row">
-                                                    <span>101锛�600銕★級</span>
-                                                    <div class="xm_house_list_right_row_info">
-                                                        <span>绉熷鍚嶇О</span>
-                                                        <span>2024-08-16鍒版湡</span>
-                                                    </div>
-                                                </div>
-                                                <div class="xm_house_list_right_row">
-                                                    <span>101锛�600銕★級</span>
-                                                    <div class="xm_house_list_right_row_info">
-                                                        <span>绉熷鍚嶇О</span>
-                                                        <span>2024-08-16鍒版湡</span>
-                                                    </div>
-                                                </div>
-                                                <div class="xm_house_list_right_row">
-                                                    <span>101锛�600銕★級</span>
-                                                    <div class="xm_house_list_right_row_info">
-                                                        <span>绉熷鍚嶇О</span>
-                                                        <span>2024-08-16鍒版湡</span>
-                                                    </div>
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </div>
-                                </div>
-                            </div>
-                        </el-tab-pane>
-                        <el-tab-pane label="宸ュ崟璁板綍" name="second">
-                            <div class="xm">
-                                <el-card>
-                                    <div class="xm_one1">
-                                        <div class="xm_one_row">
-                                            <span>寰呮寚娲炬暟閲�</span>
-                                            <span>15</span>
-                                        </div>
-                                        <div class="xm_one_row">
-                                            <span>寰呭鐞嗘暟閲�</span>
-                                            <span>15</span>
-                                        </div>
-                                        <div class="xm_one_row">
-                                            <span>鏈湀宸ュ崟鏁�</span>
-                                            <span>15</span>
-                                        </div>
-                                        <div class="xm_one_row">
-                                            <span>绱宸ュ崟鏁�</span>
-                                            <span>15</span>
-                                        </div>
-                                    </div>
-                                </el-card>
-                                <el-card style="margin-top: 20px;">
-                                    <div class="xm_table">
-                                        <div class="xm_table_search">
-                                            <el-select v-model="value" style="width: 300px; margin-right: 15px;" placeholder="浣嶇疆绫诲瀷">
-                                                <el-option
-                                                    v-for="item in options"
-                                                    :key="item.value"
-                                                    :label="item.label"
-                                                    :value="item.value">
-                                                </el-option>
-                                            </el-select>
-                                            <el-select v-model="value" style="width: 300px;" placeholder="宸ュ崟鍒嗙被">
-                                                <el-option
-                                                    v-for="item in options"
-                                                    :key="item.value"
-                                                    :label="item.label"
-                                                    :value="item.value">
-                                                </el-option>
-                                            </el-select>
+                                        <div style="display: flex; align-items: center; margin-bottom: 15px;">
+                                            <el-input v-model="form.code" style="width: 150px; margin-right: 15px;" placeholder="璇疯緭鍏ュ悎鍚岀紪鍙�"></el-input>
+                                            <el-button type="primary" @click="getFetchList">鎼滅储</el-button>
+                                            <el-button @click="clear">閲嶇疆</el-button>
                                         </div>
                                         <el-table
                                             :data="tableData"
                                             border
+                                            v-loading="loading"
                                             style="width: 100%">
                                             <el-table-column
-                                                prop="date"
-                                                label="宸ュ崟鍒嗙被">
+                                                label="鍚堝悓缂栧彿">
+                                                <template slot-scope="{row}">
+                                                    <el-button type="text">{{row.code}}</el-button>
+                                                </template>
                                             </el-table-column>
                                             <el-table-column
-                                                prop="name"
-                                                label="鎶ヤ慨鍖哄煙">
+                                                prop="renterName"
+                                                label="绉熷">
                                             </el-table-column>
                                             <el-table-column
-                                                prop="address"
-                                                label="涓婃姤浜�">
+                                                label="绉熻祦鍗曚环">
+                                                <template slot-scope="{row}">
+                                                    <div style="display: flex; align-items: center;">
+                                                        <span>{{row.leasePrice || 0}}鍏�/銕÷峰ぉ</span>
+                                                    </div>
+                                                </template>
                                             </el-table-column>
                                             <el-table-column
-                                                prop="address"
-                                                label="涓婃姤鏃堕棿">
+                                                prop="leaseDays"
+                                                label="绉熻祦澶╂暟">
                                             </el-table-column>
                                             <el-table-column
-                                                prop="address"
-                                                label="澶勭悊浜�">
+                                                label="绉熻祦闈㈢Н">
+                                                <template slot-scope="{row}">
+                                                    {{row.totalArea}}銕�
+                                                </template>
                                             </el-table-column>
                                             <el-table-column
-                                                prop="address"
-                                                label="宸ュ崟鐘舵��">
-                                            </el-table-column>
-                                            <el-table-column
-                                                prop="address"
-                                                label="鎿嶄綔">
+                                                label="鎴挎簮">
+                                                <template slot-scope="{row}">
+                                                    <div style="display: flex; flex-direction: column;">
+                                                        <span v-for="(item, index) in row.roomList" :key="index">
+                                                            {{item.projectName}}/{{item.buildingName}}/{{item.floorName}}/{{item.roomNum}}
+                                                        </span>
+                                                    </div>
+                                                </template>
                                             </el-table-column>
                                         </el-table>
                                         <div class="xm_table_f">
@@ -493,7 +451,107 @@
                                 </el-card>
                             </div>
                         </el-tab-pane>
-                        <el-tab-pane label="璁惧淇℃伅" name="third">
+                        <el-tab-pane label="宸ュ崟璁板綍" name="second" v-if="[0,2,3].includes(lv)">
+                            <div class="xm">
+                                <el-card>
+                                    <div class="xm_one1">
+                                        <div class="xm_one_row">
+                                            <span>寰呮寚娲炬暟閲�</span>
+                                            <span>{{workOrderNums.waitAssignAmount || 0}}</span>
+                                        </div>
+                                        <div class="xm_one_row">
+                                            <span>寰呭鐞嗘暟閲�</span>
+                                            <span>{{workOrderNums.waitDealAmount || 0}}</span>
+                                        </div>
+                                        <div class="xm_one_row">
+                                            <span>鏈湀宸ュ崟鏁�</span>
+                                            <span>{{workOrderNums.monthAmount || 0}}</span>
+                                        </div>
+                                        <div class="xm_one_row">
+                                            <span>绱宸ュ崟鏁�</span>
+                                            <span>{{workOrderNums.amount || 0}}</span>
+                                        </div>
+                                    </div>
+                                </el-card>
+                                <el-card style="margin-top: 20px;">
+                                    <div class="xm_table">
+                                        <div class="xm_table_search">
+                                            <div>
+                                                <el-cascader style="width: 150px; margin-right: 15px;" v-model="form.areaIds" @change="changeSel" placeholder="璇烽�夋嫨宸ュ崟鍒嗙被" clearable
+                                                 :options="cateList" :props="{
+                                                    label: 'name',
+                                                    value: 'id',
+                                                    children: 'childCategoryList'
+                                                }" />
+                                                <el-select v-model="form.dealStatus" style="width: 150px; margin-right: 15px;" placeholder="宸ュ崟鐘舵��">
+                                                    <el-option label="寰呮寚娲�" :value="0"></el-option>
+                                                    <el-option label="宸叉寚娲�" :value="1"></el-option>
+                                                    <el-option label="宸插鐞�" :value="2"></el-option>
+                                                </el-select>
+                                                <el-button type="primary" @click="getWorkOrderList">鏌ヨ</el-button>
+                                                <el-button @click="clear">娓呯┖</el-button>
+                                            </div>
+                                            <el-button type="primary" @click="$refs.operaYwWorkorderWindow.open('鏂板缓宸ュ崟')">鏂板宸ュ崟</el-button>
+                                        </div>
+                                        <el-table
+                                            :data="tableData"
+                                            border
+                                            v-lading="loading"
+                                            style="width: 100%">
+                                            <el-table-column
+                                                prop="categoryName"
+                                                label="宸ュ崟鍒嗙被">
+                                            </el-table-column>
+                                            <el-table-column
+                                                label="鎶ヤ慨鍖哄煙">
+                                                <template v-slot="scope">
+                                                <span>{{ scope.row.buildingName }} / {{ scope.row.areaType == 0 ? scope.row.roomNum : scope.row.floorName
+                                                  }}</span>
+                                                </template>
+                                            </el-table-column>
+                                            <el-table-column
+                                                prop="creatorName"
+                                                label="涓婃姤浜�">
+                                            </el-table-column>
+                                            <el-table-column
+                                                prop="createDate"
+                                                label="涓婃姤鏃堕棿">
+                                            </el-table-column>
+                                            <el-table-column
+                                                prop="dealUserName"
+                                                label="澶勭悊浜�">
+                                            </el-table-column>
+                                            <el-table-column
+                                                label="宸ュ崟鐘舵��">
+                                                <template slot-scope="{row}">
+                                                    <span v-if="row.dealStatus === 0">寰呮寚娲�</span>
+                                                    <span v-if="row.dealStatus === 1">宸叉寚娲�</span>
+                                                    <span v-if="row.dealStatus === 2">宸插鐞�</span>
+                                                </template>
+                                            </el-table-column>
+                                            <el-table-column
+                                                label="鎿嶄綔">
+                                                <template slot-scope="{row}">
+                                                    <el-button type="text" @click="handleDetail(row)">鏌ョ湅璇︽儏</el-button>
+                                                </template>
+                                            </el-table-column>
+                                        </el-table>
+                                        <div class="xm_table_f">
+                                            <el-pagination
+                                                @size-change="handleSizeChange"
+                                                @current-change="handleCurrentChange"
+                                                :current-page="page"
+                                                :page-sizes="[10, 20, 30, 40]"
+                                                :page-size="pageTotal"
+                                                layout="total, sizes, prev, pager, next, jumper"
+                                                :total="total">
+                                            </el-pagination>
+                                        </div>
+                                    </div>
+                                </el-card>
+                            </div>
+                        </el-tab-pane>
+                        <el-tab-pane label="璁惧淇℃伅" name="third" v-if="[0,1,2,3].includes(lv)">
                             <div class="xm">
                                 <div class="xm_chat">
                                     <el-card class="xm_chat_row">
@@ -507,122 +565,55 @@
                                     <div class="xm_table">
                                         <div class="xm_table_search">
                                             <div class="xm_table_search_left">
-                                                <el-input v-model="input" placeholder="璇疯緭鍏ヨ澶囧悕绉�/缂栫爜" style="width: 200px; margin-right: 15px;"></el-input>
-                                                <el-select v-model="value" style="width: 200px; margin-right: 15px;" placeholder="璁惧鐘舵��">
-                                                    <el-option
-                                                        v-for="item in options"
-                                                        :key="item.value"
-                                                        :label="item.label"
-                                                        :value="item.value">
-                                                    </el-option>
+                                                <el-input v-model="form.name" placeholder="璇疯緭鍏ヨ澶囧悕绉�/缂栫爜" style="width: 150px; margin-right: 15px;"></el-input>
+                                                <el-select v-model="form.status" style="width: 150px; margin-right: 15px;" placeholder="璁惧鐘舵��">
+                                                    <el-option label="姝e父" :value="0"></el-option>
+                                                    <el-option label="鎹熷潖" :value="1"></el-option>
+                                                    <el-option label="鎶ュ簾" :value="2"></el-option>
                                                 </el-select>
-                                                <el-button type="primary">鏌ヨ</el-button>
-                                                <el-button>娓呯┖</el-button>
+                                                <el-button type="primary" @click="getDevicePage">鏌ヨ</el-button>
+                                                <el-button @click="clear">娓呯┖</el-button>
                                             </div>
-                                            <el-button type="primary">鏂板</el-button>
+                                            <el-button type="primary" @click="handleEdit">鏂板</el-button>
                                         </div>
                                         <el-table
                                             :data="tableData"
                                             border
+                                            v-loading="loading"
                                             style="width: 100%">
                                             <el-table-column
-                                                prop="date"
-                                                label="宸ュ崟鍒嗙被">
+                                                label="璁惧缂栫爜">
+                                                <template slot-scope="{row}">
+                                                    <el-button type="text">{{row.code}}</el-button>
+                                                </template>
                                             </el-table-column>
                                             <el-table-column
                                                 prop="name"
-                                                label="鎶ヤ慨鍖哄煙">
+                                                label="璁惧鍚嶇О">
                                             </el-table-column>
                                             <el-table-column
-                                                prop="address"
-                                                label="涓婃姤浜�">
+                                                prop="categoryName"
+                                                label="璁惧鍒嗙被">
                                             </el-table-column>
                                             <el-table-column
-                                                prop="address"
-                                                label="涓婃姤鏃堕棿">
+                                                prop="modelNo"
+                                                label="璁惧鍨嬪彿">
                                             </el-table-column>
                                             <el-table-column
-                                                prop="address"
-                                                label="澶勭悊浜�">
+                                                prop="realName"
+                                                label="璁惧绠$悊鍛�">
                                             </el-table-column>
                                             <el-table-column
-                                                prop="address"
-                                                label="宸ュ崟鐘舵��">
+                                                prop="supplier"
+                                                label="璁惧渚涘簲鍟�">
                                             </el-table-column>
                                             <el-table-column
-                                                prop="address"
-                                                label="鎿嶄綔">
-                                            </el-table-column>
-                                        </el-table>
-                                        <div class="xm_table_f">
-                                            <el-pagination
-                                                @size-change="handleSizeChange"
-                                                @current-change="handleCurrentChange"
-                                                :current-page="page"
-                                                :page-sizes="[10, 20, 30, 40]"
-                                                :page-size="pageTotal"
-                                                layout="total, sizes, prev, pager, next, jumper"
-                                                :total="total">
-                                            </el-pagination>
-                                        </div>
-                                    </div>
-                                </el-card>
-                            </div>
-                        </el-tab-pane>
-                        <el-tab-pane label="璧勪骇淇℃伅" name="fourth">
-                            <div class="xm">
-                                <el-card>
-                                    <div slot="header" class="clearfix">
-                                        <span>璧勪骇娓呭崟</span>
-                                    </div>
-                                    <div class="xm_table">
-                                        <div class="xm_table_search">
-                                            <div class="xm_table_search_left">
-                                                <el-input v-model="input" placeholder="璇疯緭鍏ヨ祫浜у悕绉�/缂栫爜" style="width: 200px; margin-right: 15px;"></el-input>
-                                                <el-select v-model="value" style="width: 200px; margin-right: 15px;" placeholder="璧勪骇鍒嗙被">
-                                                    <el-option
-                                                        v-for="item in options"
-                                                        :key="item.value"
-                                                        :label="item.label"
-                                                        :value="item.value">
-                                                    </el-option>
-                                                </el-select>
-                                                <el-button type="primary">鏌ヨ</el-button>
-                                                <el-button>娓呯┖</el-button>
-                                            </div>
-                                            <el-button type="primary">鏂板</el-button>
-                                        </div>
-                                        <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="搴撳瓨鏁伴噺">
+                                                label="璁惧鐘舵��">
+                                                <template slot-scope="{row}">
+                                                    <span v-if="row.status === 0">姝e父</span>
+                                                    <span v-if="row.status === 1">鎹熷潖</span>
+                                                    <span v-if="row.status === 2">鎶ュ簾</span>
+                                                </template>
                                             </el-table-column>
                                         </el-table>
                                         <div class="xm_table_f">
@@ -644,56 +635,37 @@
                 </div>
             </div>
         </div>
+        <!--    鏂板缓宸ュ崟    -->
+        <OperaYwWorkorderWindow ref="operaYwWorkorderWindow" />
+        <!--    宸ュ崟璇︽儏    -->
+        <Detail v-if="showDetail" ref="DetailRef" @close="showDetail = false" />
+        <!--    鏂板缓璁惧    -->
+        <Edit v-if="showEdit1" ref="EditRef" @success="getDevicePage" @close="showEdit1 = false" />
     </div>
 </template>
 
 <script>
   import * as echarts from 'echarts';
+  import { tree, getProjectById } from '@/api/project/ywProject'
+  import { getRoomContract, getRoomStatusList, detailById as roomDetailById } from '@/api/project/ywRoom'
+  import { fetchList } from '@/api/contract'
+  import OperaYwWorkorderWindow from '../workorder/components/OperaYwWorkorderWindow'
+  import { fetchList as getCateList } from '@/api/business/category'
+  import { getDataVO, fetchList as workderList } from '@/api/workorder/ywWorkorder'
+  import { detailById } from '@/api/project/ywBuilding'
+  import Detail from '../workorder/components/detail'
+  import { fetchList as devicePage, getDeviceCateData, getDeviceStatus } from '@/api/Inspection/device'
+  import Edit from '../operation/components/deviceEdit'
   export default {
     name: 'index',
+    components: { OperaYwWorkorderWindow, Detail, Edit },
     data() {
       return {
-        input: '',
+        showDetail: false,
+        showEdit1: false,
+        filterText: '',
         tableData: [],
-        data: [{
-          label: '涓�绾� 1',
-          children: [{
-            label: '浜岀骇 1-1',
-            children: [{
-              label: '涓夌骇 1-1-1'
-            }]
-          }]
-        }, {
-          label: '涓�绾� 2',
-          children: [{
-            label: '浜岀骇 2-1',
-            children: [{
-              label: '涓夌骇 2-1-1'
-            }]
-          }, {
-            label: '浜岀骇 2-2',
-            children: [{
-              label: '涓夌骇 2-2-1'
-            }]
-          }]
-        }, {
-          label: '涓�绾� 3',
-          children: [{
-            label: '浜岀骇 3-1',
-            children: [{
-              label: '涓夌骇 3-1-1'
-            }]
-          }, {
-            label: '浜岀骇 3-2',
-            children: [{
-              label: '涓夌骇 3-2-1'
-            }]
-          }]
-        }],
-        defaultProps: {
-          children: 'children',
-          label: 'label'
-        },
+        houseList: [],
         activeName: 'first',
         total: 0,
         pageTotal: 10,
@@ -701,66 +673,357 @@
         options: [{
           value: '閫夐」1',
           label: '榛勯噾绯�'
-        }, {
-          value: '閫夐」2',
-          label: '鍙岀毊濂�'
-        }, {
-          value: '閫夐」3',
-          label: '铓典粩鐓�'
-        }, {
-          value: '閫夐」4',
-          label: '榫欓』闈�'
-        }, {
-          value: '閫夐」5',
-          label: '鍖椾含鐑ら腑'
         }],
-        value: ''
+        value: '',
+        form: {
+          name: '',
+          status: '',
+          project: '',
+          buildingId: '',
+          floorId: '',
+          roomId: '',
+          code: '',
+          areaIds: [],
+          cateId: '',
+          dealStatus: ''
+        },
+        title: '',
+        cateList: [],
+        deviceList: [],
+        categaryList: [],
+        roomStatus: [],
+        projectInfo: {},
+        projectNums: {},
+        workOrderNums: {},
+        buildingInfo: {},
+        roomInfo: {},
+        loading: false,
+        lv: 0,
+        leaseStatus: ''
       }
     },
     created () {
-      this.$nextTick(() => {
-        this.reand()
-        this.reand1()
-      })
+      this.getHouseTree()
+    },
+    watch: {
+      filterText(val) {
+        this.$refs.tree.filter(val);
+      }
     },
     methods: {
+      nodeClick(e) {
+        this.tableData = []
+        this.pageSize = 10
+        this.page = 1
+        this.form.project = ''
+        this.form.buildingId = ''
+        this.form.floorId = ''
+        this.form.roomId = ''
+        this.leaseStatus = ''
+        this.lv = e.lv
+        this.title = e.name
+        if (e.lv === 0) {
+          this.activeName = 'first'
+          this.form.project = e.id
+          this.getProjectByIds()
+        } else if (e.lv === 1) {
+          this.activeName = 'house'
+          this.form.buildingId = e.id
+          this.getRoomStatusLists()
+        } else if (e.lv === 2) {
+          this.activeName = 'house'
+          this.form.floorId = e.id
+          this.getRoomStatusLists()
+        } else if (e.lv === 3) {
+          this.activeName = 'houseinfo'
+          this.form.roomId = e.id
+          this.leaseStatus = e.leaseStatus
+          this.roomDetailByIds()
+        }
+      },
+      // 鎼滅储鏍�
+      filterNode(value, data) {
+        if (!value) return true;
+        return data.name.indexOf(value) !== -1;
+      },
+      // 鍒ゆ柇鎴挎�佸搴�
+      ifWidth(num) {
+        if (num >= 0 && num <= 100) {
+          return '150px'
+        } else if (num >= 101 && num <= 200) {
+          return '180px'
+        } else if (num >= 201 && num <= 300) {
+          return '210px'
+        } else if (num >= 301 && num <= 400) {
+          return '240px'
+        } else if (num >= 401 && num <= 500) {
+          return '270px'
+        } else {
+          return '300px'
+        }
+      },
+      // 鍒ゆ柇鎴挎�佽儗鏅壊
+      ifBackground(type) {
+        if (type === 0) {
+          return '#F7F7F7'
+        } else if (type === 1) {
+          return 'rgba(0,186,146,0.14)'
+        } else if (type === 2) {
+          return 'rgba(255,158,0,0.14)'
+        }
+      },
+      // 鑾峰彇鎴挎簮璇︽儏
+      roomDetailByIds() {
+        roomDetailById(this.form.roomId)
+            .then(res => {
+              this.roomInfo = res
+            })
+      },
+      // 鑾峰彇妤煎畤璇︽儏
+      getDetailById() {
+        detailById(this.form.buildingId)
+            .then(res => {
+              console.log(res)
+              this.buildingInfo = res
+            })
+      },
+      // 鎴挎�佹暟鎹�
+      getRoomStatusLists() {
+        getRoomStatusList({
+          buildingId: this.form.buildingId,
+          floor: this.form.floorId
+        }).then(res => {
+          this.roomStatus = res
+        })
+      },
+      // 鑾峰彇璁惧鐘舵��
+      getDevice() {
+        getDeviceStatus({
+          projectId: this.form.project,
+          buildingId: this.form.buildingId,
+          floorId: this.form.floorId,
+          roomId: this.form.roomId
+        })
+          .then(res => {
+            this.$nextTick(() => {
+              this.deviceList = [
+                { value: res.workAmount || 0, name: '姝e父' },
+                { value: res.exceptionAmount || 0, name: '寮傚父' },
+                { value: res.errAmount || 0, name: '鎶ュ簾' }
+              ]
+              this.reand()
+            })
+          })
+      },
+      // 璁惧鏁伴噺鍒嗗竷缁熻
+      getDeviceCateDatas() {
+        getDeviceCateData({
+          projectId: this.form.project,
+          buildingId: this.form.buildingId,
+          floorId: this.form.floorId,
+          roomId: this.form.roomId
+        }).then(res => {
+          this.categaryList = res
+          this.$nextTick(() => {
+            this.reand1()
+          })
+        })
+      },
+      handleEdit(row) {
+        this.showEdit1 = true
+        this.$nextTick(() => {
+          this.$refs.EditRef.isShowModal = true
+        })
+      },
+      // 鑾峰彇璁惧鍒嗛〉
+      getDevicePage() {
+        this.loading = true
+        devicePage({
+          capacity: this.pageTotal,
+          page: this.page,
+          model: {
+            projectId: this.form.project,
+            buildingId: this.form.buildingId,
+            floorId: this.form.floorId,
+            roomId: this.form.roomId,
+            status: this.form.status,
+            name: this.form.name
+          }
+        }).then(res => {
+          this.tableData = res.records
+          this.total = res.total
+        }).finally(() => {
+          this.loading = false
+        })
+      },
+      handleDetail(row) {
+        this.showDetail = true
+        this.$nextTick(() => {
+          this.$refs.DetailRef.visible = true
+          this.$refs.DetailRef.id = row.id
+          this.$refs.DetailRef.getDetail()
+        })
+      },
+      // 鑾峰彇宸ュ崟鍒楄〃
+      getWorkOrderList() {
+        this.loading = true
+        workderList({
+          capacity: this.pageTotal,
+          page: this.page,
+          model: {
+            projectId: this.form.project,
+            buildingId: this.form.buildingId,
+            floorId: this.form.floorId,
+            roomId: this.form.roomId,
+            dealStatus: this.form.dealStatus,
+            cateId: this.form.cateId
+          }
+        }).then(res => {
+          this.tableData = res.records
+          this.total = res.total
+        }).finally(() => {
+          this.loading = false
+        })
+      },
+      getCate() {
+        getCateList({
+          model: { type: 3 },
+          capacity: 1000,
+          page: 1,
+        }).then(res => {
+          this.cateList = res.records || []
+        })
+      },
+      // 鑾峰彇椤圭洰淇℃伅
+      getProjectByIds() {
+        getProjectById(this.form.project)
+            .then(res => {
+              this.projectInfo = res
+            })
+        this.getGK()
+        this.getFetchList()
+      },
+      //椤圭洰姒傚喌
+      getGK() {
+        getRoomContract({
+          projectId: this.form.project,
+          buildingId: this.form.buildingId,
+          floorId: this.form.floorId,
+          roomId: this.form.roomId,
+        }).then(res => {
+          this.projectNums = res
+        })
+      },
+      changeSel(e) {
+        if (e && e.length == 2) {
+          this.$set(this.form, 'cateId', e[1])
+        } else {
+          this.$set(this.form, 'cateId', '')
+        }
+      },
+      // 鑾峰彇宸ュ崟鏁伴噺
+      getDataVOs() {
+        let queryType = ''
+        let queryId = ''
+        if (this.lv === 0) {
+          queryType = 1
+          queryId = this.form.project
+        } else if (this.lv === 2) {
+          queryType = 2
+          queryId = this.form.floorId
+        } else if (this.lv === 3) {
+          queryType = 3
+          queryId = this.form.roomId
+        }
+        getDataVO({
+          queryType,
+          queryId
+        }).then(res => {
+          this.workOrderNums = res
+        })
+      },
+      clear() {
+        this.form.code = ''
+        this.form.name = ''
+        this.form.status = ''
+        this.form.dealStatus = ''
+        this.form.cateId = ''
+        this.form.areaIds = []
+        if (['first', 'louyu', 'houseinfo'].includes(this.activeName)) {
+          this.getFetchList()
+        } else if (this.activeName === 'second') {
+          this.getWorkOrderList()
+        } else if (this.activeName === 'third') {
+          this.getDevicePage()
+        }
+      },
+      // 鑾峰彇褰撳墠鍦ㄧ鍚堝悓
+      getFetchList() {
+        this.loading = true
+        fetchList({
+          capacity: this.pageSize,
+          page: this.page,
+          model: {
+            projectId: this.form.project,
+            buildingId: this.form.buildingId,
+            floorId: this.form.floorId,
+            roomId: this.form.roomId,
+            code: this.form.code
+          }
+        }).then(res => {
+          this.tableData = res.records
+          this.total = res.total
+        }).finally(() => {
+          this.loading = false
+        })
+      },
+      getHouseTree() {
+        tree({})
+          .then(res => {
+            this.addParamToArray(res)
+            this.form.project = res[0].id
+            this.title = res[0].name
+            this.houseList = res
+            this.getProjectByIds()
+          })
+      },
+      addParamToArray(arr) {
+        for (let i = 0; i < arr.length; i++) {
+          const currentItem = arr[i].projectDataVOList
+          arr[i].idd = arr[i].lv + '-' + arr[i].id
+          if (currentItem.length > 0) {
+            this.addParamToArray(currentItem)
+          }
+        }
+      },
       reand() {
         var chartDom = document.getElementById('chat1');
         var myChart = echarts.init(chartDom);
         var option;
         option = {
+          title: {
+            text: '璁惧鐘舵��'
+          },
           tooltip: {
             trigger: 'item'
           },
           legend: {
-            top: '5%',
-            left: 'center'
+            left: 'right',
+            top: 'middle',
+            width: '80'
           },
           series: [
             {
-              name: 'Access From',
+              name: '璁惧鐘舵��',
               type: 'pie',
               radius: ['40%', '80%'],
-              avoidLabelOverlap: false,
               label: {
-                show: false,
-                position: 'center'
+                show: true,
+                position: 'center',
+                fontWeight: 'bold',
+                fontSize: 22
               },
-              emphasis: {
-                label: {
-                  show: true,
-                  fontSize: 40,
-                  fontWeight: 'bold'
-                }
-              },
-              labelLine: {
-                show: false
-              },
-              data: [
-                { value: 1048, name: '姝e父' },
-                { value: 735, name: '寮傚父' },
-                { value: 580, name: '鎶ュ簾' }
-              ]
+              data: this.deviceList
             }
           ]
         };
@@ -770,7 +1033,6 @@
         var chartDom = document.getElementById('chat2');
         var myChart = echarts.init(chartDom);
         var option;
-        // There should not be negative values in rawData
         const rawData = [
           [100, 302, 301, 334, 390, 330, 320],
           [320, 132, 101, 134, 90, 230, 210],
@@ -786,12 +1048,6 @@
           }
           totalData.push(sum);
         }
-        const grid = {
-          left: 100,
-          right: 100,
-          top: 50,
-          bottom: 50
-        };
         const series = [
           'Direct',
           'Mail Ad',
@@ -804,43 +1060,100 @@
             type: 'bar',
             stack: 'total',
             barWidth: '60%',
-            label: {
-              show: true,
-              formatter: (params) => Math.round(params.value * 1000) / 10 + '%'
-            },
             data: rawData[sid].map((d, did) =>
               totalData[did] <= 0 ? 0 : d / totalData[did]
             )
           };
         });
+        let seriesArr = this.categaryList.map(item => {
+          return {
+            name: item.cateName,
+            type: 'bar',
+            stack: 'total',
+            barWidth: '60%',
+            data: item.ywDeviceCateDataVOList.map((child) =>
+              child.deviceAmount
+            )
+          }
+        })
+        let xAxisData = this.categaryList.map(item => item.cateName)
+        console.log(series)
+        console.log(seriesArr)
+        console.log(xAxisData)
         option = {
-          legend: {
-            selectedMode: false
+          title: {
+            text: '璁惧鏁伴噺鍒嗙被缁熻'
           },
-          grid,
+          grid: {
+            left: 50,
+            right: 50,
+            top: 50,
+            bottom: 50
+          },
+          tooltip: {
+            trigger: 'axis',
+            axisPointer: {
+              type: 'shadow'
+            }
+          },
           yAxis: {
             type: 'value'
           },
           xAxis: {
             type: 'category',
-            data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+            data: xAxisData
           },
-          series
+          series: seriesArr
         };
 
         option && myChart.setOption(option);
       },
       handleCurrentChange(page) {
         this.page = page
+        if (['first', 'louyu', 'houseinfo'].includes(this.activeName)) {
+          this.getFetchList()
+        } else if (this.activeName === 'second') {
+          this.getWorkOrderList()
+        } else if (tab.name === 'third') {
+          this.getDevicePage()
+        }
       },
       handleSizeChange(pageTotal) {
         this.pageTotal = pageTotal
+        if (['first', 'louyu', 'houseinfo'].includes(this.activeName)) {
+          this.getFetchList()
+        } else if (this.activeName === 'second') {
+          this.getWorkOrderList()
+        } else if (tab.name === 'third') {
+          this.getDevicePage()
+        }
       },
-      handleNodeClick(data) {
-        console.log(data);
-      },
-      handleClick(tab, event) {
-        console.log(tab, event);
+      handleClick(tab) {
+        this.page = 1
+        this.pageSize = 10
+        this.activeName = tab.name
+        this.tableData = []
+        if (tab.name === 'first') {
+          this.getFetchList()
+        } else if (tab.name === 'second') {
+          this.getDataVOs()
+          this.getCate()
+          this.getWorkOrderList()
+        } else if (tab.name === 'third') {
+          this.getDevicePage()
+          this.getDevice()
+          this.getDeviceCateDatas()
+        } else if (tab.name === 'louyu') {
+          this.getGK()
+          this.getFetchList()
+          this.getDetailById()
+        } else if (tab.name === 'house') {
+          this.getRoomStatusLists()
+        } else if (tab.name === 'houseinfo') {
+          this.roomDetailByIds()
+        } else if (tab.name === 'project') {
+          this.getFetchList()
+        }
       }
     }
   }
@@ -866,6 +1179,10 @@
                 display: flex;
                 flex-direction: column;
                 background: #ffffff;
+                ::v-deep .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{
+                    background-color: #f0f7ff;
+                    color: rgb(65, 107, 255)
+                }
             }
             .right {
                 flex: 1;
@@ -875,10 +1192,12 @@
                     width: 100%;
                     padding: 20px;
                     box-sizing: border-box;
+                    display: flex;
+                    align-items: center;
+                    background: #ffffff;
                     font-size: 16px;
                     font-weight: bold;
                     color: black;
-                    background: #ffffff;
                 }
                 .right_cate {
                     width: 100%;
@@ -893,7 +1212,6 @@
                             width: 100%;
                             display: flex;
                             flex-direction: column;
-                            align-items: self-end;
                             .xm_house_list {
                                 width: 100%;
                                 display: flex;
@@ -903,12 +1221,12 @@
                                     flex-shrink: 0;
                                     width: 100px;
                                     display: flex;
-                                    margin-right: 20px;
+                                    margin-right: 15px;
                                     flex-direction: column;
                                     .xm_house_list_left_row {
                                         width: 100px;
                                         height: 100px;
-                                        background: rgba(242, 242, 242, 1);
+                                        background: #F4F7FC;
                                         padding: 20px 0;
                                         box-sizing: border-box;
                                         margin-bottom: 20px;
@@ -921,56 +1239,66 @@
                                         }
                                         span {
                                             &:nth-child(1) {
+                                                font-weight: 500;
                                                 font-size: 18px;
-                                                color: #333333;
-                                                font-weight: 400;
+                                                color: #000000;
                                             }
                                             &:nth-child(2) {
-                                                font-size: 12px;
-                                                color: #929292;
+                                                font-weight: 400;
+                                                font-size: 14px;
+                                                color: #999999;
+                                                margin-top: 10px;
                                             }
                                         }
                                     }
                                 }
                                 .xm_house_list_right {
-                                    width: calc(100% - 130px);
                                     display: flex;
-                                    flex-direction: column;
-                                    .item {
-                                        width: calc(100% - 130px);
+                                    align-items: center;
+                                    .xm_house_list_right_row {
+                                        height: 100px;
+                                        padding: 12px 15px;
+                                        box-sizing: border-box;
                                         display: flex;
-                                        align-items: center;
-                                        margin-bottom: 20px;
+                                        flex-direction: column;
+                                        justify-content: space-between;
+                                        margin-right: 10px;
                                         &:last-child {
-                                            margin-bottom: 0;
+                                            margin: 0 !important;
                                         }
-                                        .xm_house_list_right_row {
-                                            height: 100px;
-                                            width: 300px;
-                                            background: rgba(198, 224, 167, 0.34509803921568627);
-                                            padding: 10px 0;
-                                            box-sizing: border-box;
+                                        .ft {
                                             display: flex;
                                             align-items: center;
-                                            flex-direction: column;
-                                            justify-content: space-between;
                                             span {
-                                                font-size: 14px;
-                                                color: #000000;
+                                                &:nth-child(1) {
+                                                    font-weight: 500;
+                                                    font-size: 18px;
+                                                    color: #000000;
+                                                }
+                                                &:nth-child(2) {
+                                                    font-weight: 400;
+                                                    font-size: 14px;
+                                                    color: #999999;
+                                                }
                                             }
-                                            .xm_house_list_right_row_info {
-                                                display: flex;
-                                                flex-direction: column;
-                                                span {
-                                                    &:nth-child(1) {
-                                                        color: #000000;
-                                                        font-size: 14px;
-                                                    }
-                                                    &:nth-child(2) {
-                                                        color: #A5A5A5;
-                                                        font-size: 12px;
-                                                        margin-top: 3px;
-                                                    }
+                                        }
+                                        .xm_house_list_right_row_day {
+                                            font-weight: 400;
+                                            font-size: 13px;
+                                            color: #999999;
+                                        }
+                                        .xm_house_list_right_row_info {
+                                            display: flex;
+                                            flex-direction: column;
+                                            span {
+                                                &:nth-child(1) {
+                                                    color: #000000;
+                                                    font-size: 14px;
+                                                }
+                                                &:nth-child(2) {
+                                                    color: #A5A5A5;
+                                                    font-size: 12px;
+                                                    margin-top: 3px;
                                                 }
                                             }
                                         }
@@ -981,18 +1309,20 @@
                                 display: flex;
                                 align-items: center;
                                 .xm_house_tips_row {
-                                    margin-left: 30px;
                                     display: flex;
                                     align-items: center;
+                                    margin-right: 30px;
                                     .xm_house_tips_row_d {
-                                        width: 10px;
-                                        height: 10px;
+                                        width: 20px;
+                                        height: 20px;
                                         background: orange;
-                                        margin-right: 5px;
+                                        margin-right: 8px;
+                                        border-radius: 2px;
                                     }
                                     span {
-                                        font-size: 16px;
-                                        color: black;
+                                        font-weight: 400;
+                                        font-size: 13px;
+                                        color: #333333;
                                     }
                                 }
                             }

--
Gitblit v1.9.3