From 13447b1e4860445629b1a906a86da3a24f4af3c5 Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Tue, 07 Nov 2023 18:05:15 +0800
Subject: [PATCH] merge

---
 pages.json                                 |   31 
 subPackage/bs/views/rentDetail.vue         |   16 
 subPackage/house/member/index.vue          |   32 
 subPackage/house/houseNumber/index.vue     |  330 +++++++++---
 subPackage/bs/components/list/rentList.vue |   12 
 api/label/categoryLabel.js                 |   10 
 subPackage/workbench/views/rental.vue      |  423 ++++++++++------
 subPackage/house/roomDetails/index.vue     |  266 +++++-----
 pages/home/index.vue                       |    4 
 api/place/place.js                         |    8 
 subPackage/house/houseNumber/lineItem.vue  |   71 ++
 subPackage/workbench/views/cscj.vue        |    6 
 subPackage/workbench/views/csjl.vue        |  133 +++-
 common/setting.js                          |    7 
 subPackage/house/family/index.vue          |    2 
 api/houseRental/houseRental.js             |  123 +++-
 16 files changed, 957 insertions(+), 517 deletions(-)

diff --git a/api/houseRental/houseRental.js b/api/houseRental/houseRental.js
index b321994..0648ab2 100644
--- a/api/houseRental/houseRental.js
+++ b/api/houseRental/houseRental.js
@@ -1,47 +1,78 @@
-import http from '@/http/api.js'
-
-
-// 添加租赁信息
-export const addHouseRental = (data) => {
-	return http.request({
-		url: 'blade-houseRental/houseRental/add',
-		method: 'POST',
-		data
-	})
-}
-
-//删除
-export const deleteRentalInfo = (id) => {
-	return http.request({
-		url: 'blade-houseRental/houseRental/removeHouseRental',
-		method: 'POST',
-		params: {
-			id
-		}
-	})
-}
-
-// 续租
-export const updateDueTime = (data) => {
-	return http.request({
-		url: 'blade-houseRental/houseRental/update',
-		method: 'POST',
-		custom: {
-			'Authorization': true
-		},
-		data
-	})
-}
-
-// 修改数据
-// 续租
-export const updateRetalInfo = (data) => {
-	return http.request({
-		url: 'blade-houseRental/houseRental/updateHouseRental',
-		method: 'POST',
-		custom: {
-			'Authorization': true
-		},
-		data
-	})
+import http from '@/http/api.js'
+
+
+// 添加租赁信息
+export const addHouseRental = (data) => {
+	return http.request({
+		url: 'blade-houseRental/houseRental/add',
+		method: 'POST',
+		data
+	})
+}
+
+//删除
+export const deleteRentalInfo = (id) => {
+	return http.request({
+		url: 'blade-houseRental/houseRental/removeHouseRental',
+		method: 'POST',
+		params: {
+			id
+		}
+	})
+}
+
+// 续租
+export const updateDueTime = (data) => {
+	return http.request({
+		url: 'blade-houseRental/houseRental/update',
+		method: 'POST',
+		custom: {
+			'Authorization': true
+		},
+		data
+	})
+}
+
+// 修改数据
+// 续租
+export const updateRetalInfo = (data) => {
+	return http.request({
+		url: 'blade-houseRental/houseRental/updateHouseRental',
+		method: 'POST',
+		custom: {
+			'Authorization': true
+		},
+		data
+	})
+}
+
+//获取统计数据
+export const getStatistics = (params) => {
+	return http.request({
+		url: 'blade-houseRental/houseRental/getStatistics',
+		method: 'GET',
+		params: {
+			...params
+		}
+	})
+}
+
+//获取统计数据
+export const getPage = (params) => {
+	return http.request({
+		url: 'blade-houseRental/houseRental/page',
+		method: 'GET',
+		params: {
+			...params
+		},
+	})
+}
+
+// 出租房管理
+export const getRentalHouseContent = (params) => {
+	return http.request({
+		url: 'blade-houseRental/houseRental/page',
+		method: 'GET',
+		params
+	})
 }
\ No newline at end of file
diff --git a/api/label/categoryLabel.js b/api/label/categoryLabel.js
new file mode 100644
index 0000000..199a63c
--- /dev/null
+++ b/api/label/categoryLabel.js
@@ -0,0 +1,10 @@
+import http from '@/http/api.js'
+
+//保存
+export const getLabelList = (params) => {
+	return http.request({
+		url: 'blade-categoryLabel/categoryLabel/list',
+		method: 'GET',
+		params
+	})
+}
\ No newline at end of file
diff --git a/api/place/place.js b/api/place/place.js
index 27ec08c..a19803b 100644
--- a/api/place/place.js
+++ b/api/place/place.js
@@ -6,4 +6,12 @@
 		method: 'POST',
 		data: data
 	})
+}
+
+export const getLocationRecord = (params) => {
+	return http.request({
+		url: 'blade-place/place/page',
+		method: 'GET',
+		params
+	})
 }
\ No newline at end of file
diff --git a/common/setting.js b/common/setting.js
index 9f9bed3..80a7918 100644
--- a/common/setting.js
+++ b/common/setting.js
@@ -11,8 +11,9 @@
 	// 开发环境接口Url
 	// devUrl: 'https://sk.hubeishuiyi.cn',
 	// devUrl: 'http://192.168.1.156:9528',
-	devUrl:'http://192.168.1.50:9528',
-	minioBaseUrl:"http://60.220.177.113:9000/jczz/",
+	// devUrl:'http://192.168.1.50:9528',
+	devUrl: 'http://192.168.1.133:9528',
+	minioBaseUrl: "http://60.220.177.113:9000/jczz/",
 	// 数据中台接口url
 	// dataCenterUrl: 'http://10.10.2.192/services',
 	dataCenterUrl: 'https://sk.hubeishuiyi.cn/services',
@@ -35,4 +36,4 @@
 	// token过期时间(秒)
 	// 30天 30*24*60*60
 	tokenTime: 2592000,
-}
\ No newline at end of file
+}
diff --git a/pages.json b/pages.json
index 51aedf2..579d531 100644
--- a/pages.json
+++ b/pages.json
@@ -70,8 +70,7 @@
 		//公告
 		{
 			"root": "subPackage/notice",
-			"pages": [
-				{
+			"pages": [{
 					"path": "list",
 					"style": {
 						"navigationBarTitleText": "公告",
@@ -89,25 +88,23 @@
 						"navigationBarTextStyle": "black"
 					}
 				}
-				
+
 			]
 		},
 		//便民热线
 		{
 			"root": "subPackage/hotLine",
-			"pages": [
-				{
-					"path": "index",
-					"style": {
-						"navigationBarTitleText": "便民热线",
-						"enablePullDownRefresh": false,
-						"navigationBarBackgroundColor": "#fff",
-						"navigationBarTextStyle": "black"
-					}
+			"pages": [{
+				"path": "index",
+				"style": {
+					"navigationBarTitleText": "便民热线",
+					"enablePullDownRefresh": false,
+					"navigationBarBackgroundColor": "#fff",
+					"navigationBarTextStyle": "black"
 				}
-			]
+			}]
 		},
-		
+
 		//标签
 		{
 			"root": "subPackage/label",
@@ -149,7 +146,6 @@
 				}
 			]
 		},
-		
 		//工作台
 		{
 			"root": "subPackage/workbench",
@@ -165,6 +161,7 @@
 				{
 					"path": "views/csjl",
 					"style": {
+						"onReachBottomDistance": 10,
 						"navigationBarTitleText": "场所记录",
 						"enablePullDownRefresh": false,
 						"navigationBarBackgroundColor": "#fff",
@@ -181,7 +178,7 @@
 					}
 				},
 				{
-					"path":"views/audit",
+					"path": "views/audit",
 					"style": {
 						"navigationBarTitleText": "网格任务审核",
 						"enablePullDownRefresh": false,
@@ -364,4 +361,4 @@
 			}
 		]
 	}
-}
+}
\ No newline at end of file
diff --git a/pages/home/index.vue b/pages/home/index.vue
index 1553d8e..d897037 100644
--- a/pages/home/index.vue
+++ b/pages/home/index.vue
@@ -155,7 +155,7 @@
 					</view>
 				</view>
 			</view>
