From 62e8b7d51ecb749c3f38452af88c703ac86db9cd Mon Sep 17 00:00:00 2001
From: renkang <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 09 一月 2025 09:08:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0.1' into 2.0.1

---
 admin/src/views/contract/components/pendingBills.vue             |  137 ++
 admin/src/views/project/components/houseDetails.vue              |  741 +++++++++++++++
 admin/src/views/finance/collectionSettings.vue                   |   10 
 admin/src/views/workorder/components/problemReportingDetails.vue |  139 ++
 admin/src/views/contract/components/contractDetail.vue           |   16 
 admin/src/views/finance/components/call.vue                      |   60 +
 admin/src/views/workorder/components/handleProblem.vue           |  184 +++
 admin/src/views/workorder/problemReporting.vue                   |  105 ++
 admin/src/views/project/housingList.vue                          |    8 
 admin/src/views/roomStatus/index.vue                             | 1101 ++++++++++++++++++++++
 admin/.env.test                                                  |    4 
 admin/src/views/finance/overdueBills.vue                         |  233 ++++
 admin/src/views/contract/components/terminationAgreement.vue     |  118 ++
 13 files changed, 2,850 insertions(+), 6 deletions(-)

diff --git a/admin/.env.test b/admin/.env.test
index 4da080a..074e999 100644
--- a/admin/.env.test
+++ b/admin/.env.test
@@ -4,10 +4,10 @@
 # VUE_APP_API_URL  = 'http://192.168.5.13/gateway_interface'
 
 # 浠诲悍
-VUE_APP_API_URL  = 'http://192.168.0.137:10010/'
+# VUE_APP_API_URL  = 'http://192.168.0.137:10010/'
 
 # 钀嶅
 # VUE_APP_API_URL  = 'http://192.168.0.108:10010/'
 
 # 娴嬭瘯鏈嶅姟
-# VUE_APP_API_URL  = 'https://dmtest.ahapp.net/gateway_interface'
+VUE_APP_API_URL  = 'https://dmtest.ahapp.net/gateway_interface'
diff --git a/admin/src/views/contract/components/contractDetail.vue b/admin/src/views/contract/components/contractDetail.vue
index 3b49554..64cb0d9 100644
--- a/admin/src/views/contract/components/contractDetail.vue
+++ b/admin/src/views/contract/components/contractDetail.vue
@@ -16,7 +16,11 @@
           <el-tag type="info" v-if="info.status === 3">閫�绉熺粨绠椾腑</el-tag>
           <el-tag type="info" v-if="info.status === 4">宸查��绉�</el-tag>
         </div>
-        <el-button plain type="danger" v-if="[0, 1, 2].includes(info.status)" @click="refund">閫�绉�</el-button>
+        <div>
+          <el-button type="primary" @click="$refs.pendingBills.open('寰呭鐞嗚处鍗�')">鏌ョ湅寰呭鐞嗚处鍗�</el-button>
+          <el-button @click="$refs.terminationAgreement.open('閫�绉熷崗璁�')">鏌ョ湅閫�绉熷崗璁�</el-button>
+          <el-button plain type="danger" v-if="[0, 1, 2].includes(info.status)" @click="refund">閫�绉�</el-button>
+        </div>
       </div>
       <div class="remark" v-if="info">{{info.remark}}</div>
       <div class="remark" v-if="info && info.status === 3">{{info.btRemark}}</div>
@@ -319,6 +323,10 @@
     </div>
     <!--  閫�绉�  -->
     <TerminateLease ref="terminateLease" @success="getData" />
+    <!--  寰呭鐞嗚处鍗�  -->
+    <PendingBills ref="pendingBills" />
+    <!--  閫�绉熷崗璁�  -->
+    <TerminationAgreement ref="terminationAgreement" />
   </GlobalWindow>
 </template>
 
@@ -326,12 +334,16 @@
 import GlobalWindow from '@/components/common/GlobalWindow'
 import BaseOpera from '@/components/base/BaseOpera'
 import TerminateLease from './terminateLease'