-			<u-picker :title="roleTypeName" :show="selectBoxShow" keyName="name" ref="uPicker" :columns="siteColumns"
+			<u-picker :title="roleTypeName" :closeOnClickOverlay="true" @close="selectBoxShow = false" :show="selectBoxShow" keyName="name" ref="uPicker" :columns="siteColumns"
 				@confirm="confirmSite" @change="changeSite" @cancel="selectBoxShow = false"></u-picker>
 		</view>
 
@@ -216,7 +216,7 @@
 						style: {
 							background: 'linear-gradient(133deg, #FFFCF9 0%, rgba(255,252,249,0) 100%)',
 						},
-						path:""
+						path:"/subPackage/workbench/views/csjl"
 					},
 					{
 						icon: "/static/icon/menu-02.png",
diff --git a/subPackage/bs/components/list/rentList.vue b/subPackage/bs/components/list/rentList.vue
index 073bd05..3b597cd 100644
--- a/subPackage/bs/components/list/rentList.vue
+++ b/subPackage/bs/components/list/rentList.vue
@@ -31,9 +31,9 @@
 			<u-divider text="已经到底了"></u-divider>
 		</view>
 
-		<u-datetime-picker v-model="currentTime" :closeOnClickOverlay="true" @close="isPickerShow = false" :show="isPickerShow" @cancel="isPickerShow = false" mode="date"
+		<u-datetime-picker v-model="currentTime" v-if="isPickerShow" :closeOnClickOverlay="true" @close="isPickerShow = false" :show="isPickerShow" @cancel="isPickerShow = false" mode="date"
 			@confirm="dueTimeConfirm"></u-datetime-picker>
-		<u-datetime-picker v-model="currentTime" :closeOnClickOverlay="true" @close="istPickerShow = false" :show="istPickerShow" @cancel="istPickerShow = false" mode="date"
+		<u-datetime-picker v-model="currentTime" v-if="istPickerShow" :closeOnClickOverlay="true" @close="istPickerShow = false" :show="istPickerShow" @cancel="istPickerShow = false" mode="date"
 			@confirm="terminateTimeConfirm"></u-datetime-picker>
 		<u-modal :show="isModelShow" width="auto" :showCancelButton="true" title="提示" content="请确认是否删除当前租户信息"
 			@cancel="isModelShow = false" @confirm="deleteRentalConfirm"></u-modal>
@@ -72,7 +72,7 @@
 						value: 2
 					},
 				],
-				currentTime: Number(new Date()),
+				currentTime: '',
 				currentRentInfo: {}
 			}
 		},
@@ -115,8 +115,10 @@
 			},
 			xzHandleClick(item) {
 				this.currentRentalId = item.housingRentalId
-				this.currentRentInfo = item
-				this.isPickerShow = true
+				this.currentRentInfo = item
+				this.currentTime = item.dueTime
+				this.isPickerShow = true
+				
 			},
 			async dueTimeConfirm(e) {
 				// 判断当前选中的时间是否小于租房时间
diff --git a/subPackage/bs/views/rentDetail.vue b/subPackage/bs/views/rentDetail.vue
index 7082d00..3bfd4cc 100644
--- a/subPackage/bs/views/rentDetail.vue
+++ b/subPackage/bs/views/rentDetail.vue
@@ -20,13 +20,13 @@
 					</u--input>
 					<u-icon slot="right" name="arrow-right"></u-icon>
 				</u-form-item>
-				<u-form-item @click="rentTimeShow = true" class="form-item" labelWidth="100" label="租房时间:" required
+				<u-form-item @click="rentTimeClick" class="form-item" labelWidth="100" label="租房时间:" required
 					prop="rentTime">
 					<u--input border="none" v-model="form.rentTime" disabled disabledColor="#ffffff" placeholder="请选择">
 					</u--input>
 					<u-icon slot="right" name="arrow-right"></u-icon>
 				</u-form-item>
-				<u-form-item @click="dueTimeShow = true" class="form-item" labelWidth="100" label="到期时间:" required
+				<u-form-item @click="dueTimeClick" class="form-item" labelWidth="100" label="到期时间:" required
 					prop="dueTime">
 					<u--input border="none" v-model="form.dueTime" disabled disabledColor="#ffffff" placeholder="请选择">
 					</u--input>
@@ -61,9 +61,9 @@
 			:popupTitle="selectBusTitle" :dataLists="selectBusList" @cancel="typeShow = false" @submit="typeSelect">
 		</select-bus>
 		<!--出租时间选择-->
-		<u-datetime-picker v-model="currentTime" :closeOnClickOverlay="true" @close="rentTimeShow = false" :show="rentTimeShow" mode="date" @confirm="rentTimeConfirm"
+		<u-datetime-picker v-model="currentTime" v-if="rentTimeShow" :closeOnClickOverlay="true" @close="rentTimeShow = false" :show="rentTimeShow" mode="date" @confirm="rentTimeConfirm"
 			@cancel="rentTimeShow = false"></u-datetime-picker>
-		<u-datetime-picker v-model="currentTime" :closeOnClickOverlay="true" @close="dueTimeShow = false" :show="dueTimeShow" mode="date" @confirm="dueTimeConfirm"
+		<u-datetime-picker v-model="currentTime" v-if="dueTimeShow" :closeOnClickOverlay="true" @close="dueTimeShow = false" :show="dueTimeShow" mode="date" @confirm="dueTimeConfirm"
 			@cancel="dueTimeShow = false"></u-datetime-picker>
 
 		<view class="bottom-tools">
@@ -216,11 +216,19 @@
 				this[this.selectBusModel] = item.name
 				this.form[this.selectBusKey] = item.value
 				this.typeShow = !this.typeShow
+			},
+			rentTimeClick() {
+				this.currentTime = Number(new Date(this.form.rentTime)) || Number(new Date())
+				this.rentTimeShow = true
 			},
 			rentTimeConfirm(e) {
 				const time = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
 				this.form.rentTime = time
 				this.rentTimeShow = false
+			},
+			dueTimeClick() {
+				this.currentTime = Number(new Date(this.form.dueTime)) || Number(new Date())
+				this.dueTimeShow = true
 			},
 			dueTimeConfirm(e) {
 				const time = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
diff --git a/subPackage/house/family/index.vue b/subPackage/house/family/index.vue
index 9c98ca5..be79603 100644
--- a/subPackage/house/family/index.vue
+++ b/subPackage/house/family/index.vue
@@ -3,7 +3,7 @@
 		<view class="flex f-d-c main">
 			<view class="cur-header">
 				<u-icon name="home" color="#fff"></u-icon>
-				{{housingName}}/{{buildingName}}栋
+				{{housingName}}/{{buildingName}}
 			</view>
 			<view class="h0 flex-1 build-list-box">
 				<u-collapse :border="false">
diff --git a/subPackage/house/houseNumber/index.vue b/subPackage/house/houseNumber/index.vue
index 94ed91c..6dc1658 100644
--- a/subPackage/house/houseNumber/index.vue
+++ b/subPackage/house/houseNumber/index.vue
@@ -1,46 +1,43 @@
 <template>
 	<view class="container">
 		<view class="info-box">
-			<view class="policeman-box">
-				<view class="line-box">
-					<view class="title">公安局</view>
-					<view class="value">{{ policeData.branchName }}</view>
-				</view>
-				<view class="line-box">
-					<view class="title">派出所</view>
-					<view class="value">{{ policeData.localPoliceStationName }}</view>
-				</view>
-				<view class="line-box">
-					<view class="title">辖区民警</view>
-					<view class="value">{{ policeData.policeman }}</view>
-				</view>
-				<view class="line-box">
-					<view class="title">联系电话</view>
-					<view class="value">{{ policeData.policemanPhone }}</view>
-				</view>
+			<box-title title="门牌号信息"></box-title>
+			<line-item :list="houseNumberData"></line-item>
+			<view class="map">
+				<map style="width: 100%; height: 100%;"></map>
 			</view>
-			<view class="fireman-box">
-				<view class="line-box">
-					<view class="title">消防照片</view>
-					<view class="value">未完善</view>
-				</view>
-				<view class="line-box">
-					<view class="title">采集人</view>
-					<view class="value">未完善</view>
-				</view>
-				<view class="line-box">
-					<view class="title">消防责任人</view>
-					<view class="value">未完善</view>
-				</view>
-				<view class="line-box">
-					<view class="title">采集时间</view>
-					<view class="value">未完善</view>
-				</view>
-				<view class="line-box">
-					<view class="title">历史事件</view>
-					<view class="value">未完善</view>
-				</view>
+			<view class="box-title">
+				<box-title title="综治网格">
+					<template slot="titleMore">
+						<view class="title-more">
+							<view class="red item"></view>
+							<view class="orange item">85.9</view>
+							<view class="green item"></view>
+						</view>
+					</template>
+				</box-title>
 			</view>
+			<line-item :list="gridData"></line-item>
+			<line-item :list="collectData">
+				<template #other="{ sdate }">
+					<view style="padding: 20rpx 0;" v-if="sdate.name === 'imageUrls' && sdate.value !== '未完善' ">
+						<u--image :src="sdate.value" width="80px" height="80px" @click="imgPreview(sdate.value)"></u--image>
+					</view>
+				</template>
+			</line-item>
+			<view class="box-title">
+				<box-title title="公安网格">
+					<template slot="titleMore">
+						<view class="title-more">
+							<view class="red item"></view>
+							<view class="orange item">85.9</view>
+							<view class="green item"></view>
+						</view>
+					</template>
+				</box-title>
+			</view>
+			<line-item :list="policeData"></line-item>
+			<line-item :list="firemanData"></line-item>
 		</view>
 		<view class="btn-box">
 			<view class="sl-box" @click="csjlClick">
@@ -55,22 +52,137 @@
 	</view>
 </template>
 <script>
+	import lineItem from './lineItem.vue'
 	import {
 		getDoorplateAddressDetail
 	} from "@/api/doorplateAddress/doorplateAddress";
 	export default {
+		components: {
+			lineItem
+		},
 		data() {
 			return {
 				stdId: '',
-				policeData: {
-					branchName: '未完善',
-					localPoliceStationName: '未完善',
-					policeman: '未完善',
-					policemanPhone: '未完善'
-				},
-				firemanData: {
-				
-				}
+				houseNumberData: [{
+						title: '场所标签',
+						name: 'label',
+						value: '未完善'
+					},
+					{
+						title: '场所名称',
+						name: 'placeName',
+						value: '未完善'
+					},
+					{
+						title: '场所负责人',
+						name: 'principal',
+						value: '未完善'
+					},
+					{
+						title: '手机号',
+						name: 'phone',
+						value: '未完善'
+					},
+					{
+						title: '场所简介',
+						name: '',
+						value: '未完善'
+					},
+					{
+						title: '标准地址',
+						name: 'addressName',
+						value: '未完善'
+					}
+				],
+				gridData: [{
+						title: '社区名称',
+						name: 'neiName',
+						value: '未完善'
+					},
+					{
+						title: '网格名称',
+						name: '',
+						value: '未完善'
+					},
+					{
+						title: '网格员',
+						name: '',
+						value: '未完善'
+					},
+					{
+						title: '联系电话',
+						name: '',
+						value: '未完善'
+					}
+				],
+				collectData: [{
+						title: '场所照片',
+						name: 'imageUrls',
+						isUseSlot: true,
+						value: '未完善'
+					},
+					{
+						title: '场所负责人',
+						name: 'username',
+						value: '未完善'
+					},
+					{
+						title: '采集人',
+						name: 'createUser',
+						value: '未完善'
+					},
+					{
+						title: '采集时间',
+						name: 'createTime',
+						value: '未完善'
+					},
+					{
+						title: '历史事件',
+						value: '未完善'
+					}
+				],
+				policeData: [{
+						title: '公安局',
+						name: 'branchName',
+						value: '未完善'
+					},
+					{
+						title: '派出所',
+						name: 'localPoliceStationName',
+						value: '未完善'
+					},
+					{
+						title: '辖区民警',
+						name: 'policeman',
+						value: '未完善'
+					},
+					{
+						title: '联系电话',
+						name: 'policemanPhone',
+						value: '未完善'
+					}
+				],
+				firemanData: [{
+						title: '消防照片',
+						value: '未完善'
+					},
+					{
+						title: '采集人',
+						value: '未完善'
+					},
+					{
+						title: '消防责任人',
+						value: '未完善'
+					},
+					{
+						title: '采集时间',
+						value: '未完善'
+					},
+					{
+						title: '历史事件',
+						value: '未完善'
+					}
+				]
 			}
 		},
 		onLoad(option) {
@@ -90,68 +202,86 @@
 						title: "数据请求失败",
 						icon: "error",
 						duration: 1500
-					})
+					})
 					return
-				}
-				const {
-					branchName,
-					localPoliceStationName,
-					policeman,
-					policemanPhone
-				} = data
-				console.log(data);
-				this.policeData = {
-					branchName: branchName || '未完善',
-					localPoliceStationName: localPoliceStationName || '未完善',
-					policeman: policeman || '未完善',
-					policemanPhone: policemanPhone || '未完善'
 				}
+				this.houseNumberData.forEach(item => {
+					if (!data[item.name]) {
+						item.value = data.place[item.name] || '未完善'
+					} else {
+						item.value = data[item.name] || '未完善'
+					}
+				})
+				
+				this.gridData.forEach(item => {
+					if (!data[item.name]) {
+						item.value = data.place[item.name] || '未完善'
+					} else {
+						item.value = data[item.name] || '未完善'
+					}
+				})
+				
+				this.collectData.forEach(item => {
+					if (!data[item.name]) {
+						item.value = data.place[item.name] || '未完善'
+					} else {
+						item.value = data[item.name] || '未完善'
+					}
+				})
+				
+
+
+				this.policeData.forEach(item => {
+					item.value = data[item.name] || '未完善'
+				})
+			},
+			imgPreview(value) {
+				uni.previewImage({
+					urls: [value],
+				})
 			},