+import PendingBills from './pendingBills'
+import TerminationAgreement from './terminationAgreement'
 import { getById } from '@/api/contract'
 import { fetchList } from '@/api/bill'
 export default {
   components: {
     GlobalWindow,
-    TerminateLease
+    TerminateLease,
+    PendingBills,
+    TerminationAgreement
   },
   extends: BaseOpera,
   data() {
diff --git a/admin/src/views/contract/components/pendingBills.vue b/admin/src/views/contract/components/pendingBills.vue
new file mode 100644
index 0000000..1ecd98f
--- /dev/null
+++ b/admin/src/views/contract/components/pendingBills.vue
@@ -0,0 +1,137 @@
+<template>
+    <GlobalWindow
+        width="100%"
+        :title="title"
+        :withFooter="false"
+        :visible.sync="visible"
+        :confirm-working="isWorking"
+        @confirm="confirm">
+        <div class="zd">
+            <div class="zd_list">
+                <div class="zd_list_row">
+                    <span>寰呮敹娆捐处鍗曟暟</span>
+                    <span>2</span>
+                </div>
+                <div class="zd_list_row">
+                    <span>寰呮敹娆鹃噾棰�</span>
+                    <span>锟�247.00</span>
+                </div>
+                <div class="zd_list_row">
+                    <span>寰呬粯娆捐处鍗曟暟</span>
+                    <span>3</span>
+                </div>
+                <div class="zd_list_row">
+                    <span>寰呬粯娆鹃噾棰�</span>
+                    <span>锟�247.00</span>
+                </div>
+            </div>
+            <div class="zd_content">
+                <div class="zd_content_label">
+                    <span>璐﹀崟</span>
+                </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="搴旀敹/浠樻棩鏈�">
+                    </el-table-column>
+                </el-table>
+            </div>
+        </div>
+    </GlobalWindow>
+</template>
+
+<script>
+  import GlobalWindow from '@/components/common/GlobalWindow'
+  import BaseOpera from '@/components/base/BaseOpera'
+  export default {
+    name: 'pendingBills',
+    components: {
+      GlobalWindow
+    },
+    extends: BaseOpera,
+    data () {
+      return {
+        tableData: []
+      }
+    },
+    methods: {
+    
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+    .zd {
+        width: 100%;
+        .zd_list {
+            width: 100%;
+            background: #f2f2f2;
+            display: flex;
+            align-items: center;
+            justify-content: space-between;
+            margin-top: 20px;
+            padding: 20px;
+            box-sizing: border-box;
+            border-radius: 10px;
+            .zd_list_row {
+                flex: 1;
+                display: flex;
+                align-items: center;
+                justify-content: center;
+                flex-direction: column;
+                span {
+                    &:nth-child(1) {
+                        font-size: 14px;
+                        color: #333333;
+                    }
+                    &:nth-child(2) {
+                        font-size: 20px;
+                        color: #333333;
+                        margin-top: 10px;
+                    }
+                }
+            }
+        }
+        .zd_content {
+            width: 100%;
+            margin-top: 20px;
+            .zd_content_label {
+                display: flex;
+                align-items: center;
+                margin-bottom: 20px;
+                span {
+                    font-weight: 500;
+                    font-size: 18px;
+                    color: #2080f7;
+                }
+            }
+        }
+    }
+</style>
diff --git a/admin/src/views/contract/components/terminationAgreement.vue b/admin/src/views/contract/components/terminationAgreement.vue
new file mode 100644
index 0000000..9b02d5c
--- /dev/null
+++ b/admin/src/views/contract/components/terminationAgreement.vue
@@ -0,0 +1,118 @@
+<template>
+    <GlobalWindow
+        :title="title"
+        :visible.sync="visible"
+        :withFooter="false"
+        :confirm-working="isWorking"
+        @close="close"
+        @confirm="confirm">
+        <div class="main">
+            <div class="main_head">
+                <span>绉熷锛氫箳涔撶悆淇变箰閮�</span>
+                <span>鍚堝悓缂栧彿锛� 2024-04-001-202405-0019</span>
+            </div>
+            <div class="title">閫�绉熶俊鎭�</div>
+            <div class="list">
+                <div class="item">
+                    <div class="la">閫�绉熺被鍨�</div>
+                    <div class="val">{{ info.code }}</div>
+                </div>
+                <div class="item">
+                    <div class="la">閫�绉熸棩鏈�</div>
+                    <div class="val">{{ info.userName }}</div>
+                </div>
+                <div class="item">
+                    <div class="la">缁忓姙浜�</div>
+                    <div class="val">{{ info.creatorName }}</div>
+                </div>
+                <div class="item">
+                    <div class="la">鍗忚绛捐鏃ユ湡</div>
+                    <div class="val">{{ info.totalArea }}銕�</div>
+                </div>
+                <div class="item">
+                    <div class="la">閫�绉熷師鍥�</div>
+                    <div class="val">{{ info.companyName }}</div>
+                </div>
+            </div>
+            <div class="title">鎴挎簮淇℃伅</div>
+            <div class="list">
+                <el-table :data="roomList" stripe>
+                    <el-table-column prop="projectName" label="椤圭洰鍚嶇О" show-overflow-tooltip />
+                    <el-table-column prop="buildingName" label="妤煎畤鍚嶇О" show-overflow-tooltip />
+                    <el-table-column prop="buildingName" label="妤煎眰/鎴垮彿" show-overflow-tooltip></el-table-column>
+                    <el-table-column prop="area" label="闈㈢Н" show-overflow-tooltip></el-table-column>
+                </el-table>
+            </div>
+        </div>
+    </GlobalWindow>
+</template>
+
+<script>
+  import GlobalWindow from '@/components/common/GlobalWindow'
+  import BaseOpera from '@/components/base/BaseOpera'
+  export default {
+    name: "terminationAgreement",
+    components: {
+      GlobalWindow
+    },
+    extends: BaseOpera,
+    data() {
+      return {
+        roomList: [],
+        info: {}
+      }
+    },
+    methods: {
+    
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+    @import '@/assets/style/variables.scss';
+    
+    .main {
+        .main_head {
+            width: 100%;
+            display: flex;
+            flex-direction: column;
+            padding: 0 0 30px 0;
+            box-sizing: border-box;
+            span {
+                font-size: 15px;
+                color: #333333;
+                font-weight: 700;
+                margin-bottom: 10px;
+                &:last-child {
+                    margin: 0 !important;
+                }
+            }
+        }
+        
+        .title {
+            font-weight: 500;
+            font-size: 18px;
+            color: $primary-color;
+            margin-bottom: 15px;
+        }
+        
+        .list {
+            display: flex;
+            flex-wrap: wrap;
+            /*background: #F7F7F7;*/
+            border-radius: 2px;
+            /*padding: 15px 20px;*/
+            margin-bottom: 20px;
+            
+            .item {
+                width: 25%;
+                margin-bottom: 16px;
+                
+                .la {
+                    color: #7f7f7f;
+                    margin-bottom: 10px;
+                }
+            }
+        }
+    }
+</style>
diff --git a/admin/src/views/finance/collectionSettings.vue b/admin/src/views/finance/collectionSettings.vue
new file mode 100644
index 0000000..891f73a
--- /dev/null
+++ b/admin/src/views/finance/collectionSettings.vue
@@ -0,0 +1,10 @@
+<template>
+    
+</template>
+
+<script>
+  export default {
+    name: 'collectionSettings'
+  }
+</script>
+
diff --git a/admin/src/views/finance/components/call.vue b/admin/src/views/finance/components/call.vue
new file mode 100644
index 0000000..7bf84c1
--- /dev/null
+++ b/admin/src/views/finance/components/call.vue
@@ -0,0 +1,60 @@
+<template>
+    <GlobalWindow
+        :title="title"
+        :visible.sync="visible"
+        width="100%">
+        <el-form :model="form" label-position="top" ref="paramRef" :rules="rules">
+            <el-form-item label="閫氱煡鏂瑰紡" prop="title">
+                <el-checkbox-group v-model="form.title">
+                    <el-checkbox label="缇庨/椁愬巺绾夸笂娲诲姩" name="1"></el-checkbox>
+                    <el-checkbox label="鍦版帹娲诲姩" name="2"></el-checkbox>
+                    <el-checkbox label="绾夸笅涓婚娲诲姩" name="3"></el-checkbox>
+                    <el-checkbox label="鍗曠函鍝佺墝鏇濆厜" name="4"></el-checkbox>
+                </el-checkbox-group>
+            </el-form-item>
+            <el-form-item label="閫氱煡鎺ユ敹浜�" prop="companyId">
+                <div style="display: flex; flex-direction: column;">
+                    <div style="display: flex; align-items: center; margin-bottom: 20px;">
+                        <span style="font-size: 14px; color: black; margin-right: 10px;">寮犱笁</span>
+                        <el-select v-model="form.companyId" placeholder="璇烽�夋嫨">
+                            <el-option label="鍖哄煙涓�" value="0"></el-option>
+                            <el-option label="鍖哄煙浜�" value="1"></el-option>
+                        </el-select>
+                    </div>
+                    <div style="display: flex; align-items: center;">
+                        <span style="font-size: 14px; color: black; margin-right: 10px;">XXXX鍏徃</span>
+                        <el-select v-model="form.companyId" placeholder="璇烽�夋嫨">
+                            <el-option label="鍖哄煙涓�" value="0"></el-option>
+                            <el-option label="鍖哄煙浜�" value="1"></el-option>
+                        </el-select>
+                    </div>
+                </div>
+            </el-form-item>
+        </el-form>
+    </GlobalWindow>
+</template>
+
+<script>
+  import GlobalWindow from '@/components/common/GlobalWindow'
+  import BaseOpera from '@/components/base/BaseOpera'
+  export default {
+    name: "call",
+    components: { GlobalWindow },
+    extends: BaseOpera,
+    data() {
+      return {
+        form: {
+          title: '1',
+          companyId: '0'
+        },
+        rules: {
+          title: [{ required: true, message: '璇疯緭鍏�' }],
+          companyId: [{ required: true, message: '璇烽�夋嫨' }],
+        }
+      }
+    },
+    methods: {
+    
+    }
+  }
+</script>
diff --git a/admin/src/views/finance/overdueBills.vue b/admin/src/views/finance/overdueBills.vue
new file mode 100644
index 0000000..8d64cc1
--- /dev/null
+++ b/admin/src/views/finance/overdueBills.vue
@@ -0,0 +1,233 @@
+<template>
+    <div class="main_app">
+        <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" />
+        <div class="df_sb mt20">
+            <div class="tabs">
+                <div class="tab" :class="{ active: billType === 0 }" @click="tabsClick(0)">閫炬湡鏀舵璐﹀崟</div>
+                <div class="tab" :class="{ active: billType === 1 }" @click="tabsClick(1)">閫炬湡浠樻璐﹀崟</div>
+            </div>
+            <div class="btns">
+                <el-button @click="$refs.call.open('鎵归噺鍌即')">鎵归噺鍌即</el-button>
+            </div>
+        </div>
+        <el-table v-loading="loading" :data="list" stripe>
+            <el-table-column prop="customerName" label="瀹㈡埛鍚嶇О" min-width="100" show-overflow-tooltip />
+            <el-table-column label="鎴块棿" min-width="170" show-overflow-tooltip>
+                <template slot-scope="{row}">
+                    <div style="display: flex; flex-direction: column;" v-if="row.roomPathName">
+                        <span v-for="(item, index) in row.roomPathName.split(';')" :key="index">{{item}}</span>
+                    </div>
+                </template>
+            </el-table-column>
+            <el-table-column prop="contractCode" label="鍚堝悓缂栧彿" min-width="100" show-overflow-tooltip />
+            <el-table-column label="缁撴竻鐘舵��" min-width="100" show-overflow-tooltip>
+                <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-column prop="totleFee" label="璐﹀崟閲戦" min-width="100" show-overflow-tooltip />
+            <el-table-column prop="receivableFee" :label="`搴�${billType === 0 ? '鏀�' : '浠�'}閲戦`" min-width="100" show-overflow-tooltip />
+            <el-table-column prop="actReceivableFee" :label="`瀹�${billType === 0 ? '鏀�' : '浠�'}閲戦`" min-width="100" show-overflow-tooltip />
+            <el-table-column :label="`闇�鏀�/浠橀噾棰漙" min-width="100" show-overflow-tooltip>
+                <template slot-scope="{row}">
+                    {{Math.abs(row.needReceivableFee)}}
+                </template>
+            </el-table-column>
+            <el-table-column label="璐圭敤绫诲瀷" min-width="100" show-overflow-tooltip>
+                <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 label="璁¤垂鍛ㄦ湡" min-width="200" show-overflow-tooltip>
+                <template slot-scope="{row}">
+                    {{ row.startDate }} ~ {{ row.endDate }}
+                </template>
+            </el-table-column>
+            <el-table-column prop="planPayDate" :label="`搴�${billType === 0 ? '鏀�' : '浠�'}鏃ユ湡`" min-width="100" show-overflow-tooltip />
+            <el-table-column label="璐﹀崟鏉ユ簮" min-width="100" show-overflow-tooltip>
+                <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="鐭俊鍙戦�佺姸鎬�" min-width="100" fixed="right" show-overflow-tooltip>
+                <template slot-scope="{row}">
+                    <span v-if="row.status === 0">寮�鍚�</span>
+                    <span v-if="row.status === 1" style="color: red;">鍏抽棴</span>
+                </template>
+            </el-table-column>
+            <el-table-column label="閭欢鍙戦�佺姸鎬�" min-width="100" fixed="right" show-overflow-tooltip>
+                <template slot-scope="{row}">
+                    <span v-if="row.status === 0">寮�鍚�</span>
+                    <span v-if="row.status === 1" style="color: red;">鍏抽棴</span>
+                </template>
+            </el-table-column>
+            <el-table-column label="鎿嶄綔" min-width="120" fixed="right">
+                <template slot-scope="{row}">
+                    <el-button type="text" @click="handleDetail(row)" icon="el-icon-edit" v-permissions="['business:category:update']">鏌ョ湅璇︽儏</el-button>
+                </template>
+            </el-table-column>
+        </el-table>
+        <div class="mt20">
+            <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
+        </div>
+        <Edit ref="EditRef" @success="getList" />
+        <Detail ref="DetailRef" @success="getList" />
+        <BullEditFu ref="BullEditFu" @success="getList" />
+        <Call ref="call" @success="getList" />
+    </div>
+</template>
+
+<script>
+  import Pagination from '@/components/common/Pagination'
+  import QueryForm from '@/components/common/QueryForm'
+  import Edit from './components/bullEdit.vue'
+  import BullEditFu from './components/bullEditFu.vue'
+  import Detail from './components/bullDetail.vue'
+  import Call from './components/call.vue'
+  import { fetchList } from '@/api/bill'
+  export default {
+    components: {
+      Pagination,
+      QueryForm,
+      Edit,
+      Detail,
+      BullEditFu,
+      Call
+    },
+    data () {
+      return {
+        loading: false,
+        pagination: {
+          pageSize: 10,
+          page: 1,
+          total: 0
+        },
+        billType: 0,
+        filters: {
+          status: 0
+        },
+        list: [],
+        total: 0,
+        queryFormConfig: {
+          formItems: [
+            {
+              filed: 'customerName',
+              type: 'input',
+              label: '瀹㈡埛鍚嶇О'
+            },
+            {
+              filed: 'payStatus',
+              type: 'select',
+              label: '缁撴竻鐘舵��',
+              options: [
+                { value: 0, label: '寰呮敹娆�' },
+                { value: 1, label: '宸茬粨娓�' },
+                { value: 2, label: '閮ㄥ垎缁撴竻' },
+                { value: 3, label: '寰呬粯娆�' },
+                { value: 4, label: '寰呴��娆�' }
+              ]
+            },
+            {
+              filed: 'selDate',
+              type: 'daterange',
+              label: '搴旀敹/浠樻棩鏈�'
+            }
+          ]
+        }
+      }
+    },
+    created () {
+      this.getList()
+    },
+    methods: {
+      addOpen () {
+        if (this.billType === 0) {
+          this.$refs.EditRef.open('鍒涘缓鏀舵璐﹀崟')
+        } else {
+          this.$refs.BullEditFu.open('鍒涘缓浠樻璐﹀崟')
+        }
+      },
+      getList (page) {
+        const { pagination, filters } = this
+        let form = JSON.parse(JSON.stringify(filters))
+        if (form && form.selDate && form.selDate.length > 0) {
+          form.planPayDateStart = form.payDate[0]
+          form.planPayDateEnd = form.payDate[1]
+        }
+        this.loading = true
+        fetchList({
+          model: {
+            ...filters,
+            billType: this.billType
+          },
+          capacity: pagination.pageSize,
+          page: page || pagination.page
+        }).then(res => {
+          this.loading = false
+          this.list = res.records || []
+          this.list.forEach(item => {
+            item.statusName = item.status === 1 ? '鎹熷潖' : item.status === 2 ? '鎶ュ簾' : '姝e父'
+          })
+          this.pagination.total = res.total || 0
+        }, () => {
+          this.loading = false
+        })
+      },
+      tabsClick (val) {
+        this.billType = val
+        this.getList()
+      },
+      handleDetail (row) {
+        this.$refs.DetailRef.open('璐﹀崟璇︽儏', row.id)
+      },
+      clear () {
+        this.filters = {}
+        this.pagination.pageSize = 10
+        this.pagination.page = 1
+        this.getList()
+      },
+      handleSizeChange (capacity) {
+        this.pagination.pageSize = capacity
+        this.getList()
+      }
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+    @import '@/assets/style/variables.scss';
+    
+    .tabs {
+        display: flex;
+        margin-bottom: 20px;
+        justify-content: center;
+        
+        .tab {
+            height: 58px;
+            line-height: 58px;
+            font-size: 16px;
+            color: #666666;
+            margin: 0 30px;
+            cursor: pointer;
+        }
+        
+        .active {
+            font-weight: 500;
+            color: $primary-color;
+            border-bottom: 2px solid $primary-color;
+        }
+    }
+</style>
diff --git a/admin/src/views/project/components/houseDetails.vue b/admin/src/views/project/components/houseDetails.vue
new file mode 100644
index 0000000..5e61c5c
--- /dev/null
+++ b/admin/src/views/project/components/houseDetails.vue
@@ -0,0 +1,741 @@
+<template>
+    <GlobalWindow
+        title="妤煎畤璇︽儏"
+        :showConfirm="false"
+        :visible.sync="visible"
+        width="800px">
+        <div class="right">
+            <div class="right_head">椤圭洰鍚嶇О</div>
+            <div class="right_cate">
+                <el-tabs v-model="activeName" @tab-click="handleClick">
+                    <el-tab-pane label="鎴挎簮淇℃伅" name="houseinfo">
+                        <div class="xm">
+                            <el-card style="margin-top: 20px;">
+                                <div slot="header" class="clearfix">
+                                    <span>鎴挎簮淇℃伅</span>
+                                </div>
+                                <div class="xm_info">
+                                    <div class="xm_info_row" style="width: 25%;">
+                                        <span>鎵�灞為」鐩�</span>
+                                        <span>XXXXXXXXXX</span>
+                                    </div>
+                                    <div class="xm_info_row" style="width: 25%;">
+                                        <span>妤煎畤</span>
+                                        <span>缁煎悎妤�</span>
+                                    </div>
+                                    <div class="xm_info_row" style="width: 25%;">
+                                        <span>妤煎眰</span>
+                                        <span>1</span>
+                                    </div>
+                                    <div class="xm_info_row" style="width: 25%;">
+                                        <span>鎴垮彿</span>
+                                        <span>101娲诲姩瀹�</span>
+                                    </div>
+                                    <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
+                                        <span>鎴块棿缂栧彿</span>
+                                        <span>101</span>
+                                    </div>
+                                    <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
+                                        <span>鏄惁鎷涘晢</span>
+                                        <span>鍚�</span>
+                                    </div>
+                                    <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
+                                        <span>寤虹瓚闈㈢Н</span>
+                                        <span>50銕�</span>
+                                    </div>
+                                    <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
+                                        <span>璁$闈㈢Н</span>
+                                        <span>50銕�</span>
+                                    </div>
+                                    <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
+                                        <span>璁¤垂闈㈢Н</span>
+                                        <span>45銕�</span>
+                                    </div>
+                                </div>
+                            </el-card>
+                        </div>
+                    </el-tab-pane>
+                    <el-tab-pane label="绉熷鍚堝悓" name="project">
+                        <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>
+                                    <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="绛捐鏃�">
+                                        </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="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>
+                                    <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="鎿嶄綔">
+                                        </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">
+                        <div class="xm">
+                            <div class="xm_chat">
+                                <el-card class="xm_chat_row">
+                                    <div id="chat1"></div>
+                                </el-card>
+                                <el-card class="xm_chat_row">
+                                    <div id="chat2"></div>
+                                </el-card>
+                            </div>
+                            <el-card style="margin-top: 20px;">
+                                <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="鎿嶄綔">
+                                        </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="搴撳瓨鏁伴噺">
+                                        </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-tabs>
+            </div>
+        </div>
+    </GlobalWindow>
+</template>
+
+<script>
+  import BaseOpera from '@/components/base/BaseOpera'
+  import GlobalWindow from '@/components/common/GlobalWindow'
+  import * as echarts from 'echarts';
+  export default {
+    name: "houseDetails",
+    extends: BaseOpera,
+    components: { GlobalWindow },
+    data() {
+      return {
+        info: {},
+        activeName: 'houseinfo',
+        total: 0,
+        pageTotal: 10,
+        page: 1,
+        tableData: []
+      }
+    },
+    methods: {
+      open (title, target) {
+        this.title = title
+        this.visible = true
+        this.$nextTick(() => {
+          this.reand()
+          this.reand1()
+        })
+      },
+      reand() {
+        var chartDom = document.getElementById('chat1');
+        var myChart = echarts.init(chartDom);
+        var option;
+        option = {
+          tooltip: {
+            trigger: 'item'
+          },
+          legend: {
+            top: '5%',
+            left: 'center'
+          },
+          series: [
+            {
+              name: 'Access From',
+              type: 'pie',
+              radius: ['40%', '80%'],
+              avoidLabelOverlap: false,
+              label: {
+                show: false,
+                position: 'center'
+              },
+              emphasis: {
+                label: {
+                  show: true,
+                  fontSize: 40,
+                  fontWeight: 'bold'
+                }
+              },
+              labelLine: {
+                show: false
+              },
+              data: [
+                { value: 1048, name: '姝e父' },
+                { value: 735, name: '寮傚父' },
+                { value: 580, name: '鎶ュ簾' }
+              ]
+            }
+          ]
+        };
+        option && myChart.setOption(option);
+      },
+      reand1() {
+        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],
+          [220, 182, 191, 234, 290, 330, 310],
+          [150, 212, 201, 154, 190, 330, 410],
+          [820, 832, 901, 934, 1290, 1330, 1320]
+        ];
+        const totalData = [];
+        for (let i = 0; i < rawData[0].length; ++i) {
+          let sum = 0;
+          for (let j = 0; j < rawData.length; ++j) {
+            sum += rawData[j][i];
+          }
+          totalData.push(sum);
+        }
+        const grid = {
+          left: 100,
+          right: 100,
+          top: 50,
+          bottom: 50
+        };
+        const series = [
+          'Direct',
+          'Mail Ad',
+          'Affiliate Ad',
+          'Video Ad',
+          'Search Engine'
+        ].map((name, sid) => {
+          return {
+            name,
+            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]
+            )
+          };
+        });
+        option = {
+          legend: {
+            selectedMode: false
+          },
+          grid,
+          yAxis: {
+            type: 'value'
+          },
+          xAxis: {
+            type: 'category',
+            data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+          },
+          series
+        };
+
+        option && myChart.setOption(option);
+      },
+      handleClick(tab, event) {
+        console.log(tab, event);
+      },
+      handleCurrentChange(page) {
+        this.page = page
+      },
+      handleSizeChange(pageTotal) {
+        this.pageTotal = pageTotal
+      },
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+    .right {
+        width: 100%;
+        display: flex;
+        flex-direction: column;
+        .right_head {
+            width: 100%;
+            padding: 20px;
+            box-sizing: border-box;
+            font-size: 16px;
+            font-weight: bold;
+            color: black;
+            background: #ffffff;
+        }
+        .right_cate {
+            width: 100%;
+            padding: 0 20px 20px 20px;
+            box-sizing: border-box;
+            background: #ffffff;
+            .xm {
+                width: 100%;
+                display: flex;
+                flex-direction: column;
+                .xm_house {
+                    width: 100%;
+                    display: flex;
+                    flex-direction: column;
+                    align-items: self-end;
+                    .xm_house_list {
+                        width: 100%;
+                        display: flex;
+                        align-items: center;
+                        margin-top: 10px;
+                        .xm_house_list_left {
+                            flex-shrink: 0;
+                            width: 100px;
+                            display: flex;
+                            margin-right: 20px;
+                            flex-direction: column;
+                            .xm_house_list_left_row {
+                                width: 100px;
+                                height: 100px;
+                                background: rgba(242, 242, 242, 1);
+                                padding: 20px 0;
+                                box-sizing: border-box;
+                                margin-bottom: 20px;
+                                display: flex;
+                                align-items: center;
+                                flex-direction: column;
+                                justify-content: space-between;
+                                &:last-child {
+                                    margin-bottom: 0;
+                                }
+                                span {
+                                    &:nth-child(1) {
+                                        font-size: 18px;
+                                        color: #333333;
+                                        font-weight: 400;
+                                    }
+                                    &:nth-child(2) {
+                                        font-size: 12px;
+                                        color: #929292;
+                                    }
+                                }
+                            }
+                        }
+                        .xm_house_list_right {
+                            width: calc(100% - 130px);
+                            display: flex;
+                            flex-direction: column;
+                            .item {
+                                width: calc(100% - 130px);
+                                display: flex;
+                                align-items: center;
+                                margin-bottom: 20px;
+                                &:last-child {
+                                    margin-bottom: 0;
+                                }
+                                .xm_house_list_right_row {
+                                    height: 100px;
+                                    width: 300px;
+                                    background: rgba(198, 224, 167, 0.34509803921568627);
+                                    padding: 10px 0;
+                                    box-sizing: border-box;
+                                    display: flex;
+                                    align-items: center;
+                                    flex-direction: column;
+                                    justify-content: space-between;
+                                    span {
+                                        font-size: 14px;
+                                        color: #000000;
+                                    }
+                                    .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_tips {
+                        display: flex;
+                        align-items: center;
+                        .xm_house_tips_row {
+                            margin-left: 30px;
+                            display: flex;
+                            align-items: center;
+                            .xm_house_tips_row_d {
+                                width: 10px;
+                                height: 10px;
+                                background: orange;
+                                margin-right: 5px;
+                            }
+                            span {
+                                font-size: 16px;
+                                color: black;
+                            }
+                        }
+                    }
+                }
+                .xm_chat {
+                    width: 100%;
+                    display: flex;
+                    align-items: center;
+                    justify-content: space-between;
+                    .xm_chat_row {
+                        width: 49%;
+                        height: 300px;
+                        #chat1 {
+                            width: 100%;
+                            height: 260px;
+                        }
+                        #chat2 {
+                            width: 100%;
+                            height: 260px;
+                        }
+                    }
+                }
+                .xm_one {
+                    width: 100%;
+                    display: flex;
+                    align-items: center;
+                    justify-content: space-between;
+                    .xm_one_row {
+                        flex: 1;
+                        display: flex;
+                        flex-direction: column;
+                        span {
+                            font-size: 16px;
+                            color: black;
+                            &:nth-child(2) {
+                                font-weight: bold;
+                                margin: 15px 0;
+                            }
+                            &:nth-child(3) {
+                                color: #666666;
+                            }
+                        }
+                    }
+                }
+                .xm_one1 {
+                    width: 100%;
+                    display: flex;
+                    align-items: center;
+                    justify-content: space-between;
+                    .xm_one_row {
+                        flex: 1;
+                        display: flex;
+                        align-items: center;
+                        justify-content: center;
+                        flex-direction: column;
+                        span {
+                            font-size: 16px;
+                            color: black;
+                            &:nth-child(2) {
+                                font-size: 18px;
+                                font-weight: bold;
+                                margin-top: 15px;
+                            }
+                        }
+                    }
+                }
+                .xm_table {
+                    width: 100%;
+                    .xm_table_search {
+                        width: 100%;
+                        display: flex;
+                        align-items: center;
+                        justify-content: space-between;
+                        margin-bottom: 15px;
+                    }
+                    .xm_table_f {
+                        width: 100%;
+                        text-align: right;
+                    }
+                }
+                .xm_info {
+                    width: 100%;
+                    display: flex;
+                    flex-wrap: wrap;
+                    align-items: center;
+                    .xm_info_row {
+                        display: flex;
+                        flex-direction: column;
+                        span {
+                            font-size: 16px;
+                            &:nth-child(1) {
+                                color: #666666;
+                            }
+                            &:nth-child(2) {
+                                color: #000000;
+                                margin-top: 15px;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+</style>
diff --git a/admin/src/views/project/housingList.vue b/admin/src/views/project/housingList.vue
index 898b009..fabf9e7 100644
--- a/admin/src/views/project/housingList.vue
+++ b/admin/src/views/project/housingList.vue
@@ -52,8 +52,9 @@
           </template>
         </el-table-column>
         <el-table-column v-if="containPermissions(['business:ywroom:update', 'business:ywroom:delete'])" label="鎿嶄綔"
-          min-width="100" fixed="right">
+          min-width="140" fixed="right">
           <template slot-scope="{row}">
+            <el-button type="text" @click="$refs.houseDetails.open('鎴挎簮璇︽儏')">鏌ョ湅璇︽儏</el-button>
             <el-button type="text" @click="editClick(row)" icon="el-icon-edit"
               v-permissions="['business:ywroom:update']">缂栬緫</el-button>
             <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
@@ -66,6 +67,8 @@
     </template>
     <!-- 鏂板缓/淇敼 -->
     <OperaYwRoomWindow ref="operaYwRoomWindow" @success="handlePageChange" />
+    <!--  璇︽儏  -->
+    <houseDetails ref="houseDetails" />
   </TableLayout>
 </template>
 
@@ -74,12 +77,13 @@
 import TableLayout from '@/layouts/TableLayout'
 import Pagination from '@/components/common/Pagination'
 import OperaYwRoomWindow from './components/OperaYwRoomWindow'
+import houseDetails from './components/houseDetails'
 import { getProjectList } from '@/api/project/ywProject'
 import { getBuildList } from '@/api/project/ywBuilding'
 export default {
   name: 'YwRoom',
   extends: BaseTable,
-  components: { TableLayout, Pagination, OperaYwRoomWindow },
+  components: { TableLayout, Pagination, OperaYwRoomWindow, houseDetails },
   data() {
     return {
       // 鎼滅储
diff --git a/admin/src/views/roomStatus/index.vue b/admin/src/views/roomStatus/index.vue
new file mode 100644
index 0000000..bff1757
--- /dev/null
+++ b/admin/src/views/roomStatus/index.vue
@@ -0,0 +1,1101 @@
+<template>
+    <div class="box">
+        <div class="box_content">
+            <div class="left">
+                <el-input v-model="input" placeholder="璇疯緭鍏ュ唴瀹�"></el-input>
+                <div style="width: 100%; height: 20px;"></div>
+                <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
+            </div>
+            <div class="right">
+                <div class="right_head">椤圭洰鍚嶇О</div>
+                <div class="right_cate">
+                    <el-tabs v-model="activeName" @tab-click="handleClick">
+                        <el-tab-pane label="椤圭洰姒傚喌" name="first">
+                            <div class="xm">
+                                <el-card>
+                                    <div class="xm_one">
+                                        <div class="xm_one_row">
+                                            <span>鍦ㄧ鍚堝悓鏁�</span>
+                                            <span>4</span>
+                                            <span>鍦ㄧ鎴挎簮鏁帮細5</span>
+                                        </div>
+                                        <div class="xm_one_row">
+                                            <span>鍙嫑鍟嗛潰绉�</span>
+                                            <span>50000銕�</span>
+                                            <span>鍙嫑鍟嗘埧婧愭暟锛�15</span>
+                                        </div>
+                                        <div class="xm_one_row">
+                                            <span>鍦ㄧ瀹炴椂鍧囦环</span>
+                                            <span>145.75鍏�/m虏路澶�</span>
+                                            <span>鍦ㄧ闈㈢Н锛�900.00m虏</span>
+                                        </div>
+                                        <div class="xm_one_row">
+                                            <span>鍑虹鐜�</span>
+                                            <span>50.00%</span>
+                                            <span>寰呯闈㈢Н锛�700.00m虏</span>
+                                        </div>
+                                    </div>
+                                </el-card>
+                                <el-card style="margin-top: 20px;">
+                                    <div slot="header" class="clearfix">
+                                        <span>椤圭洰淇℃伅</span>
+                                    </div>
+                                    <div class="xm_info">
+                                        <div class="xm_info_row" style="width: 25%;">
+                                            <span>椤圭洰鍚嶇О</span>
+                                            <span>XXXXXXXXXX</span>
+                                        </div>
+                                        <div class="xm_info_row" style="width: 25%;">
+                                            <span>鎵�灞炲湴鍖�</span>
+                                            <span>瀹夊窘鐪�-鍚堣偉甯�-铚�灞卞尯</span>
+                                        </div>
+                                        <div class="xm_info_row" style="width: 50%;">
+                                            <span>璇︾粏鍦板潃</span>
+                                            <span>Lorem ipsum dolor sit amet, consectetur</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>
+                                        </div>
+                                    </div>
+                                </el-card>
+                                <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>
+                                        <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="houseinfo">
+                            <div class="xm">
+                                <el-card style="margin-top: 20px;">
+                                    <div slot="header" class="clearfix">
+                                        <span>鎴挎簮淇℃伅</span>
+                                    </div>
+                                    <div class="xm_info">
+                                        <div class="xm_info_row" style="width: 25%;">
+                                            <span>鎵�灞為」鐩�</span>
+                                            <span>XXXXXXXXXX</span>
+                                        </div>
+                                        <div class="xm_info_row" style="width: 25%;">
+                                            <span>妤煎畤</span>
+                                            <span>缁煎悎妤�</span>
+                                        </div>
+                                        <div class="xm_info_row" style="width: 25%;">
+                                            <span>妤煎眰</span>
+                                            <span>1</span>
+                                        </div>
+                                        <div class="xm_info_row" style="width: 25%;">
+                                            <span>鎴垮彿</span>
+                                            <span>101娲诲姩瀹�</span>
+                                        </div>
+                                        <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
+                                            <span>鎴块棿缂栧彿</span>
+                                            <span>101</span>
+                                        </div>
+                                        <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
+                                            <span>鏄惁鎷涘晢</span>
+                                            <span>鍚�</span>
+                                        </div>
+                                        <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
+                                            <span>寤虹瓚闈㈢Н</span>
+                                            <span>50銕�</span>
+                                        </div>
+                                        <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
+                                            <span>璁$闈㈢Н</span>
+                                            <span>50銕�</span>
+                                        </div>
+                                        <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
+                                            <span>璁¤垂闈㈢Н</span>
+                                            <span>45銕�</span>
+                                        </div>
+                                    </div>
+                                </el-card>
+                            </div>
+                        </el-tab-pane>
+                        <el-tab-pane label="绉熷鍚堝悓" name="project">
+                            <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>
+                                        <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="绛捐鏃�">
+                                            </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="louyu">
+                            <div class="xm">
+                                <el-card>
+                                    <div class="xm_one">
+                                        <div class="xm_one_row">
+                                            <span>鍦ㄧ鍚堝悓鏁�</span>
+                                            <span>4</span>
+                                            <span>鍦ㄧ鎴挎簮鏁帮細5</span>
+                                        </div>
+                                        <div class="xm_one_row">
+                                            <span>鍙嫑鍟嗛潰绉�</span>
+                                            <span>50000銕�</span>
+                                            <span>鍙嫑鍟嗘埧婧愭暟锛�15</span>
+                                        </div>
+                                        <div class="xm_one_row">
+                                            <span>鍦ㄧ瀹炴椂鍧囦环</span>
+                                            <span>145.75鍏�/m虏路澶�</span>
+                                            <span>鍦ㄧ闈㈢Н锛�900.00m虏</span>
+                                        </div>
+                                        <div class="xm_one_row">
+                                            <span>鍑虹鐜�</span>
+                                            <span>50.00%</span>
+                                            <span>寰呯闈㈢Н锛�700.00m虏</span>
+                                        </div>
+                                    </div>
+                                </el-card>
+                                <el-card style="margin-top: 20px;">
+                                    <div slot="header" class="clearfix">
+                                        <span>妤煎畤淇℃伅</span>
+                                    </div>
+                                    <div class="xm_info">
+                                        <div class="xm_info_row" style="width: 25%;">
+                                            <span>鎵�灞為」鐩�</span>
+                                            <span>闃滃畞鏂囦綋涓績</span>
+                                        </div>
+                                        <div class="xm_info_row" style="width: 25%;">
+                                            <span>妤煎畤鍚嶇О</span>
+                                            <span>A搴�</span>
+                                        </div>
+                                        <div class="xm_info_row" style="width: 25%;">
+                                            <span>妤煎畤缂栫爜</span>
+                                            <span>A-</span>
+                                        </div>
+                                        <div class="xm_info_row" style="width: 25%;">
+                                            <span>璇︾粏鍦板潃</span>
+                                            <span>闃滃畞鏂囦綋涓績瑗垮崡瑙�</span>
+                                        </div>
+                                        <div class="xm_info_row" style="width: 100%; margin-top: 15px;">
+                                            <span>璇︾粏鍦板潃</span>
+                                            <span>闃滃畞鏂囦綋涓績瑗垮崡瑙�</span>
+                                        </div>
+                                        <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
+                                            <span>寤虹瓚闈㈢Н</span>
+                                            <span>1000銕�</span>
+                                        </div>
+                                        <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
+                                            <span>璁$闈㈢Н</span>
+                                            <span>1000銕�</span>
+                                        </div>
+                                        <div class="xm_info_row" style="width: 50%; margin-top: 15px;">
+                                            <span>璁¤垂闈㈢Н</span>
+                                            <span>1000銕�</span>
+                                        </div>
+                                        <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
+                                            <span>鍦颁笂灞傛暟</span>
+                                            <span>5</span>
+                                        </div>
+                                        <div class="xm_info_row" style="width: 25%; margin-top: 15px;">
+                                            <span>鍦颁笅灞傛暟</span>
+                                            <span>2</span>
+                                        </div>
+                                    </div>
+                                </el-card>
+                                <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>
+                                        <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>
+                                        <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="鎿嶄綔">
+                                            </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">
+                            <div class="xm">
+                                <div class="xm_chat">
+                                    <el-card class="xm_chat_row">
+                                        <div id="chat1"></div>
+                                    </el-card>
+                                    <el-card class="xm_chat_row">
+                                        <div id="chat2"></div>
+                                    </el-card>
+                                </div>
+                                <el-card style="margin-top: 20px;">
+                                    <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="鎿嶄綔">
+                                            </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="搴撳瓨鏁伴噺">
+                                            </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-tabs>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+  import * as echarts from 'echarts';
+  export default {
+    name: 'index',
+    data() {
+      return {
+        input: '',
+        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'
+        },
+        activeName: 'first',
+        total: 0,
+        pageTotal: 10,
+        page: 1,
+        options: [{
+          value: '閫夐」1',
+          label: '榛勯噾绯�'
+        }, {
+          value: '閫夐」2',
+          label: '鍙岀毊濂�'
+        }, {
+          value: '閫夐」3',
+          label: '铓典粩鐓�'
+        }, {
+          value: '閫夐」4',
+          label: '榫欓』闈�'
+        }, {
+          value: '閫夐」5',
+          label: '鍖椾含鐑ら腑'
+        }],
+        value: ''
+      }
+    },
+    created () {
+      this.$nextTick(() => {
+        this.reand()
+        this.reand1()
+      })
+    },
+    methods: {
+      reand() {
+        var chartDom = document.getElementById('chat1');
+        var myChart = echarts.init(chartDom);
+        var option;
+        option = {
+          tooltip: {
+            trigger: 'item'
+          },
+          legend: {
+            top: '5%',
+            left: 'center'
+          },
+          series: [
+            {
+              name: 'Access From',
+              type: 'pie',
+              radius: ['40%', '80%'],
+              avoidLabelOverlap: false,
+              label: {
+                show: false,
+                position: 'center'
+              },
+              emphasis: {
+                label: {
+                  show: true,
+                  fontSize: 40,
+                  fontWeight: 'bold'
+                }
+              },
+              labelLine: {
+                show: false
+              },
+              data: [
+                { value: 1048, name: '姝e父' },
+                { value: 735, name: '寮傚父' },
+                { value: 580, name: '鎶ュ簾' }
+              ]
+            }
+          ]
+        };
+        option && myChart.setOption(option);
+      },
+      reand1() {
+        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],
+          [220, 182, 191, 234, 290, 330, 310],
+          [150, 212, 201, 154, 190, 330, 410],
+          [820, 832, 901, 934, 1290, 1330, 1320]
+        ];
+        const totalData = [];
+        for (let i = 0; i < rawData[0].length; ++i) {
+          let sum = 0;
+          for (let j = 0; j < rawData.length; ++j) {
+            sum += rawData[j][i];
+          }
+          totalData.push(sum);
+        }
+        const grid = {
+          left: 100,
+          right: 100,
+          top: 50,
+          bottom: 50
+        };
+        const series = [
+          'Direct',
+          'Mail Ad',
+          'Affiliate Ad',
+          'Video Ad',
+          'Search Engine'
+        ].map((name, sid) => {
+          return {
+            name,
+            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]
+            )
+          };
+        });
+        option = {
+          legend: {
+            selectedMode: false
+          },
+          grid,
+          yAxis: {
+            type: 'value'
+          },
+          xAxis: {
+            type: 'category',
+            data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+          },
+          series
+        };
+
+        option && myChart.setOption(option);
+      },
+      handleCurrentChange(page) {
+        this.page = page
+      },
+      handleSizeChange(pageTotal) {
+        this.pageTotal = pageTotal
+      },
+      handleNodeClick(data) {
+        console.log(data);
+      },
+      handleClick(tab, event) {
+        console.log(tab, event);
+      }
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+    .box {
+        width: 100%;
+        height: 100%;
+        padding: 16px;
+        box-sizing: border-box;
+        .box_content {
+            width: 100%;
+            display: flex;
+            align-items: start;
+            justify-content: space-between;
+            .left {
+                width: 300px;
+                padding: 20px;
+                box-sizing: border-box;
+                flex-shrink: 0;
+                margin-right: 20px;
+                display: flex;
+                flex-direction: column;
+                background: #ffffff;
+            }
+            .right {
+                flex: 1;
+                display: flex;
+                flex-direction: column;
+                .right_head {
+                    width: 100%;
+                    padding: 20px;
+                    box-sizing: border-box;
+                    font-size: 16px;
+                    font-weight: bold;
+                    color: black;
+                    background: #ffffff;
+                }
+                .right_cate {
+                    width: 100%;
+                    padding: 0 20px 20px 20px;
+                    box-sizing: border-box;
+                    background: #ffffff;
+                    .xm {
+                        width: 100%;
+                        display: flex;
+                        flex-direction: column;
+                        .xm_house {
+                            width: 100%;
+                            display: flex;
+                            flex-direction: column;
+                            align-items: self-end;
+                            .xm_house_list {
+                                width: 100%;
+                                display: flex;
+                                align-items: center;
+                                margin-top: 10px;
+                                .xm_house_list_left {
+                                    flex-shrink: 0;
+                                    width: 100px;
+                                    display: flex;
+                                    margin-right: 20px;
+                                    flex-direction: column;
+                                    .xm_house_list_left_row {
+                                        width: 100px;
+                                        height: 100px;
+                                        background: rgba(242, 242, 242, 1);
+                                        padding: 20px 0;
+                                        box-sizing: border-box;
+                                        margin-bottom: 20px;
+                                        display: flex;
+                                        align-items: center;
+                                        flex-direction: column;
+                                        justify-content: space-between;
+                                        &:last-child {
+                                            margin-bottom: 0;
+                                        }
+                                        span {
+                                            &:nth-child(1) {
+                                                font-size: 18px;
+                                                color: #333333;
+                                                font-weight: 400;
+                                            }
+                                            &:nth-child(2) {
+                                                font-size: 12px;
+                                                color: #929292;
+                                            }
+                                        }
+                                    }
+                                }
+                                .xm_house_list_right {
+                                    width: calc(100% - 130px);
+                                    display: flex;
+                                    flex-direction: column;
+                                    .item {
+                                        width: calc(100% - 130px);
+                                        display: flex;
+                                        align-items: center;
+                                        margin-bottom: 20px;
+                                        &:last-child {
+                                            margin-bottom: 0;
+                                        }
+                                        .xm_house_list_right_row {
+                                            height: 100px;
+                                            width: 300px;
+                                            background: rgba(198, 224, 167, 0.34509803921568627);
+                                            padding: 10px 0;
+                                            box-sizing: border-box;
+                                            display: flex;
+                                            align-items: center;
+                                            flex-direction: column;
+                                            justify-content: space-between;
+                                            span {
+                                                font-size: 14px;
+                                                color: #000000;
+                                            }
+                                            .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_tips {
+                                display: flex;
+                                align-items: center;
+                                .xm_house_tips_row {
+                                    margin-left: 30px;
+                                    display: flex;
+                                    align-items: center;
+                                    .xm_house_tips_row_d {
+                                        width: 10px;
+                                        height: 10px;
+                                        background: orange;
+                                        margin-right: 5px;
+                                    }
+                                    span {
+                                        font-size: 16px;
+                                        color: black;
+                                    }
+                                }
+                            }
+                        }
+                        .xm_chat {
+                            width: 100%;
+                            display: flex;
+                            align-items: center;
+                            justify-content: space-between;
+                            .xm_chat_row {
+                                width: 49%;
+                                height: 300px;
+                                #chat1 {
+                                    width: 100%;
+                                    height: 260px;
+                                }
+                                #chat2 {
+                                    width: 100%;
+                                    height: 260px;
+                                }
+                            }
+                        }
+                        .xm_one {
+                            width: 100%;
+                            display: flex;
+                            align-items: center;
+                            justify-content: space-between;
+                            .xm_one_row {
+                                flex: 1;
+                                display: flex;
+                                flex-direction: column;
+                                span {
+                                    font-size: 16px;
+                                    color: black;
+                                    &:nth-child(2) {
+                                        font-weight: bold;
+                                        margin: 15px 0;
+                                    }
+                                    &:nth-child(3) {
+                                        color: #666666;
+                                    }
+                                }
+                            }
+                        }
+                        .xm_one1 {
+                            width: 100%;
+                            display: flex;
+                            align-items: center;
+                            justify-content: space-between;
+                            .xm_one_row {
+                                flex: 1;
+                                display: flex;
+                                align-items: center;
+                                justify-content: center;
+                                flex-direction: column;
+                                span {
+                                    font-size: 16px;
+                                    color: black;
+                                    &:nth-child(2) {
+                                        font-size: 18px;
+                                        font-weight: bold;
+                                        margin-top: 15px;
+                                    }
+                                }
+                            }
+                        }
+                        .xm_table {
+                            width: 100%;
+                            .xm_table_search {
+                                width: 100%;
+                                display: flex;
+                                align-items: center;
+                                justify-content: space-between;
+                                margin-bottom: 15px;
+                            }
+                            .xm_table_f {
+                                width: 100%;
+                                text-align: right;
+                            }
+                        }
+                        .xm_info {
+                            width: 100%;
+                            display: flex;
+                            flex-wrap: wrap;
+                            align-items: center;
+                            .xm_info_row {
+                                display: flex;
+                                flex-direction: column;
+                                span {
+                                    font-size: 16px;
+                                    &:nth-child(1) {
+                                        color: #666666;
+                                    }
+                                    &:nth-child(2) {
+                                        color: #000000;
+                                        margin-top: 15px;
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+</style>
diff --git a/admin/src/views/workorder/components/handleProblem.vue b/admin/src/views/workorder/components/handleProblem.vue
new file mode 100644
index 0000000..47a1896
--- /dev/null
+++ b/admin/src/views/workorder/components/handleProblem.vue
@@ -0,0 +1,184 @@
+<template>
+    <GlobalWindow
+        title="闂涓婃姤"
+        :showConfirm="false"
+        :visible.sync="visible"
+        width="100%">
+        <div class="wt">
+            <div class="wt_head">
+                <div class="wt_head_title">
+                    闂璇︽儏
+                    <el-tag style="margin-left: 10px;">杞伐鍗�</el-tag>
+                </div>
+                <el-button>鏌ョ湅宸ュ崟</el-button>
+            </div>
+            <div class="wt_content">
+                <div class="wt_content_row" style="width: 25%;">
+                    浣嶇疆锛�-
+                </div>
+                <div class="wt_content_row" style="width: 25%;">
+                    涓婃姤浜猴細寮犱笁涓�
+                </div>
+                <div class="wt_content_row" style="width: 50%;">
+                    涓婃姤浜虹數璇濓細180553847234
+                </div>
+                <div class="wt_content_row" style="width: 100%; margin-top: 15px;">
+                    涓婃姤鏃堕棿锛�2024-11-21 12:00:23
+                </div>
+                <div class="wt_content_row" style="width: 100%; margin-top: 15px;">
+                    闂鎻忚堪锛氳繖鏄棶棰樻弿杩拌繖鏄棶棰樻弿杩拌繖鏄棶棰樻弿杩拌繖鏄棶棰樻弿杩拌繖鏄棶棰樻弿杩拌繖鏄棶棰樻弿杩拌繖鏄棶棰樻弿杩拌繖鏄棶棰樻弿杩�
+                </div>
+                <div class="wt_content_row" style="width: 100%; margin-top: 15px;">
+                    <div class="wt_content_row_label">闂鍥剧墖锛�</div>
+                    <div class="wt_content_row_list">
+                        <div class="wt_content_row_list_img">
+                            <img src="" alt="" />
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <el-form :model="form" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
+                <el-form-item label="澶勭悊鏂瑰紡" prop="resource">
+                    <el-radio-group v-model="form.resource">
+                        <el-radio :label="0">杞伐鍗�</el-radio>
+                        <el-radio :label="1">鍏抽棴闂</el-radio>
+                    </el-radio-group>
+                </el-form-item>
+                <div style="display: flex; align-items: center;">
+                    <el-form-item label="浣嶇疆绫诲瀷" prop="region">
+                        <el-select v-model="form.resource" placeholder="璇烽�夋嫨浣嶇疆绫诲瀷">
+                            <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
+                            <el-option label="鍖哄煙浜�" value="beijing"></el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="鎶ヤ慨鍖哄煙" prop="resource">
+                        <el-select v-model="form.resource" placeholder="璇烽�夋嫨鎶ヤ慨鍖哄煙">
+                            <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
+                            <el-option label="鍖哄煙浜�" value="beijing"></el-option>
+                        </el-select>
+                    </el-form-item>
+                </div>
+                <div style="display: flex; align-items: center;">
+                    <el-form-item label="宸ュ崟鍒嗙被" prop="resource">
+                        <el-select v-model="form.resource" placeholder="璇烽�夋嫨宸ュ崟鍒嗙被">
+                            <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
+                            <el-option label="鍖哄煙浜�" value="beijing"></el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="涓婇棬鏃堕棿" prop="resource">
+                        <el-date-picker v-model="form.resource" type="date" placeholder="閫夋嫨涓婇棬鏃堕棿"></el-date-picker>
+                    </el-form-item>
+                </div>
+                <el-form-item label="鎻忚堪" prop="resource">
+                    <el-input
+                        type="textarea"
+                        :rows="5"
+                        placeholder="璇疯緭鍏ユ弿杩�"
+                        v-model="form.resource">
+                    </el-input>
+                </el-form-item>
+                <el-form-item label="闂鍥剧墖" prop="resource">
+                    <el-upload
+                        action="https://jsonplaceholder.typicode.com/posts/"
+                        list-type="picture-card">
+                        <i class="el-icon-plus"></i>
+                    </el-upload>
+                </el-form-item>
+                <el-form-item label="鍏抽棴闂" prop="resource">
+                    <el-input
+                        type="textarea"
+                        :rows="5"
+                        placeholder="璇疯緭鍏ュ叧闂棶棰�"
+                        v-model="form.resource">
+                    </el-input>
+                </el-form-item>
+            </el-form>
+        </div>
+    </GlobalWindow>
+</template>
+
+<script>
+  import BaseOpera from '@/components/base/BaseOpera'
+  import GlobalWindow from '@/components/common/GlobalWindow'
+  export default {
+    name: "handleProblem",
+    extends: BaseOpera,
+    components: { GlobalWindow },
+    data() {
+      return {
+        info: {},
+        form: {
+          resource: 0
+        },
+        rules: {
+          resource: [
+            { required: true, message: '璇烽�夋嫨', trigger: 'change' }
+          ]
+        }
+      }
+    },
+    methods: {
+
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+    .wt {
+        width: 100%;
+        display: flex;
+        flex-direction: column;
+        .wt_head {
+            width: 100%;
+            padding: 20px 0;
+            box-sizing: border-box;
+            display: flex;
+            align-items: center;
+            justify-content: space-between;
+            .wt_head_title {
+                display: flex;
+                align-items: center;
+                font-size: 16px;
+                color: black;
+                margin-right: 10px;
+            }
+        }
+        .wt_content {
+            width: 100%;
+            display: flex;
+            align-items: center;
+            flex-wrap: wrap;
+            .wt_content_row {
+                font-size: 14px;
+                color: rgb(51, 51, 51);
+                display: flex;
+                align-items: self-start;
+                .wt_content_row_label {
+                    flex-shrink: 0;
+                    font-size: 14px;
+                    color: rgb(51, 51, 51);
+                }
+                .wt_content_row_list {
+                    flex: 1;
+                    display: flex;
+                    align-items: center;
+                    .wt_content_row_list_img {
+                        width: 106px;
+                        height: 93px;
+                        display: flex;
+                        align-items: center;
+                        justify-content: center;
+                        overflow-x: hidden;
+                        margin-right: 15px;
+                        &:last-child {
+                            margin: 0 !important;
+                        }
+                        img {
+                            width: 100%;
+                        }
+                    }
+                }
+            }
+        }
+    }
+</style>
diff --git a/admin/src/views/workorder/components/problemReportingDetails.vue b/admin/src/views/workorder/components/problemReportingDetails.vue
new file mode 100644
index 0000000..213c8d9
--- /dev/null
+++ b/admin/src/views/workorder/components/problemReportingDetails.vue
@@ -0,0 +1,139 @@
+<template>
+    <GlobalWindow
+        title="闂涓婃姤璇︽儏"
+        :showConfirm="false"
+        :visible.sync="visible"
+        width="100%">
+        <div class="wt">
+            <div class="wt_head">
+                <div class="wt_head_title">
+                    闂璇︽儏
+                    <el-tag style="margin-left: 10px;">杞伐鍗�</el-tag>
+                </div>
+                <el-button>鏌ョ湅宸ュ崟</el-button>
+            </div>
+            <div class="wt_content">
+                <div class="wt_content_row" style="width: 25%;">
+                    浣嶇疆锛�-
+                </div>
+                <div class="wt_content_row" style="width: 25%;">
+                    涓婃姤浜猴細寮犱笁涓�
+                </div>
+                <div class="wt_content_row" style="width: 50%;">
+                    涓婃姤浜虹數璇濓細180553847234
+                </div>
+                <div class="wt_content_row" style="width: 100%; margin-top: 15px;">
+                    涓婃姤鏃堕棿锛�2024-11-21 12:00:23
+                </div>
+                <div class="wt_content_row" style="width: 100%; margin-top: 15px;">
+                    闂鎻忚堪锛氳繖鏄棶棰樻弿杩拌繖鏄棶棰樻弿杩拌繖鏄棶棰樻弿杩拌繖鏄棶棰樻弿杩拌繖鏄棶棰樻弿杩拌繖鏄棶棰樻弿杩拌繖鏄棶棰樻弿杩拌繖鏄棶棰樻弿杩�
+                </div>
+                <div class="wt_content_row" style="width: 100%; margin-top: 15px;">
+                    <div class="wt_content_row_label">闂鍥剧墖锛�</div>
+                    <div class="wt_content_row_list">
+                        <div class="wt_content_row_list_img">
+                            <img src="" alt="" />
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="wt_head">
+                <div class="wt_head_title">
+                    澶勭悊缁撴灉
+                </div>
+            </div>
+            <div class="wt_content">
+                <div class="wt_content_row" style="width: 100%;">
+                    澶勭悊浜猴細寮犱笁-琛屾斂閮�
+                </div>
+                <div class="wt_content_row" style="width: 100%; margin-top: 15px;">
+                    澶勭悊鏃堕棿锛�2024-11-21 12:00:23
+                </div>
+                <div class="wt_content_row" style="width: 100%; margin-top: 15px;">
+                    澶勭悊缁撴灉锛氳浆宸ュ崟
+                </div>
+                <div class="wt_content_row" style="width: 100%; margin-top: 15px;">
+                    鍏抽棴璇存槑锛氳鏄庤鏄庤鏄庤鏄庤鏄庤鏄庤鏄庤鏄庤鏄庤鏄庤鏄庤鏄庤鏄庤鏄庤鏄庤鏄庤鏄�
+                </div>
+            </div>
+        </div>
+    </GlobalWindow>
+</template>
+
+<script>
+  import BaseOpera from '@/components/base/BaseOpera'
+  import GlobalWindow from '@/components/common/GlobalWindow'
+  export default {
+    name: "problemReportingDetails",
+    extends: BaseOpera,
+    components: { GlobalWindow },
+    data() {
+      return {
+        info: {}
+      }
+    },
+    methods: {
+    
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+    .wt {
+        width: 100%;
+        display: flex;
+        flex-direction: column;
+        .wt_head {
+            width: 100%;
+            padding: 20px 0;
+            box-sizing: border-box;
+            display: flex;
+            align-items: center;
+            justify-content: space-between;
+            .wt_head_title {
+                display: flex;
+                align-items: center;
+                font-size: 16px;
+                color: black;
+                margin-right: 10px;
+            }
+        }
+        .wt_content {
+            width: 100%;
+            display: flex;
+            align-items: center;
+            flex-wrap: wrap;
+            .wt_content_row {
+                font-size: 14px;
+                color: rgb(51, 51, 51);
+                display: flex;
+                align-items: self-start;
+                .wt_content_row_label {
+                    flex-shrink: 0;
+                    font-size: 14px;
+                    color: rgb(51, 51, 51);
+                }
+                .wt_content_row_list {
+                    flex: 1;
+                    display: flex;
+                    align-items: center;
+                    .wt_content_row_list_img {
+                        width: 106px;
+                        height: 93px;
+                        display: flex;
+                        align-items: center;
+                        justify-content: center;
+                        overflow-x: hidden;
+                        margin-right: 15px;
+                        &:last-child {
+                            margin: 0 !important;
+                        }
+                        img {
+                            width: 100%;
+                        }
+                    }
+                }
+            }
+        }
+    }
+</style>
diff --git a/admin/src/views/workorder/problemReporting.vue b/admin/src/views/workorder/problemReporting.vue
new file mode 100644
index 0000000..98a65ed
--- /dev/null
+++ b/admin/src/views/workorder/problemReporting.vue
@@ -0,0 +1,105 @@
+<template>
+    <TableLayout :permissions="['business:ywworkorder:query']">
+        <!-- 鎼滅储琛ㄥ崟 -->
+        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+            <el-form-item label="鎻忚堪" prop="roomNum">
+                <el-input v-model="searchForm.roomNum" placeholder="璇疯緭鍏ユ弿杩�" @keypress.enter.native="search"></el-input>
+            </el-form-item>
+            <el-form-item prop="areaType" label="澶勭悊鐘舵��">
+                <el-select v-model="searchForm.areaType">
+                    <el-option label="鏈鐞�" value="0"></el-option>
+                    <el-option label="鐢熸垚宸ュ崟" value="1"></el-option>
+                    <el-option label="鍏抽棴淇濅慨" value="1"></el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item label="涓婃姤鏃堕棿">
+                <el-date-picker
+                    v-model="searchForm.selDate"
+                    @change="changeSelDate"
+                    format="yyyy-MM-dd"
+                    value-format="yyyy-MM-dd"
+                    type="daterange"></el-date-picker>
+            </el-form-item>
+            <section>
+                <el-button type="primary" @click="search">鎼滅储</el-button>
+                <el-button @click="reset">閲嶇疆</el-button>
+            </section>
+        </el-form>
+        <!-- 琛ㄦ牸鍜屽垎椤� -->
+        <template v-slot:table-wrap>
+            <el-table v-loading="isWorking.search" :data="tableData.list" stripe>
+                <el-table-column prop="areaType" label="鎻忚堪" min-width="70px"></el-table-column>
+                <el-table-column prop="areaType" label="浣嶇疆" min-width="100px"></el-table-column>
+                <el-table-column prop="categoryName" label="鐜板満鍥剧墖" min-width="100px"></el-table-column>
+                <el-table-column prop="creatorName" label="涓婃姤浜�" min-width="80px"></el-table-column>
+                <el-table-column prop="createDate" label="涓婃姤浜虹數璇�" min-width="100px"></el-table-column>
+                <el-table-column prop="dealUserName" label="涓婃姤鏃堕棿" min-width="80px"></el-table-column>
+                <el-table-column label="澶勭悊鐘舵��" min-width="70px">
+                    <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 prop="creatorName" label="澶勭悊浜�" min-width="80px"></el-table-column>
+                <el-table-column
+                    v-if="containPermissions(['business:ywworkorder:update'])"
+                    label="鎿嶄綔"
+                    width="130"
+                    fixed="right">
+                    <template slot-scope="{row}">
+                        <el-button type="text" @click="$refs.handleProblem.open()">澶勭悊</el-button>
+                        <el-button type="text" @click="$refs.problemReportingDetails.open()">鏌ョ湅璇︽儏</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
+            </pagination>
+        </template>
+        <!--    璇︽儏    -->
+        <problemReportingDetails ref="problemReportingDetails" />
+        <!--    澶勭悊    -->
+        <handleProblem ref="handleProblem" @success="handlePageChange" />
+    </TableLayout>
+</template>
+
+<script>
+  import BaseTable from '@/components/base/BaseTable'
+  import TableLayout from '@/layouts/TableLayout'
+  import Pagination from '@/components/common/Pagination'
+  import problemReportingDetails from './components/problemReportingDetails'
+  import handleProblem from './components/handleProblem'
+  export default {
+    name: 'problemReporting',
+    extends: BaseTable,
+    components: { TableLayout, Pagination, problemReportingDetails, handleProblem },
+    data() {
+      return {
+        // 鎼滅储
+        showDetail: false,
+        searchForm: {
+          selDate: [],
+          areaIds: '',
+          projectId: '',
+          buildingId: '',
+          cateId: '',
+        },
+        projectList: [],
+        buildList: [],
+        cateList: [],
+      }
+    },
+    created() {
+      this.config({
+        module: '杩愮淮宸ュ崟淇℃伅琛�',
+        api: '/workorder/ywWorkorder',
+        'field.id': 'id',
+        'field.main': 'id'
+      })
+      this.search()
+    },
+    methods: {
+    
+    }
+  }
+</script>

--
Gitblit v1.9.3