-			cscjClick() {
-				this.$u.func.globalNavigator('/subPackage/workbench/views/cscj?stdId='+this.stdId)
-			},
-			csjlClick() {
-				this.$u.func.globalNavigator('/subPackage/workbench/views/csjl?stdId='+this.stdId)
+			cscjClick() {
+				this.$u.func.globalNavigator('/subPackage/workbench/views/cscj?stdId=' + this.stdId)
+			},
+			csjlClick() {
+				this.$u.func.globalNavigator('/subPackage/workbench/views/csjl?stdId=' + this.stdId)
 			}
 		},
 	}
 </script>
 <style lang="scss" scoped>
 	.container {
-		background-color: #f6f6f6;
+		background-color: #f6f6f6;
 		height: 100%;
 
-		.info-box {
-			height: calc(100% - 110rpx);
-			padding-bottom: 20rpx;
+		.info-box {
+			height: calc(100% - 110rpx);
+			padding-bottom: 20rpx;
 			overflow: auto;
-			.policeman-box,
-			.fireman-box {
-				background-color: #fff;
-				margin-top: 20rpx;
-				padding: 0 20rpx;
+			.map {
+				width: 100%;
+				height: 240rpx;
+				background-color: #fff;
+			}
+			.box-title {
+				padding: 10px 0;
 
-				.line-box {
+				.title-more {
 					display: flex;
-					justify-content: space-between;
-					border-bottom: 1rpx solid #f6f6f6;
-					padding: 25rpx 0;
-					font-size: 32rpx;
-					.title {
-						flex-shrink: 0;
-					}
-					
-					.value {
-						color: #989898;
-						width: 50%;
-						word-wrap: break-word;
-						margin-left: 20rpx;
-						text-align: right;
+					align-items: center;
+					height: 100%;
+
+					.item {
+						width: 50rpx;
+						height: 40rpx;
+						color: #ffffff;
+						padding: 6rpx;
+						font-size: 25rpx;
+						text-align: center;
+						line-height: 20px;
+						font-weight: 700;
 					}
 
-					&:last-child {
-						border: 0;
-					}
 				}
 			}
 		}
@@ -176,4 +306,18 @@
 			}
 		}
 	}
+
+	.red {
+		background-color: red;
+		border-radius: 10rpx 0rpx 0rpx 10rpx;
+	}
+
+	.orange {
+		background-color: orange;
+	}
+
+	.green {
+		background-color: green;
+		border-radius: 0rpx 10rpx 10rpx 0rpx;
+	}
 </style>
\ No newline at end of file
diff --git a/subPackage/house/houseNumber/lineItem.vue b/subPackage/house/houseNumber/lineItem.vue
new file mode 100644
index 0000000..68b14ae
--- /dev/null
+++ b/subPackage/house/houseNumber/lineItem.vue
@@ -0,0 +1,71 @@
+<template>
+	<view class="line-box">
+		<view class="line-item" v-for="(item, index) in list" :key="index">
+			<view class="text">
+				<view class="title">{{ item.title }}</view>
+				<view class="value" v-if="!item.isUseSlot">{{ item.value }}</view>
+			</view>
+			<view class="pic">
+				<slot name="pic" :sdate="item"></slot>
+			</view>
+			<view class="other">
+				<slot name="other" :sdate="item"></slot>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		props: {
+			list: {
+				required: true,
+				type: Array,
+				default: () => [{
+					title: '',
+					value: ''
+				}]
+			},
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+	.line-box {
+		background-color: #fff;
+		margin-top: 20rpx;
+		padding: 0 20rpx;
+
+		.line-item {
+			.text {
+				display: flex;
+				justify-content: space-between;
+				padding: 25rpx 0;
+				font-size: 32rpx;
+				background-color: #fff;
+				border-bottom: 1rpx solid #f6f6f6;
+
+				.title {
+					flex-shrink: 0;
+					width: 200rpx;
+				}
+
+				.value {
+					color: #989898;
+					width: 50%;
+					word-wrap: break-word;
+					margin-left: 20rpx;
+					text-align: right;
+				}
+
+				&:last-child {
+					border: 0;
+				}
+			}
+			.pic {
+				display: flex;
+				flex-wrap: wrap;
+			}
+		}
+	}
+</style>
\ No newline at end of file
diff --git a/subPackage/house/member/index.vue b/subPackage/house/member/index.vue
index f69a9c2..07cbe2c 100644
--- a/subPackage/house/member/index.vue
+++ b/subPackage/house/member/index.vue
@@ -288,8 +288,9 @@
 		onLoad(option) {
 			const data = JSON.parse(option.data)
 			this.houseCode = data.houseCode
-			if(data.type == 2){
+			if(data.type == 1){
 				this.addOrUpdateTitle = "保存"
+				this.getAllBizDict()
 			}
 			if(data.type == 2){
 				this.addOrUpdateTitle = "修改"
@@ -297,9 +298,22 @@
 			}
 		},
 		onShow() {
-
 		},
 		methods: {
+			async getAllBizDict(){
+				// 获取角色关系字典
+				await this.getBizDict('roleRelation',this.dataList.relationshipList)
+				// 获取角色字典
+				await this.getBizDict('roleType',this.dataList.roleList)
+				// 获取民族字典
+				await this.getBizDict('nationType',this.dataList.ethnicityList)
+				// 获取学历字典
+				await this.getBizDict('educationType',this.dataList.educationList)
+				// 获取工作状态字典
+				await this.getBizDict('workStatusType',this.dataList.workStatusList)
+				// 获取婚姻状态字典
+				await this.getBizDict('marriageStatusType',this.dataList.maritalStatusList)
+			},
 			// 获取业务字典
 			async getBizDict(code,list){
 				const param = {
@@ -315,18 +329,8 @@
 			},
 			// 获取住户信息
 			async getHouseholdInfo(data){
-				// 获取角色关系字典
-				await this.getBizDict('roleRelation',this.dataList.relationshipList)
-				// 获取角色字典
-				await this.getBizDict('roleType',this.dataList.roleList)
-				// 获取民族字典
-				await this.getBizDict('nationType',this.dataList.ethnicityList)
-				// 获取学历字典
-				await this.getBizDict('educationType',this.dataList.educationList)
-				// 获取工作状态字典
-				await this.getBizDict('workStatusType',this.dataList.workStatusList)
-				// 获取婚姻状态字典
-				await this.getBizDict('marriageStatusType',this.dataList.maritalStatusList)
+				// 获取所有字典
+				await this.getAllBizDict()
 				this.form = data
 				this.roleTypeName = this.findObjValue(data.roleType, this.dataList.roleList)
 				this.relationshipName = this.findObjValue(data.relationship, this.dataList.relationshipList)
diff --git a/subPackage/house/roomDetails/index.vue b/subPackage/house/roomDetails/index.vue
index db8fa8a..190124b 100644
--- a/subPackage/house/roomDetails/index.vue
+++ b/subPackage/house/roomDetails/index.vue
@@ -22,7 +22,8 @@
 						<view class="l flex-1 flex">
 							<view class="flex_base">
 								<view class="head-img flex_base">
-									<u--image shape="circle" :showLoading="true" :src="item.src|| '/static/icon/user-01.png'"  width="120rpx"
+									<u--image shape="circle" :showLoading="true"
+										:src="item.src|| '/static/icon/user-01.png'" width="120rpx"
 										height="120rpx"></u--image>
 								</view>
 							</view>
@@ -42,12 +43,12 @@
 						</view>
 						<view class="r flex f-d-c j-c-s-a">
 							<view>
-								<u-button size='small' type="primary" :plain="true" text="资料管理" 
-								@click="addOrupdateMember(2,item)"></u-button>
+								<u-button size='small' type="primary" :plain="true" text="资料管理"
+									@click="addOrupdateMember(2,item)"></u-button>
 							</view>
 							<view>
-								<u-button size='small' type="primary" :plain="true" text="标签管理" 
-								@click="goToHouseholdLabel(item)"></u-button>
+								<u-button size='small' type="primary" :plain="true" text="标签管理"
+									@click="goToHouseholdLabel(item)"></u-button>
 							</view>
 						</view>
 					</view>
@@ -62,8 +63,9 @@
 					</view>
 
 				</view>
-				<u-modal :show="isHouseholdModelShow" width="auto" :showCancelButton="true" title="提示" content="请确认是否删除当前住户信息"
-					@cancel="isHouseholdModelShow = false" @confirm="deleteHousehold()"></u-modal>
+				<u-modal :show="isHouseholdModelShow" width="auto" :showCancelButton="true" title="提示"
+					content="请确认是否删除当前住户信息" @cancel="isHouseholdModelShow = false"
+					@confirm="deleteHousehold()"></u-modal>
 
 				<view class="mt-20 rent-out-box">
 					<box-title :title="'出租管理'"></box-title>
@@ -95,12 +97,14 @@
 						</view>
 					</view>
 				</view>
-				<u-datetime-picker :show="isPickerShow" @cancel="isPickerShow = false" mode="date"
-					@confirm="dueTimeConfirm"></u-datetime-picker>
-				<u-datetime-picker :show="istPickerShow" @cancel="istPickerShow = false" mode="date"
+				<u-datetime-picker v-model="currentTime" v-if="isPickerShow" :closeOnClickOverlay="true"
+					@close="isPickerShow = false" :show="isPickerShow" @cancel="isPickerShow = false" mode="date"
+					@confirm="dueTimeConfirm"></u-datetime-picker>
+				<u-datetime-picker v-model="currentTime" v-if="istPickerShow" :closeOnClickOverlay="true"
+					@close="istPickerShow = false" :show="istPickerShow" @cancel="istPickerShow = false" mode="date"
 					@confirm="terminateTimeConfirm"></u-datetime-picker>
-				<u-divider text="已经到底了"></u-divider>
-				<u-modal :show="isModelShow" width="auto" :showCancelButton="true" title="提示" content="请确认是否删除当前租户信息"
+				<u-divider text="已经到底了"></u-divider>
+				<u-modal :show="isModelShow" width="auto" :showCancelButton="true" title="提示" content="请确认是否删除当前租户信息"
 					@cancel="isModelShow = false" @confirm="deleteRentalConfirm"></u-modal>
 			</view>
 
@@ -113,18 +117,18 @@
 					<u-button type="primary" :plain="true" text="添加租赁信息" @click="addRental"></u-button>
 				</view>
 			</view>
-			
-		</view>
+
+		</view>
 	</view>
 </template>
 
 <script>
 	import {
 		getHouseRentInfo
-	} from "@/api/doorplateAddress/doorplateAddress";
-	import {
-		deleteRentalInfo,
-		updateDueTime
+	} from "@/api/doorplateAddress/doorplateAddress";
+	import {
+		deleteRentalInfo,
+		updateDueTime
 	} from "@/api/houseRental/houseRental.js";
 	import {
 		removeHousehold
@@ -134,8 +138,8 @@
 
 		data() {
 			return {
-				householdId:'',
-				isHouseholdModelShow:false,
+				householdId: '',
+				isHouseholdModelShow: false,
 				currentId: '',
 				houseCode: '',
 				houseInfo: {
@@ -148,24 +152,25 @@
 					allNum: 0
 				},
 				ownerInfoList: [],
-				rentOutList: [],
-				isPickerShow: false,
-				istPickerShow: false,
-				currentRentalId: '',
-				isModelShow: false,
-				status: [{
-						name: '未到期',
-						value: 0
-					},
-					{
-						name: '已到期',
-						value: 1
-					},
-					{
-						name: '已终止',
-						value: 2
-					},
+				rentOutList: [],
+				isPickerShow: false,
+				istPickerShow: false,
+				currentRentalId: '',
+				isModelShow: false,
+				status: [{
+						name: '未到期',
+						value: 0
+					},
+					{
+						name: '已到期',
+						value: 1
+					},
+					{
+						name: '已终止',
+						value: 2
+					},
 				],
+				currentTime: null
 			}
 		},
 		onLoad(e) {
@@ -179,20 +184,23 @@
 		},
 		methods: {
 			// 跳转住户标签管理页面
-			goToHouseholdLabel(data){
+			goToHouseholdLabel(data) {
 				data['houseCode'] = this.houseCode
 				var navData = JSON.stringify(data);
 				this.$u.func.globalNavigator(`/subPackage/house/member/householdLabel?data=${navData}`)
 			},
 			// 删除住户弹出
-			removeHouseholdSub(data){
+			removeHouseholdSub(data) {
 				this.householdId = data.id
 				this.isHouseholdModelShow = true
 			},
 			// 删除住户信息
-			deleteHousehold(){
-				removeHousehold(this.householdId).then(res=>{
-					const {code,data}  = res
+			deleteHousehold() {
+				removeHousehold(this.householdId).then(res => {
+					const {
+						code,
+						data
+					} = res
 					if (code !== 200) {
 						uni.showToast({
 							title: "删除失败",
@@ -213,7 +221,7 @@
 						title: "数据加载失败",
 						icon: "error",
 						duration: 1500
-					})
+					})
 					return
 				}
 				const {
@@ -223,7 +231,7 @@
 					houseName,
 					unitName,
 					houseRentalList,
-					householdList,
+					householdList,
 					subAoi
 				} = res.data
 				this.houseCode = addressCode
@@ -231,7 +239,7 @@
 				this.ownerInfoList = householdList
 				this.houseInfo.houseName = houseName
 				this.houseInfo.unitName = unitName
-				this.houseInfo.houseTitle =( aoiName || subAoi) + ':' + buildingName
+				this.houseInfo.houseTitle = (aoiName || subAoi) + ':' + buildingName
 				// 判断当前租客有没有过期
 				this.rentOutList.forEach(item => {
 					// 事件格式处理
@@ -241,7 +249,7 @@
 					item.allNum = item.houseTenantVOList.length
 					// 多人个租客将第一个作为显示
 					item.tenant = item.houseTenantVOList.length > 0 ? item.houseTenantVOList[0].name : ''
-					item.housingRentalId = item.houseTenantVOList[0]?.housingRentalId
+					item.housingRentalId = item.houseTenantVOList[0]?.housingRentalId
 				})
 				this.houseInfo.allNum = householdList.length
 
@@ -254,91 +262,95 @@
 				const url = `/subPackage/bs/views/rentDetail?houseCode=${this.houseCode}`
 				this.$u.func.globalNavigator(url, "navTo")
 			},
-			// 用户资料管理页面跳转  1:新增 2:修改
-			addOrupdateMember(type,data={}) {
-				if(type==1){
+			// 用户资料管理页面跳转  1:新增 2:修改
+			addOrupdateMember(type, data = {}) {
+				if (type == 1) {
 					data['type'] = 1
 					data['houseCode'] = this.houseCode
 				}
-				if(type==2){
+				if (type == 2) {
 					data['type'] = 2
 				}
-				var navData = JSON.stringify(data); 
-				this.$u.func.globalNavigator(`/subPackage/house/member/index?data=${navData}`)
-			},
-			editRent(item) {
-				const { houseCode, id } = item
-				this.$u.func.globalNavigator(`/subPackage/bs/views/rentDetail?houseCode=${houseCode}&id=${id}`)
-			},
-			reletRent(item) {
-				console.log(item);
-				this.currentRentalId = item.housingRentalId
-				this.isPickerShow = true
-			},
-			
-			terRent(item) {
-				this.currentRentalId = item.housingRentalId
-				this.istPickerShow = true
-			},
-			deleteRent(item) {
-				this.currentRentalId = item.housingRentalId
-				this.isModelShow = true
-			},
-			async dueTimeConfirm(e) {
-				const time = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
-				const res = await updateDueTime({
-					id: this.currentRentalId,
-					dueTime: time
-				})
-				if (res.code !== 200) {
-					uni.showToast({
-						title: "续租失败",
-						icon: "error",
-						duration: 1500
-					})
-					return
-				}
-				this.isPickerShow = false
-				this.getHouseRentInfoList()
-			},
-			async terminateTimeConfirm(e) {
-				const time = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
-				const res = await updateDueTime({
-					id: this.currentRentalId,
-					terminationTime: time
-				})
-				if (res.code !== 200) {
-					uni.showToast({
-						title: "终止失败",
-						icon: "error",
-						duration: 1500
-					})
-					return
-				}
-				this.istPickerShow = false
-				this.getHouseRentInfoList()
-			},
-			async deleteRentalConfirm() {
-				const {
-					code,
-					data
-				} = await deleteRentalInfo(this.currentRentalId)
-				if (code !== 200) {
-					uni.showToast({
-						title: "删除失败",
-						icon: "error",
-						duration: 1500
-					})
-					return
-				}
-				this.isModelShow = false
-				this.getHouseRentInfoList()
-			},
-			findObjValue(value, obj) {
-				const res = obj.find(item => {
-					return item.value == value
-				})
-				return res.name
+				var navData = JSON.stringify(data);
+				this.$u.func.globalNavigator(`/subPackage/house/member/index?data=${navData}`)
+			},
+			editRent(item) {
+				const {
+					houseCode,
+					id
+				} = item
+				this.$u.func.globalNavigator(`/subPackage/bs/views/rentDetail?houseCode=${houseCode}&id=${id}`)
+			},
+			reletRent(item) {
+				this.currentTime = item.dueTime
+				this.currentRentalId = item.housingRentalId
+				this.isPickerShow = true
+			},
+
+			terRent(item) {
+				this.currentTime = item.dueTime
+				this.currentRentalId = item.housingRentalId
+				this.istPickerShow = true
+			},
+			deleteRent(item) {
+				this.currentRentalId = item.housingRentalId
+				this.isModelShow = true
+			},
+			async dueTimeConfirm(e) {
+				const time = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
+				const res = await updateDueTime({
+					id: this.currentRentalId,
+					dueTime: time
+				})
+				if (res.code !== 200) {
+					uni.showToast({
+						title: "续租失败",
+						icon: "error",
+						duration: 1500
+					})
+					return
+				}
+				this.isPickerShow = false
+				this.getHouseRentInfoList()
+			},
+			async terminateTimeConfirm(e) {
+				const time = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
+				const res = await updateDueTime({
+					id: this.currentRentalId,
+					terminationTime: time
+				})
+				if (res.code !== 200) {
+					uni.showToast({
+						title: "终止失败",
+						icon: "error",
+						duration: 1500
+					})
+					return
+				}
+				this.istPickerShow = false
+				this.getHouseRentInfoList()
+			},
+			async deleteRentalConfirm() {
+				const {
+					code,
+					data
+				} = await deleteRentalInfo(this.currentRentalId)
+				if (code !== 200) {
+					uni.showToast({
+						title: "删除失败",
+						icon: "error",
+						duration: 1500
+					})
+					return
+				}
+				this.isModelShow = false
+				this.getHouseRentInfoList()
+			},
+			findObjValue(value, obj) {
+				const res = obj.find(item => {
+					return item.value == value
+				})
+				return res.name
 			},
 		}
 	}
@@ -423,7 +435,7 @@
 							&>.u-button {
 								margin: 0 16rpx;
 							}
-							
+
 							.btn-item {
 								margin: 0 10rpx;
 								border: 0;
diff --git a/subPackage/workbench/views/cscj.vue b/subPackage/workbench/views/cscj.vue
index c989ac6..3d414ee 100644
--- a/subPackage/workbench/views/cscj.vue
+++ b/subPackage/workbench/views/cscj.vue
@@ -152,7 +152,7 @@
 	import lineItem from "@/subPackage/workbench/components/lineItem.vue"
 	import {
 		getLabelList
-	} from "@/api/label/label";
+	} from "@/api/label/categoryLabel.js";
 	import {
 		getDoorplateAddressDetail,
 		getDoorplateAddressList
@@ -536,8 +536,8 @@
 
 					data.forEach(label => {
 						this.labelList[0].children.push({
-							id: label.id,
-							text: label.labelName
+							id: label.categoryNo,
+							text: label.categoryName
 						})
 					})
 				})
diff --git a/subPackage/workbench/views/csjl.vue b/subPackage/workbench/views/csjl.vue
index 1fdfd90..1c8fc91 100644
--- a/subPackage/workbench/views/csjl.vue
+++ b/subPackage/workbench/views/csjl.vue
@@ -5,82 +5,128 @@
 				<u-tabs :list="tabsList" @click="tabClick" :scrollable="false"></u-tabs>
 			</view>
 			<view class="search">
-				<u--input placeholder="请输入场所名称" prefixIcon="search" class="search-ipt"
-					prefixIconStyle="font-size: 22px;color: #909399"></u--input>
+				<u-search placeholder="请输入场所名称" v-model="iptContext" :clearabled="true" :showAction="true" :animation="true"
+					@search="searchConfirm" @clear="clearConfirm"></u-search>
 			</view>
 		</view>
 		<view class="info-box">
-			<view class="records-card" v-for="records in recordsData" :key="records.id">
+			<view class="records-card" v-for="(records, index) in recordsData" :key="records.id"
+				@click="pushPage(records)">
 				<view class="title">
-					<text>{{ records.title }}</text>
-					<text>{{ records.time }}</text>
+					<text>{{ records.placeName }}</text>
+					<text>{{ records.createTime }}</text>
 				</view>
 				<view class="info">
 					<view class="charge-man">
 						<text>场所负责人:</text>
-						<text>{{ records.chargeMan }}</text>
+						<text>{{ records.username || '未完善' }}</text>
 					</view>
 					<view class="phone">
 						<text>手机号:</text>
-						<text>{{ records.phone }}</text>
+						<text>{{ records.phone || '未完善' }}</text>
 					</view>
 				</view>
 			</view>
 		</view>
+		<u-loadmore :status="status" loadmoreText="开始加载" loadingText="数据加载中" nomoreText="数据加载完成" line />
 	</view>
 </template>
 
 <script>
+	import {
+		getLocationRecord
+	} from '@/api/place/place.js'
 	export default {
 		data() {
 			return {
 				tabsList: [{
-						id: 1,
+						type: 1,
 						name: '全部'
 					},
 					{
-						id: 2,
+						type: 2,
 						name: '待完善'
 					},
 					{
-						id: 3,
+						type: 3,
 						name: '已完善'
 					}
 				],
-				recordsData: [{
-						id: 1,
-						title: '科创4栋',
-						time: new Date().toLocaleString(),
-						chargeMan: '铃铃铃',
-						phone: '17678654431'
-					},
-					{
-						id: 2,
-						title: '科创4栋',
-						time: new Date().toLocaleString(),
-						chargeMan: '铃铃铃',
-						phone: '17678654431'
-					},
-					{
-						id: 3,
-						title: '科创4栋',
-						time: new Date().toLocaleString(),
-						chargeMan: '铃铃铃',
-						phone: '17678654431'
-					},
-					{
-						id: 4,
-						title: '科创4栋',
-						time: new Date().toLocaleString(),
-						chargeMan: '铃铃铃',
-						phone: '17678654431'
-					}
-				]
+				recordsData: [],
+				iptContext: '',
+				pagingParams: {
+					current: 1,
+					size: 10
+				},
+				tabsType: 1,
+				status: 'nomore'
 			}
 		},
+		onShow() {
+			this.getrRecordList()
+		},
+		onReachBottom() {
+			this.pagingParams.current++
+			this.getrRecordList()
+		},
 		methods: {
-			tabClick() {
-
+			async getrRecordList(placeName = this.iptContext, isPerfect = this.tabsType) {
+				this.status = 'loadmore'
+				const {
+					code,
+					data: {
+						records
+					}
+				} = await getLocationRecord({
+					placeName,
+					isPerfect,
+					...this.pagingParams
+				})
+				if (code !== 200) {
+					this.$u.func.showToast({
+						title: "获取数据失败",
+						icon: "error"
+					})
+					return
+				}
+				this.recordsData = [...this.recordsData, ...records]
+				this.status = 'nomore'
+			},
+			tabClick({
+				type
+			}) {
+				this.pagingParams = {
+					current: 1,
+					size: 10
+				}
+				this.recordsData = []
+				this.tabsType = type
+				this.getrRecordList(this.iptContext, this.tabsType)
+			},
+			searchConfirm() {
+				this.recordsData = []
+				this.pagingParams = {
+					current: 1,
+					size: 10
+				}
+				this.getrRecordList(this.iptContext, this.tabsType)
+			},
+			clearConfirm() {
+				this.iptContext = ''
+				this.searchConfirm()
+			},
+			pushPage({
+				houseCode
+			}) {
+				if (!houseCode) {
+					uni.showToast({
+						title: "关键参数为空",
+						icon: "error"
+					})
+					return
+				}
+				let url = "/subPackage/workbench/views/cscj?stdId=" + houseCode
+				this.$u.func.globalNavigator(url)
 			}
 		}
 	}
@@ -88,15 +134,14 @@
 
 <style lang="scss" scoped>
 	.container {
-		height: 100%;
+		min-height: 100%;
 		overflow-y: auto;
 		background-color: #f6f6f6;
 
 		.tabsAndSearch {
 			background-color: #fff;
 
-			.tabs {
-			}
+			.tabs {}
 
 			.search {
 				padding: 20rpx 70rpx;
diff --git a/subPackage/workbench/views/rental.vue b/subPackage/workbench/views/rental.vue
index 0b614df..6f7c2a6 100644
--- a/subPackage/workbench/views/rental.vue
+++ b/subPackage/workbench/views/rental.vue
@@ -1,188 +1,295 @@
-<template>
-	<view class="">
-		<view class="header bgc-ff">
-			<view class="filter-box">
-				<chenchuang-CCDropDownFilter :filterData='filterData' :defaultIndex='defaultIndex'
-					@ed='handleSelect'></chenchuang-CCDropDownFilter>
-			</view>
-			<view class="search-box">
-				<u-search placeholder="请输入租户名" v-model="keyword"  :clearabled="true" :showAction="true"  :animation="true"></u-search>
-			</view>
-		</view>
-		
-		<view class="content">
-			<view class="row flex j-c-s-b a-i-c">
-				<view class="row-item bgc-ff flex a-i-c">
-					<view class="dot bgc-green"></view>
-					<text class="f-24">长期3户 (3)人</text>
-				</view>
-				<view class="row-item bgc-ff flex a-i-c">
-					<view class="dot bgc-main"></view>
-					<text class="f-24">长期3户 (3)人</text>
-				</view>
-				<view class="row-item bgc-ff flex a-i-c">
-					<view class="dot bgc-orange"></view>
-					<text class="f-24">长期3户 (3)人</text>
-				</view>
-			</view>
-			
-			<view class="list bgc-ff" v-for="i in 3">
-				<view class="flex j-c-s-b a-i-c">
-					<view class="flex a-i-c">
-						<text class="f-32 mr-50">黄莺</text>
-						<view class="flex a-i-c">
-							<u-icon name="phone-fill" color="#017BFC"></u-icon>
-							<text class="f-28 ml-10">15180114174</text>
-						</view>
-					</view>
-					<u-tag text="未到期"  type="success" plain plainFill></u-tag>
-				</view>
-				<view class="list-address f-28 c-99">
-					江西省上饶市信州区西市街道万达社区居民委员会滨江西路66号万达晶座11栋303室
-				</view>
-				<view class="list-action flex ">
-					<view class="action-item">
-						<u-icon name="/static/icon/list-02.png"  width="40rpx"  height="40rpx"></u-icon>
-						<text class="f-28 c-main ml-10">租客管理</text>
-					</view>
-					<view class="action-item">
-						<u-icon name="/static/icon/list-01.png"  width="40rpx"  height="40rpx"></u-icon>
-						<text class="f-28 c-main ml-10">租客管理</text>
-					</view>
-				</view>
-			</view>
-		</view>
-
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				filterData: [
-					[
-						{
-						  name: '全部',
-						  value: ''
-						},
-						{
-							name: '待审核',
-							value: '1'
-						},
-						{
-							name: '未到期',
-							value: '2'
-						},
-						{
-							name: '即将到期',
-							value: '3'
-						},
-						{
-							name: '已到期',
-							value: '3'
-						}
-					],
-					[
-						{
-							name: '楼层',
-							value: ''
-						},
-						{
-							name: '1楼',
-							value: '1'
-						},
-						{
-							name: '2楼',
-							value: '2'
-						},
-						{
-							name: '3楼',
-							value: '3'
-						}
-					]
-				],
-				defaultIndex: [0, 0],
-				keyword:""
-			}
-		},
-
-		methods: {
-			handleSelect(res) {
-				console.log('选择res = ' + JSON.stringify(res));
-			},
-		}
-	}
-</script>
+<template>
+	<view class="">
+		<view class="header bgc-ff">
+			<view class="filter-box">
+				<chenchuang-CCDropDownFilter :filterData='filterData' :defaultIndex='defaultIndex'
+					@ed='handleSelect'></chenchuang-CCDropDownFilter>
+			</view>
+			<view class="search-box">
+				<u-search placeholder="请输入租户名" v-model="keyword" :clearabled="true" :showAction="true" :animation="true"
+					@search="search" @clear="clear"></u-search>
+			</view>
+		</view>
+
+		<view class="content">
+			<view class="row flex  a-i-c" style="flex-wrap: wrap;">
+				<!-- <view class="row-item bgc-ff flex a-i-c">
+					<view class="dot bgc-green"></view>
+					<text class="f-24">长期3户 (3)人</text>
+				</view>
+				<view class="row-item bgc-ff flex a-i-c">
+					<view class="dot bgc-main"></view>
+					<text class="f-24">中期3户 (3)人</text>
+				</view>
+				<view class="row-item bgc-ff flex a-i-c">
+					<view class="dot bgc-orange"></view>
+					<text class="f-24">短期3户 (3)人</text>
+				</view> -->
+				<view v-for="(item,index) in statistics" :key="index" class="row-item bgc-ff flex a-i-c">
+					<view v-if="item.term =='shortTerm' " class="dot bgc-orange"></view>
+					<view v-if="item.term =='middleTerm' " class="dot bgc-main"></view>
+					<view v-if="item.term =='longTerm' " class="dot bgc-green"></view>
+					<text class="f-24">{{formatTerm(item.term)}}{{item.total}}户 ({{item.personNum}})人</text>
+				</view>
+			</view>
+
+			<view class="list bgc-ff" v-for="records in tenantList">
+				<view class="flex j-c-s-b a-i-c">
+					<view class="flex a-i-c">
+						<text class="f-32 mr-50">{{ records.tenantName }}</text>
+						<view class="flex a-i-c">
+							<u-icon name="phone-fill" color="#017BFC"></u-icon>
+							<text class="f-28 ml-10">{{ records.phone || '未填写' }}</text>
+						</view>
+					</view>
+					<u-tag text="未到期" type="success" plain plainFill></u-tag>
+				</view>
+				<view class="list-address f-28 c-99">
+					{{ records.houseName }}
+				</view>
+				<view class="list-action flex ">
+					<view class="action-item" @click="tenantManage(records)">
+						<u-icon name="/static/icon/list-02.png" width="40rpx" height="40rpx"></u-icon>
+						<text class="f-28 c-main ml-10">租客管理</text>
+					</view>
+					<view class="action-item">
+						<u-icon name="/static/icon/list-01.png" width="40rpx" height="40rpx"></u-icon>
+						<text class="f-28 c-main ml-10">走访日志</text>
+					</view>
+				</view>
+			</view>
+		</view>
+
+	</view>
+</template>
+
+<script>
+	import {
+		getRentalHouseContent,
+		getPage,
+		getStatistics
+	} from '@/api/houseRental/houseRental.js'
+	export default {
+		data() {
+			return {
+				filterData: [
+					[{
+							name: '全部',
+							value: ''
+						},
+						{
+							name: '待审核',
+							value: '1'
+						},
+						{
+							name: '未到期',
+							value: '2'
+						},
+						{
+							name: '即将到期',
+							value: '3'
+						},
+						{
+							name: '已到期',
+							value: '3'
+						}
+					],
+					[{
+							name: '楼层',
+							value: ''
+						},
+						{
+							name: '1楼',
+							value: '1'
+						},
+						{
+							name: '2楼',
+							value: '2'
+						},
+						{
+							name: '3楼',
+							value: '3'
+						}
+					]
+				],
+				defaultIndex: [0, 0],
+				keyword: "",
+				statistics: [],
+				tenantList: [],
+				status: [{
+						name: '未到期',
+						value: 0
+					},
+					{
+						name: '已到期',
+						value: 1
+					},
+					{
+						name: '已终止',
+						value: 2
+					},
+				],
+			}
+		},
+		computed: {
+			formatTerm() {
+				return (term => {
+					if (term == 'longTerm') {
+						return "长期"
+					} else if (term == 'middleTerm') {
+						return "中期"
+					} else if (term == 'shortTerm') {
+						return "短期"
+					}
+				})
+			}
+		},
+		onLoad() {
+			this.getStatistics()
+			this.getList()
+		},
+		onShow() {
+			this.getRentalHouseInfo()
+		},
+		methods: {
+			handleSelect(res) {
+				console.log('选择res = ' + JSON.stringify(res));
+			},
+			getStatistics() {
+				getStatistics().then(res => {
+					console.log(res, "+------------")
+					this.statistics = res.data
+				})
+			},
+			getList() {
+				getPage(this.query).then(res => {
+					console.log(res)
+				})
+			},
+			findObjValue(value, obj) {
+				const res = obj.find(item => {
+					return item.value == value
+				})
+				return res.name
+			},
+			async getRentalHouseInfo() {
+				const {
+					code,
+					data: {
+						records
+					}
+				} = await getRentalHouseContent({
+					tenantName: this.keyword
+				})
+				if (code !== 200) {
+					uni.showToast({
+						title: "数据请求错误",
+						icon: "error"
+					})
+					return
+				}
+				this.tenantList = records
+			},
+			search() {
+				this.getRentalHouseInfo()
+			},
+			clear() {
+				this.keyword = ''
+				this.search()
+			},
+			tenantManage({
+				houseCode,
+				id
+			}) {
+				this.$u.func.globalNavigator(`/subPackage/bs/views/rentDetail?houseCode=${houseCode}&id=${id}`)
+			}
+		}
+	}
+</script>
 <style lang="scss">
 	page {
 		background-color: #F5F5F5;
 	}
-	.header{
-		width:100%;
+	
+	.header {
+		width: 100%;
 		position: fixed;
-		top:0;
-		left:0;
+		top: 0;
+		left: 0;
 		z-index: 10;
 	}
-	.filter-box{
-		width:100%;
-		height:100rpx;
+	
+	.filter-box {
+		width: 100%;
+		height: 100rpx;
 	}
-	.search-box{
-		padding:20rpx 24rpx 30rpx;
+	
+	.search-box {
+		padding: 20rpx 24rpx 30rpx;
 	}
-	.content{
-		width:100%;
-		margin-top:220rpx;
+	
+	.content {
+		width: 100%;
+		margin-top: 220rpx;
 		padding: 0 30rpx;
 		box-sizing: border-box;
-		.row{
-			width:100%;
-			padding:20rpx 0;
+	
+		.row {
+			width: 100%;
+			padding: 20rpx 0;
 		}
-		.row-item{
-			width:220rpx;
-			height:46rpx;
+	
+		.row-item {
+			width: calc(100% / 3);
+			height: 46rpx;
 			border-radius: 30rpx;
 			padding: 0 20rpx;
 			box-sizing: border-box;
 		}
-		.dot{
-			width:10rpx;
-			height:10rpx;
+	
+		.dot {
+			width: 10rpx;
+			height: 10rpx;
 			border-radius: 50%;
-			margin-right:18rpx;
+			margin-right: 18rpx;
 		}
-		.bgc-green{
-			background-color:#30D17C;
+	
+		.bgc-green {
+			background-color: #30D17C;
 		}
-		.bgc-orange{
-			background-color:#FFAC3D;
+	
+		.bgc-orange {
+			background-color: #FFAC3D;
 		}
-		.list{
-			width:100%;
-			padding:30rpx 30rpx 0;
+	
+		.list {
+			width: 100%;
+			padding: 30rpx 30rpx 0;
 			box-sizing: border-box;
-			margin-bottom:20rpx;
-			.list-address{
-				padding:30rpx 0;
+			margin-bottom: 20rpx;
+	
+			.list-address {
+				padding: 30rpx 0;
 			}
-			.list-action{
-				padding:22rpx 0 30rpx;
-				border-top:1px solid #F5F5F5;
+	
+			.list-action {
+				padding: 22rpx 0 30rpx;
+				border-top: 1px solid #F5F5F5;
 			}
-			.action-item{
+	
+			.action-item {
 				display: flex;
-				flex:1;
+				flex: 1;
 				justify-content: center;
 			}
-			.action-item:first-child{
-				border-right:1px solid #DBDBDB;
+	
+			.action-item:first-child {
+				border-right: 1px solid #DBDBDB;
 			}
-			.mr-50{
-				margin-right:50rpx;
+	
+			.mr-50 {
+				margin-right: 50rpx;
 			}
 		}
-	}
+	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3