From 0df15fb4eafccde45b09caa213dd12d449397298 Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Sat, 16 Mar 2024 18:42:00 +0800
Subject: [PATCH] 更新

---
 components/index/header.vue                  |   39 +
 subPackage/house/member/add.vue              |  120 ++-
 api/house/householdLabel.js                  |    9 
 pages.json                                   |   15 
 subPackage/house/roomControl/index.vue       |  101 +++
 subPackage/workbench/views/audit.vue         |    2 
 subPackage/workbench/views/editCscj.vue      |   12 
 subPackage/workbench/components/formItem.vue |   37 
 pages/statistics/index.vue                   |  458 ++++++++++++++++
 pages/home/index.vue                         |  356 +++---------
 subPackage/workbench/views/cscj.vue          |  121 +--
 subPackage/house/family/index.vue            |   51 +
 pages/home/index.scss                        |  212 +++++++
 subPackage/task/index.vue                    |   32 
 14 files changed, 1,131 insertions(+), 434 deletions(-)

diff --git a/api/house/householdLabel.js b/api/house/householdLabel.js
index f7bf8e6..051c04b 100644
--- a/api/house/householdLabel.js
+++ b/api/house/householdLabel.js
@@ -18,4 +18,13 @@
 		method: 'POST',
 		data
 	})
+}
+
+//设置房屋标签
+export const setHouseLabel = (data) => {
+	return http.request({
+		url: 'blade-householdLabel/householdLabel/saveOrUpdateHouseLabel',
+		method: 'POST',
+		data
+	})
 }
\ No newline at end of file
diff --git a/components/index/header.vue b/components/index/header.vue
new file mode 100644
index 0000000..432bbc6
--- /dev/null
+++ b/components/index/header.vue
@@ -0,0 +1,39 @@
+<template>
+	<view class="">
+		<u-navbar height="48" :autoBack="false" safeAreaInsetTop placeholder @leftClick="navToSelectSite()"
+			bgColor="#017BFC">
+			<view slot="left" class="top flex">
+				<view class="top-text f-30 fw c-ff">{{curSelectSite.name?curSelectSite.name:'暂无绑定' +roleTypeName+'信息'}}
+				</view>
+				<u-icon name="arrow-right" color="#fff"></u-icon>
+			</view>
+		</u-navbar>
+		<view class="swiper">
+			<u-swiper :list="bannerList" height="320rpx" radius="10"></u-swiper>
+		</view>
+	</view>
+
+
+</template>
+
+<script>
+	export default {
+		name: "header",
+		props: {
+			banner: {
+				type: Array,
+				value: []
+			},
+
+		}
+		data: {
+			bgColor: {
+
+			}
+		},
+
+	}
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/pages.json b/pages.json
index ac68a4a..d58ab73 100644
--- a/pages.json
+++ b/pages.json
@@ -12,6 +12,15 @@
 				"navigationStyle": "custom"
 			}
 		},
+
+		{
+			"path": "pages/statistics/index",
+			"style": {
+				"navigationBarTitleText": "驾驶舱",
+				"enablePullDownRefresh": false
+			}
+		},
+
 		{
 			"path": "pages/user/center",
 			"style": {
@@ -940,6 +949,12 @@
 			// 	"text": "圈子"
 			// },
 			{
+				"pagePath": "pages/statistics/index",
+				"iconPath": "static/img/tabbar-02.png",
+				"selectedIconPath": "static/img/tabbar-02-selected.png",
+				"text": "驾驶舱"
+			},
+			{
 				"pagePath": "pages/user/center",
 				"iconPath": "static/img/tabbar-03.png",
 				"selectedIconPath": "static/img/tabbar-03-selected.png",
diff --git a/pages/home/index.scss b/pages/home/index.scss
new file mode 100644
index 0000000..c2e6217
--- /dev/null
+++ b/pages/home/index.scss
@@ -0,0 +1,212 @@
+page {
+		color: #333;
+		width: 100%;
+		height: 100%;
+		background-color: #f5f5f5;
+	}
+
+	.layout {
+		width: 100%;
+		height: 100%;
+	}
+
+	.top {
+		width: 530rpx;
+
+		.top-text {
+			max-width: 85%;
+			margin-right: 20rpx;
+			white-space: nowrap;
+			overflow: hidden;
+			text-overflow: ellipsis;
+		}
+	}
+
+	.swiper {
+		width: 100%;
+		height: 340rpx;
+		background: linear-gradient(180deg, #017BFC 0%, rgba(1, 123, 252, 0) 100%);
+		padding: 0 30rpx;
+		box-sizing: border-box;
+	}
+
+	.content {
+		padding: 0 30rpx;
+	}
+
+	// .grid {
+	// 	margin-top: 20rpx;
+	// 	margin-bottom: 10rpx;
+	// }
+	.nav {
+		padding: 10rpx 0;
+		margin-bottom: 20rpx;
+		border-radius: 0 0 10rpx 10rpx;
+
+		.nav-item {
+			padding: 10rpx 0;
+		}
+
+		.nav-item-text {
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #585b61;
+		}
+	}
+
+
+	.section {
+		.section-item {
+			width: 216rpx;
+			height: 120rpx;
+			position: relative;
+		}
+
+		.section-item-bg {
+			width: 216rpx;
+			height: 120rpx;
+		}
+
+		.item-box {
+			width: 216rpx;
+			height: 120rpx;
+			position: absolute;
+			top: 0;
+			left: 0;
+			padding: 20rpx 20rpx 0;
+			box-sizing: border-box;
+		}
+	}
+
+
+
+	.block {
+		.block-item {
+			position: relative;
+
+		}
+
+		.block-item,
+		.block-item-bg,
+		.block-item-box {
+			width: 220rpx;
+			height: 150rpx;
+			border-radius: 10rpx;
+		}
+
+		.block-item-box {
+			padding: 0 12rpx;
+			box-sizing: border-box;
+			position: absolute;
+			top: 0;
+			left: 0;
+
+		}
+		.badge{
+			position:absolute;
+			top:10rpx;
+			right:20rpx
+		}
+
+		.item-text {
+			height: 65rpx;
+			margin-left: 20rpx;
+			color: #fff;
+		}
+
+		.opacity {
+			opacity: .6;
+		}
+	}
+
+	.cell {
+		padding: 0 16rpx;
+		height: 64rpx;
+		border-radius: 8rpx;
+		margin-right: 20rpx;
+		margin-top: 30rpx;
+
+		.cell-text {
+			margin-left: 16rpx;
+		}
+	}
+
+	.grid-item {
+		width: 153rpx;
+		height: 153rpx;
+		border-radius: 16rpx 16rpx 16rpx 16rpx;
+		justify-content: center;
+	}
+
+	.row {
+		width: 100%;
+		margin: 30rpx 0;
+
+		.row-item {
+			width: 330rpx;
+			height: 134rpx;
+			box-shadow: 0rpx 10rpx 10rpx 0rpx rgba(0, 0, 0, 0.02);
+			border-radius: 16rpx 16rpx 16rpx 16rpx;
+		}
+	}
+
+	.p-20 {
+		padding:20rpx;
+		border-radius: 10rpx;
+	}
+
+	.pb-20 {
+		padding-bottom: 20rpx;
+	}
+
+	.tabs {
+
+		border-radius: 10rpx 10rpx 0 0;
+		// margin-bottom: 4rpx;
+		background-color: rgb(236, 244, 255);
+
+		.tabs-item {
+			// padding: 12rpx 24rpx;
+			flex: 1;
+			text-align: center;
+			padding: 20rpx 0;
+		}
+
+		.tabs-active {
+			border-radius: 10rpx 10rpx 0 0;
+			// background-color: rgb(236, 244, 255);
+			// color: #017BFC;
+			// color: rgb(236, 244, 255);
+			// background-color: #017BFC;
+			background-color: #fff;
+			font-weight: bold;
+		}
+	}
+
+	.menu-tabs {
+		padding: 20rpx 0;
+	}
+
+	.menu {
+		border-radius: 0 0 10rpx 10rpx;
+	}
+
+	/deep/.u-cell__title-text {
+		font-size: 32rpx;
+		font-weight: bold;
+		color: #000;
+		position: relative;
+		
+	}
+	/deep/.u-cell__title-text::before{
+		content: '';
+		width: 6rpx;
+		height: 28rpx;
+		background-color: #017BFC;
+		// margin-right: 14rpx;
+		position:absolute;
+		left:-20rpx;
+		top:6rpx;
+		display: inline-block;
+	}
+	
\ No newline at end of file
diff --git a/pages/home/index.vue b/pages/home/index.vue
index fe3706b..7704179 100644
--- a/pages/home/index.vue
+++ b/pages/home/index.vue
@@ -1,14 +1,5 @@
 <template>
 	<view class="layout">
-		<!-- <u-navbar height="48" :autoBack="false" safeAreaInsetTop placeholder @leftClick="selectBoxShow = !selectBoxShow"
-			bgColor="#017BFC">
-			<view slot="left" class="top flex">
-				<view class="top-text f-30 fw c-ff">{{curSelectSite.name?curSelectSite.name:'暂无绑定' +roleTypeName+'信息'}}
-				</view>
-				<u-icon name="arrow-down" color="#fff"></u-icon>
-			</view>
-		</u-navbar> -->
-
 		<u-navbar height="48" :autoBack="false" safeAreaInsetTop placeholder @leftClick="navToSelectSite()"
 			bgColor="#017BFC">
 			<view slot="left" class="top flex">
@@ -17,7 +8,6 @@
 				<u-icon name="arrow-right" color="#fff"></u-icon>
 			</view>
 		</u-navbar>
-
 		<view class="swiper">
 			<u-swiper :list="bannerList" height="320rpx" radius="10"></u-swiper>
 		</view>
@@ -41,33 +31,49 @@
 					<view @click="scan" class="block-item">
 						<image class="block-item-bg" src="/static/icon/nav-bg-04.png" mode="aspectFill" />
 						<view class="block-item-box flex a-i-c ">
-							<u-icon name="/static/icon/nav-05.png" width="65rpx" height="65rpx"></u-icon>
+							<u-icon name="/static/icon/nav-05.png" width="68rpx" height="68rpx"></u-icon>
 							<view class="item-text flex f-d-c j-c-s-b">
-								<text class="f-24 fw">扫一扫</text>
-								<text class="f-22 opacity">场所采集</text>
+								<text class="f-26 fw">扫一扫</text>
+								<text class="f-24 opacity">场所采集</text>
 							</view>
 						</view>
 					</view>
 					<view class="block-item" @click="navigatorPage('/subPackage/user/clockIn/index')">
 						<image class="block-item-bg" src="/static/icon/nav-bg-05.png" mode="aspectFill" />
 						<view class="block-item-box flex a-i-c">
-							<u-icon name="/static/icon/nav-06.png" width="65rpx" height="65rpx"></u-icon>
+							<u-icon name="/static/icon/nav-06.png" width="68rpx" height="68rpx"></u-icon>
 							<view class="item-text flex f-d-c j-c-s-b">
-								<text class="f-24 fw">打卡登记</text>
-								<text class="f-22 opacity">在线打卡</text>
+								<text class="f-26 fw">打卡登记</text>
+								<text class="f-24 opacity">在线打卡</text>
 							</view>
 						</view>
 					</view>
-					<view class="block-item" @click="navigatorPage('/subPackage/statistics/index')">
+					<view class="block-item" @click="navigatorPage('/subPackage/statistics/index')"
+						v-if="roleType == 1">
 						<image class="block-item-bg" src="/static/icon/nav-bg-04.png" mode="aspectFill" />
 						<view class="block-item-box flex a-i-c">
-							<u-icon name="/static/icon/nav-12.png" width="65rpx" height="65rpx"></u-icon>
+							<u-icon name="/static/icon/nav-12.png" width="68rpx" height="68rpx"></u-icon>
 							<view class="item-text flex f-d-c j-c-s-b">
-								<text class="f-24 fw">驾驶舱</text>
-								<text class="f-22 opacity">数据统计</text>
+								<text class="f-26 fw">驾驶舱</text>
+								<text class="f-24 opacity">数据统计</text>
 							</view>
 						</view>
 					</view>
+
+					<view class="block-item" @click="navigatorPage('/subPackage/task/index')" v-if="roleType == 3">
+						<image class="block-item-bg" src="/static/icon/nav-bg-04.png" mode="aspectFill" />
+						<view class="block-item-box flex a-i-c">
+							<u-icon name="/static/icon/nav-12.png" width="68rpx" height="68rpx"></u-icon>
+							<view class="item-text flex f-d-c j-c-s-b">
+								<text class="f-26 fw">待办事项</text>
+								<text class="f-24 opacity">我的任务</text>
+							</view>
+							<view class="badge" v-if="taskCount > 0">
+								<u-badge type="error" max="99" :value="taskCount"></u-badge>
+							</view>
+						</view>
+					</view>
+
 				</view>
 
 				<!-- <view class="nav bgc-ff" v-if="liveList.length || roleType == 2">
@@ -92,29 +98,15 @@
 				</view> -->
 
 
-
 				<view class="" v-if="roleType == 2 &&  curSelectSite.addressType == 1">
 					<view class="tabs flex">
-						<!-- <u-tabs :list="tabs"  @click="changeTabs" :current="tabIndex" lineColor="#ecf4ff" :activeStyle="{
-                		            color: '#017BFC',
-                		            fontWeight: 'bold',
-                					backgroundColor:'#ecf4ff',
-                					borderRadius:'14rpx',
-                					padding:'14rpx 28rpx',
-                					transition:'background .2s'
-                		        }" :itemStyle="{fontSize:'28rpx'}"></u-tabs> -->
-
-
 						<view class="tabs-item" :class="k == tabIndex?'tabs-active':''" v-for="(i,k) in tabs"
 							@click="changeTabs(k)">
 							{{i.name}}
 						</view>
-
-
 					</view>
 
 					<view class="nav bgc-ff">
-
 						<u-grid :border="false" col="4">
 							<u-grid-item @click="navigatorPage(i.path)" v-for="(i,k) in tabs[tabIndex].list" :key="k">
 								<view class="nav-item flex f-d-c a-i-c">
@@ -126,16 +118,12 @@
 					</view>
 				</view>
 
-
 				<view v-if="roleType == 2 && curSelectSite.addressType == 2">
 					<view class="tabs flex">
-
 						<view class="tabs-item" :class="k == tabIndex?'tabs-active':''" v-for="(i,k) in tabs2"
 							@click="changeTabs(k)">
 							{{i.name}}
 						</view>
-
-
 					</view>
 					<view class="nav bgc-ff">
 						<u-grid :border="false" col="4">
@@ -145,7 +133,6 @@
 									<text class="nav-item-text f-26  mt-10">{{i.text}}</text>
 								</view>
 							</u-grid-item>
-
 							<block v-if="tabIndex == 1">
 								<u-grid-item @click="navigatorPage('/subPackage/label/form')"
 									v-if="curSelectSite.isFront == 1">
@@ -178,41 +165,27 @@
 			</view>
 
 
-			<view class="bgc-ff p-20 mb-20 pb-20" v-if="isShowHouse">
-				<caption-row title="楼盘表" />
-				<view class="flex flex-wrap">
-					<view class="cell bgc-main flex a-i-c" v-for="(item, index) in houseDataList.slice(0, 6)"
-						@click.native="pushPage(item)" :key="index">
-						<u-icon name="/static/icon/floor.png" width="32rpx" height="32rpx"></u-icon>
-						<text class="cell-text f-26 c-ff">{{item.title}}</text>
-					</view>
-				</view>
+			<view class="bgc-ff p-20 mb-20" v-if="isShowHouse">
+				<u-collapse accordion :border="false">
+					<u-collapse-item name="1" title="楼盘表"></uni-title>
+						<view class="flex flex-wrap">
+							<view class="cell bgc-main flex a-i-c" v-for="(item, index) in houseDataList.slice(0, 6)"
+								@click.native="pushPage(item)" :key="index">
+								<u-icon name="/static/icon/floor.png" width="32rpx" height="32rpx"></u-icon>
+								<text class="cell-text f-26 c-ff">{{item.title}}</text>
+							</view>
+						</view>
+					</u-collapse-item>
+				</u-collapse>
 			</view>
 
 			<view class=" mb-20 " v-if="sectionList.length">
-				<!-- <view class="menu-tabs">
-					<u-tabs :list="sectionList" @click="changeMenuTabs" :current="menuTabIndex" lineColor="#ecf4ff"
-						:activeStyle="{
-			     	            color: '#017BFC',
-			     	            fontWeight: 'bold',
-			     				backgroundColor:'#ecf4ff',
-			     				borderRadius:'14rpx',
-			     				padding:'14rpx 28rpx',
-			     				transition:'background .2s'
-			     	        }" :itemStyle="{fontSize:'28rpx'}" :scrollable="false"></u-tabs>
-				</view> -->
-
-
 				<view class="tabs flex">
-
 					<view class="tabs-item" :class="k == menuTabIndex?'tabs-active':''" v-for="(i,k) in sectionList"
 						@click="changeMenuTabs(k)">
 						{{i.name}}
 					</view>
-
-
 				</view>
-
 				<view class="menu bgc-ff p-20 pb-20">
 					<u-grid :border="false" col="4">
 						<u-grid-item @click="navigatorPage(item.path)"
@@ -225,11 +198,7 @@
 						</u-grid-item>
 					</u-grid>
 				</view>
-
-
 			</view>
-
-
 
 
 			<!-- <view class="bgc-ff mb-20 p-20 pb-20" v-if="jobList.length">
@@ -302,7 +271,9 @@
 	import {
 		getPublicSecurityDetail
 	} from "@/api/grid/grid.js"
-
+	import {
+		getCountTypeNumber
+	} from "@/api/task/task.js"
 	export default {
 		components: {
 			noticeList,
@@ -515,7 +486,8 @@
 				tabIndex: 0,
 				isBailer: false, //是否取保候审人员
 				sectionList: [],
-				menuTabIndex: 0
+				menuTabIndex: 0,
+				taskCount: 0
 
 			}
 		},
@@ -612,6 +584,23 @@
 
 		methods: {
 
+			//获取待办事项数量
+			getTaskCount() {
+				if (uni.getStorageSync('activeRole').roleAlias === 'wgy') {
+					roleType = 1
+				}
+				getCountTypeNumber({
+					neiCode: this.curSelectSite.id,
+					roleType: this.selectRole.roleName == "网格员" ? 1 : 0
+				}).then(res => {
+					console.log(res);
+					let data = res.data;
+					let count = 0;
+					count += Number(data.bqsj) + Number(data.xfzc) + Number(data.xfyhzg) + Number(data.qbhs);
+					this.taskCount = count
+				})
+			},
+
 
 			changeTabs(e) {
 				// console.log(item);
@@ -632,6 +621,7 @@
 				this.getBanner();
 				this.getSiteList()
 				this.getNoticeList()
+				this.getTaskCount();
 			},
 
 			getBanner() {
@@ -728,7 +718,6 @@
 
 			buildSiteColumn(dataList, index) {
 				if (dataList.length > 0) {
-
 					this.siteColumns[index] = dataList
 					if (dataList[0].children && dataList[0].children.length > 0) {
 						this.curSelectSite = dataList[0].children[0];
@@ -741,7 +730,6 @@
 					uni.setStorageSync("curHouseCode", this.curSelectSite.id)
 				}
 			},
-
 
 			// 获取楼盘
 			async getHouseDataList(code) {
@@ -789,6 +777,7 @@
 				this.curHouseCode = e.value[0].id
 				console.log("curSite=>", this.curSelectSite);
 			},
+
 			getMenu(menuName) {
 				let list = [];
 				for (let i of this.menuList) {
@@ -808,6 +797,7 @@
 				this.liveList = this.setLiveMenu(this.hasMenu('生活'));
 				this.jobList = this.hasMenu('工作台')
 				this.sectionList = this.hasMenu('首页菜单')
+				let taskMenuList = this.hasMenu('待办事项菜单')
 				if (this.menuList.length) {
 					this.getContactMenu();
 					this.getHouseMenu();
@@ -824,19 +814,35 @@
 					// } else {
 					// 	uni.setStorageSync("taskMenu", []);
 					// }
-					if (this.sectionList.length) {
-						let list = this.sectionList.filter(item => item.name == "日常办公");
-						let taskList = list[0].children.filter(item => item.name == "待办事项");
-						console.log("taskList===>", taskList)
-						if (taskList.length) {
-							uni.setStorageSync("taskMenu", taskList[0].children);
+
+					if (this.roleType == 1) {
+						if (this.sectionList.length) {
+							let list = this.sectionList.filter(item => item.name == "日常办公");
+							let taskList = list[0].children.filter(item => item.name == "待办事项");
+							console.log("taskList===>", taskList)
+							if (taskList.length) {
+								uni.setStorageSync("taskMenu", taskList[0].children);
+							} else {
+								uni.setStorageSync("taskMenu", []);
+							}
 						} else {
 							uni.setStorageSync("taskMenu", []);
 						}
-					} else {
-						uni.setStorageSync("taskMenu", []);
+					}
+
+					if (this.roleType == 3) {
+						console.log("taskMenuList==>", taskMenuList);
+						if (taskMenuList.length) {
+							uni.setStorageSync("taskMenu", taskMenuList);
+						} else {
+							uni.setStorageSync("taskMenu", []);
+						}
 					}
 				}, 200)
+
+
+
+
 			},
 
 			getContactMenu() {
@@ -1109,191 +1115,5 @@
 </script>
 
 <style lang="scss">
-	page {
-		color: #333;
-		width: 100%;
-		height: 100%;
-		background-color: #f5f5f5;
-	}
-
-	.layout {
-		width: 100%;
-		height: 100%;
-	}
-
-	.top {
-		width: 530rpx;
-
-		.top-text {
-			max-width: 85%;
-			margin-right: 20rpx;
-			white-space: nowrap;
-			overflow: hidden;
-			text-overflow: ellipsis;
-		}
-	}
-
-	.swiper {
-		width: 100%;
-		height: 340rpx;
-		background: linear-gradient(180deg, #017BFC 0%, rgba(1, 123, 252, 0) 100%);
-		padding: 0 30rpx;
-		box-sizing: border-box;
-	}
-
-	.content {
-		padding: 0 30rpx;
-	}
-
-	// .grid {
-	// 	margin-top: 20rpx;
-	// 	margin-bottom: 10rpx;
-	// }
-	.nav {
-		padding: 10rpx 0;
-		margin-bottom: 20rpx;
-		border-radius: 0 0 10rpx 10rpx;
-
-		.nav-item {
-			padding: 10rpx 0;
-		}
-
-		.nav-item-text {
-			font-family: PingFang SC;
-			font-weight: 500;
-			color: #585b61;
-		}
-	}
-
-
-	.section {
-		.section-item {
-			width: 216rpx;
-			height: 120rpx;
-			position: relative;
-		}
-
-		.section-item-bg {
-			width: 216rpx;
-			height: 120rpx;
-		}
-
-		.item-box {
-			width: 216rpx;
-			height: 120rpx;
-			position: absolute;
-			top: 0;
-			left: 0;
-			padding: 20rpx 20rpx 0;
-			box-sizing: border-box;
-		}
-	}
-
-
-
-	.block {
-		.block-item {
-			position: relative;
-
-		}
-
-		.block-item,
-		.block-item-bg,
-		.block-item-box {
-			width: 220rpx;
-			height: 150rpx;
-			border-radius: 10rpx;
-		}
-
-		.block-item-box {
-			padding: 0 12rpx;
-			box-sizing: border-box;
-			position: absolute;
-			top: 0;
-			left: 0;
-
-		}
-
-		.item-text {
-			height: 65rpx;
-			margin-left: 20rpx;
-			color: #fff;
-		}
-
-		.opacity {
-			opacity: .4;
-		}
-	}
-
-	.cell {
-		padding: 0 16rpx;
-		height: 64rpx;
-		border-radius: 8rpx;
-		margin-right: 20rpx;
-		margin-top: 30rpx;
-
-		.cell-text {
-			margin-left: 16rpx;
-		}
-	}
-
-	.grid-item {
-		width: 153rpx;
-		height: 153rpx;
-		border-radius: 16rpx 16rpx 16rpx 16rpx;
-		justify-content: center;
-	}
-
-	.row {
-		width: 100%;
-		margin: 30rpx 0;
-
-		.row-item {
-			width: 330rpx;
-			height: 134rpx;
-			box-shadow: 0rpx 10rpx 10rpx 0rpx rgba(0, 0, 0, 0.02);
-			border-radius: 16rpx 16rpx 16rpx 16rpx;
-		}
-	}
-
-	.p-20 {
-		padding: 0 20rpx;
-		border-radius: 10rpx;
-	}
-
-	.pb-20 {
-		padding-bottom: 20rpx;
-	}
-
-	.tabs {
-
-		border-radius: 10rpx 10rpx 0 0;
-		// margin-bottom: 4rpx;
-		background-color: rgb(236, 244, 255);
-
-		.tabs-item {
-			// padding: 12rpx 24rpx;
-			flex: 1;
-			text-align: center;
-			padding: 20rpx 0;
-		}
-
-		.tabs-active {
-			border-radius: 10rpx 10rpx 0 0;
-			// background-color: rgb(236, 244, 255);
-			// color: #017BFC;
-			// color: rgb(236, 244, 255);
-			// background-color: #017BFC;
-			background-color: #fff;
-			font-weight: bold;
-		}
-	}
-
-	.menu-tabs {
-		padding: 20rpx 0;
-	}
-
-	.menu {
-		border-radius: 0 0 10rpx 10rpx;
-	}
+	@import "./index.scss";
 </style>
\ No newline at end of file
diff --git a/pages/statistics/index.vue b/pages/statistics/index.vue
new file mode 100644
index 0000000..e22ec56
--- /dev/null
+++ b/pages/statistics/index.vue
@@ -0,0 +1,458 @@
+<template>
+	<view class="container">
+		<view class="section">
+			<caption-row title="社区概况"></caption-row>
+			<view class="cell flex j-c-s-b flex-wrap ">
+				<view class="cell-item">
+					<text class="f-28 mb-20 c-99">楼栋数(幢)</text>
+					<text class="f-30 fw">{{houseData.result1}}</text>
+					<image class="cell-item-icon" src="/static/icon/statistics-nav-01.png" mode="aspectFill"></image>
+				</view>
+				<view class="cell-item">
+					<text class="f-28 mb-20 c-99">房屋数(套)</text>
+					<text class="f-30 fw">{{houseData.result2}}</text>
+					<image class="cell-item-icon" src="/static/icon/statistics-nav-02.png" mode="aspectFill"></image>
+				</view>
+				<view class="cell-item">
+					<text class="f-28 mb-20 c-99">住户数(人)</text>
+					<text class="f-30 fw">{{houseData.result3}}</text>
+					<image class="cell-item-icon" src="/static/icon/statistics-nav-03.png" mode="aspectFill"></image>
+				</view>
+				<view class="cell-item">
+					<text class="f-28 mb-20 c-99">单元数</text>
+					<text class="f-30 fw">{{houseData.result4}}</text>
+					<image class="cell-item-icon" src="/static/icon/statistics-nav-01.png" mode="aspectFill"></image>
+				</view>
+			</view>
+		</view>
+
+		<view class="">
+			<caption-row title="共治力量"></caption-row>
+			<view class="menu bgc-ff flex flex-wrap">
+				<view class="menu-item flex f-d-c a-i-c">
+					<text class="c-main f-32 fw mb-20">0</text>
+					<text class="f-28">党员</text>
+				</view>
+				<view class="menu-item flex f-d-c a-i-c">
+					<text class="c-main f-32 fw mb-20">0</text>
+					<text class="f-28">党组织</text>
+				</view>
+				<view class="menu-item flex f-d-c a-i-c">
+					<text class="c-main f-32 fw mb-20">{{gridData.gridStatistics}}</text>
+					<text class="f-28">网格员</text>
+				</view>
+				<!-- 	<view class="menu-item flex f-d-c a-i-c">
+					<text class="c-main f-32 fw mb-20">0</text>
+					<text class="f-28">社工</text>
+				</view> -->
+				<view class="menu-item flex f-d-c a-i-c">
+					<text class="c-main f-32 fw mb-20">{{gridData.companyStatistics}}</text>
+					<text class="f-28">物业人员</text>
+				</view>
+				<view class="menu-item flex f-d-c a-i-c">
+					<text class="c-main f-32 fw mb-20">{{gridData.ownersStatistics}}</text>
+					<text class="f-28">业委会</text>
+				</view>
+				<!-- <view class="menu-item flex f-d-c a-i-c">
+					<text class="c-main f-32 fw mb-20">0</text>
+					<text class="f-28">群团组织</text>
+				</view> -->
+			</view>
+		</view>
+
+		<view class="">
+			<caption-row title="人员画像"></caption-row>
+			<view class="bar-charts bgc-ff">
+				<qiun-data-charts type="bar" :opts="opts" :chartData="chartData" />
+			</view>
+			<view class="pie-charts flex bgc-ff">
+				<view class="pie-charts-box flex j-c-c a-i-c">
+					<qiun-data-charts type="pie" :opts="pieOpts" :chartData="sexChartData" />
+				</view>
+				<view class="pie-charts-explain flex f-d-c j-c-c" v-if="sexData.length">
+					<view class="f-32 fw mb-20">性别</view>
+					<view class="flex a-i-c mb-20" v-for="i in sexData">
+						<text class="f-30 fw">{{i.gender}}</text>
+						<text class="f-26">({{i.numbers}})</text>
+					</view>
+				</view>
+			</view>
+
+
+		</view>
+		<view class="event">
+			<caption-row title="社区事件"></caption-row>
+			<view class="block bgc-ff mt-20 mb-20">
+				<view class="block-caption f-28 fw">
+					总体统计
+				</view>
+				<view class="grid">
+					<u-grid :border="true">
+						<u-grid-item bgColor="#fff">
+							<view class="grid-item flex f-d-c a-i-c">
+								<text class="f-32 fw c-main mb-20">{{reportData.result}}</text>
+								<text class="f-28">事件总数</text>
+							</view>
+						</u-grid-item>
+						<u-grid-item bgColor="#fff">
+							<view class="grid-item flex f-d-c a-i-c">
+								<text class="f-32 fw c-main mb-20">{{reportData.result1}}</text>
+								<text class="f-28">办理数</text>
+							</view>
+						</u-grid-item>
+						<u-grid-item bgColor="#fff">
+							<view class="grid-item flex f-d-c a-i-c">
+								<text class="f-32 fw c-main mb-20">{{ setNumber(reportData.result2)}}%</text>
+								<text class="f-28">办结比例</text>
+							</view>
+						</u-grid-item>
+					</u-grid>
+				</view>
+			</view>
+			<view class="block bgc-ff">
+				<view class="block-caption f-28 fw">
+					事件分类
+				</view>
+				<view class="flex j-c-s-b a-i-c flex-wrap">
+					<view class="report-item">
+						<image class="report-item-bg" src="/static/icon/nav-bg-08.png" mode="aspectFill"></image>
+						<view class="report-item-inner  flex f-d-c j-c-c ">
+							<text class="f-30 mb-20">{{reportData.result5}}</text>
+							<text class="f-28 ">矛盾纠纷</text>
+						</view>
+					</view>
+					<view class="report-item">
+						<image class="report-item-bg" src="/static/icon/nav-bg-06.png" mode="aspectFill"></image>
+						<view class="report-item-inner  flex f-d-c j-c-c ">
+							<text class="f-30 mb-20">{{reportData.result3}}</text>
+							<text class="f-28 ">公共维护</text>
+						</view>
+					</view>
+					<view class="report-item">
+						<image class="report-item-bg" src="/static/icon/nav-bg-07.png" mode="aspectFill"></image>
+						<view class="report-item-inner  flex f-d-c j-c-c ">
+							<text class="f-30 mb-20">{{reportData.result4}}</text>
+							<text class="f-28 ">居家维修</text>
+						</view>
+					</view>
+					<view class="report-item">
+						<image class="report-item-bg" src="/static/icon/nav-bg-09.png" mode="aspectFill"></image>
+						<view class="report-item-inner  flex f-d-c j-c-c ">
+							<text class="f-30 mb-20">{{reportData.result6}}</text>
+							<text class="f-28 ">投诉举报</text>
+						</view>
+					</view>
+				</view>
+			</view>
+
+		</view>
+
+	</view>
+</template>
+
+<script>
+	import captionRow from "@/components/caption/caption.vue"
+	import * as statisticsModal from "@/api/statistics/statistics.js"
+	export default {
+		components: {
+			captionRow
+		},
+		data() {
+			return {
+				reportData: {},
+				houseData: {},
+				chartData: {},
+				opts: {
+					fontSize: 10,
+					color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4",
+						"#ea7ccc"
+					],
+					padding: [15, 30, 0, 5],
+					enableScroll: false,
+					legend: {},
+					xAxis: {
+						// boundaryGap: "justify",
+						disableGrid: false,
+						min: 0,
+						axisLine: false,
+						// max: 70,
+						fontSize: 10,
+
+					},
+					yAxis: {},
+					extra: {
+						bar: {
+							type: "stack",
+							width: 14,
+							meterBorde: 1,
+							meterFillColor: "#FFFFFF",
+							activeBgColor: "#000000",
+							activeBgOpacity: 0.08,
+							categoryGap: 2
+						}
+					}
+				},
+				sexChartData: {},
+				pieOpts: {
+					color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4",
+						"#ea7ccc"
+					],
+					padding: [5, 5, 5, 5],
+					enableScroll: false,
+					extra: {
+						pie: {
+							customRadius: 60,
+							activeOpacity: 0.5,
+							activeRadius: 10,
+							offsetAngle: 0,
+							labelWidth: 6,
+							border: false,
+							borderWidth: 3,
+							borderColor: "#FFFFFF"
+						}
+					}
+				},
+				gridData: {},
+				sexData: []
+			}
+		},
+
+		onLoad() {
+			this.getHouseHoldData();
+			this.getHouseData();
+			this.getReportData();
+			this.getGridData();
+		},
+
+		methods: {
+
+			getRoleType() {
+				let roleName = uni.getStorageSync("activeRole").roleName;
+				if (roleName == "网格员") {
+					return 1;
+				} else if (roleName == "系统管理员") {
+					return 2
+				} else if (roleName == "民警") {
+					return 3;
+				}
+			},
+
+			setNumber(num) {
+				if (num) {
+					let n = Number(this.reportData.result2) * 100
+					return n.toFixed(2)
+				} else {
+					return num
+				}
+
+			},
+
+
+			getHouseHoldData() {
+				statisticsModal.getHouseholdStatistics({
+					code: this.siteInfo.id,
+					roleType: this.getRoleType()
+				}).then(res => {
+					// this.houseHoldData = res.data;
+					let data = res.data;
+					this.sexData = data.gender;
+					this.setPersonData(data.age)
+					this.setSexData(data.gender)
+				})
+			},
+
+
+			setPersonData(data) {
+				let res = {
+					categories: [],
+					series: [{
+						name: "人数",
+						data: []
+					}]
+				}
+				for (let i of data) {
+					res.categories.push(i.age);
+					res.series[0].data.push(i.number)
+				}
+				this.chartData = JSON.parse(JSON.stringify(res));
+			},
+
+			setSexData(data) {
+				let res = {
+					series: [{
+						data: []
+					}]
+				}
+				for (let i of data) {
+					res.series[0].data.push({
+						name: i.gender,
+						value: i.numbers
+					})
+				}
+				this.sexChartData = JSON.parse(JSON.stringify(res));
+			},
+
+			//获取社区概况数据
+			getHouseData() {
+				statisticsModal.getHouseStatistics({
+					code: this.siteInfo.id,
+					roleType: this.getRoleType()
+				}).then(res => {
+					this.houseData = res.data;
+				})
+			},
+
+			//获取社区事件数据
+			getReportData() {
+				statisticsModal.getReportStatistics({
+					code: this.siteInfo.id,
+					roleType: this.getRoleType()
+				}).then(res => {
+					console.log(res);
+					this.reportData = res.data;
+				})
+			},
+
+			//获取网格物业人员
+			getGridData() {
+				statisticsModal.getGridStatistics({
+					code: this.siteInfo.id,
+					roleType: this.getRoleType()
+				}).then(res => {
+					console.log(res);
+					this.gridData = res.data;
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #f5f5f5;
+	}
+
+	.container {
+		padding: 0 20rpx;
+	}
+
+	// .section {
+	// 	padding: 0 20rpx;
+	// }
+
+	.cell {
+		padding: 20rpx 0;
+
+		.cell-item {
+			// width: 220rpx;
+			width: calc(50% - 20rpx);
+			height: 190rpx;
+			border-radius: 10rpx;
+			margin-bottom: 20rpx;
+			display: flex;
+			flex-direction: column;
+			justify-content: center;
+			background-color: #fff;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+			position: relative;
+			box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(0, 0, 0, 0.1);
+		}
+
+		.cell-item-icon {
+			width: 64rpx;
+			height: 64rpx;
+			position: absolute;
+			right: 20rpx;
+			top: 20rpx;
+		}
+	}
+
+	.menu {
+		// padding: 20rpx 0;
+		margin-top: 20rpx;
+
+		.menu-item {
+			width: 33%;
+			padding: 20rpx 0;
+			border-right: 1px solid #dadbde;
+		}
+
+		.menu-item:nth-child(3n) {
+			border-right: none;
+		}
+
+		.menu-item:nth-child(-n + 3) {
+			border-bottom: 1px solid #dadbde;
+		}
+	}
+
+	.event {
+		padding: 0 0 20rpx;
+	}
+
+	.block {
+		padding: 20rpx;
+		border-radius: 10rpx;
+
+		.block-caption {
+			padding: 20rpx 0;
+		}
+
+		.grid {
+			box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(0, 0, 0, 0.1);
+		}
+
+		.grid-item {
+			padding: 20px 0;
+		}
+	}
+
+	.report-item {
+		position: relative;
+		margin-bottom: 10rpx;
+	}
+
+	.report-item,
+	.report-item-bg,
+	.report-item-inner {
+		width: 330rpx;
+		height: 167rpx;
+		border-radius: 10rpx;
+	}
+
+	.report-item-inner {
+		position: absolute;
+		top: 0;
+		left: 0;
+		padding: 0 20rpx;
+		box-sizing: border-box;
+		// background-color:#fff;
+	}
+
+	.bar-charts,
+	.pie-charts {
+		width: 100%;
+		height: 300px;
+		border-radius: 10rpx;
+		padding: 0 20rpx;
+		box-sizing: border-box;
+	}
+
+	.bar-charts {
+		margin: 20rpx 0;
+	}
+
+	// .pie-charts-box,.pie-charts-explain{
+	// 	width:50%;
+	// }
+	.pie-charts-box {
+		width: 70%;
+	}
+
+	.pie-charts-explain {
+		width: 30%;
+		padding-left: 40rpx;
+		box-sizing: border-box;
+	}
+</style>
\ No newline at end of file
diff --git a/subPackage/house/family/index.vue b/subPackage/house/family/index.vue
index 85ad4b1..0f6023f 100644
--- a/subPackage/house/family/index.vue
+++ b/subPackage/house/family/index.vue
@@ -93,9 +93,17 @@
 											<text class="proprietor-box">
 												{{scItem.realName || ""}}
 											</text>
-											<text class="r floor-box">
-												{{scItem.houseNo}}
-											</text>
+											<view>
+												<!-- <view class="label-tag mr-10"
+													:style="{backgroundColor:showHouseColor(scItem.houseColor,'showColor')}">
+													{{showHouseColor(scItem.houseColor,'name')}}
+												</view> -->
+												<text class="r floor-box"
+													:style="{color:showHouseColor(scItem.houseColor,'showColor')}">
+													{{scItem.houseNo}}
+												</text>
+											</view>
+
 										</view>
 										<!-- <view style="margin-top:10rpx;" v-if="scItem.householdLabelList.length">
 											<block v-for="i in scItem.householdLabelList">
@@ -173,7 +181,26 @@
 				unitName: "", //单元名称
 				houseData: {},
 				shopType: "", //商铺类型    1 自建房商铺   2 企业商铺
-				startTime: ""
+				startTime: "",
+				labelItemList: [{
+						name: "闲置",
+						showColor: '#30D17C',
+						color: "green"
+					},
+
+					{
+
+
+						name: "出租",
+						showColor: '#FFCC00',
+						color: "yellow"
+					},
+					{
+						name: "自住",
+						showColor: '#0099FF',
+						color: "blue"
+					},
+				]
 			}
 		},
 		onLoad(e) {
@@ -220,6 +247,17 @@
 			this.getBuildingList()
 		},
 		methods: {
+
+
+			showHouseColor(color, key) {
+				for (let i of this.labelItemList) {
+					if (i.color == color) {
+
+						return i[key]
+					}
+				}
+			},
+
 			async getBuildingList() {
 				uni.showLoading({
 					title: "正在加载"
@@ -340,8 +378,9 @@
 					}
 
 					.floor-box {
-						color: #017BFC;
-						font-weight: 700;
+						// color: #017BFC;
+						color: #333;
+						// font-weight: 700;	
 					}
 				}
 
diff --git a/subPackage/house/member/add.vue b/subPackage/house/member/add.vue
index 99fdbe7..10c5266 100644
--- a/subPackage/house/member/add.vue
+++ b/subPackage/house/member/add.vue
@@ -2,8 +2,16 @@
 	<view class="container">
 		<view class="main">
 			<view class="content">
+				<view class="top flex j-c-s-b a-i-c bgc-ff" @click="onScan()" v-if="!currentId">
+					<view class="flex a-i-c">
+						<u-icon name="/static/icon/nav-05.png" width="90rpx" height="90rpx"></u-icon>
+						<text class="f-28 ml-10">扫码获取信息</text>
+					</view>
+					<u-icon name="arrow-right" size="20"></u-icon>
+				</view>
 				<u-form labelWidth="70" :model="form" :rules="rules" ref="form">
 					<view class="event-info">
+
 						<view class="box-title">
 							<box-title title="基础信息"></box-title>
 						</view>
@@ -29,6 +37,13 @@
 							<u--input border="none" v-model="form.name" placeholder="请输入姓名">
 							</u--input>
 						</u-form-item>
+						<u-form-item @click="showSelectBus('性别','gender')" class="form-item" labelWidth="100" label="性别"
+							prop="gender">
+							<u--input border="none" v-model="selectDefaultName.gender" disabled disabledColor="#ffffff"
+								placeholder="请选择性别">
+							</u--input>
+							<u-icon slot="right" name="arrow-right"></u-icon>
+						</u-form-item>
 						<u-form-item @click="showSelectBus('证件类型','cardType')" class="form-item" labelWidth="100"
 							label="证件类型" prop="gender">
 							<u--input border="none" v-model="selectDefaultName.cardType" disabled
@@ -47,6 +62,49 @@
 							<u--input border="none" v-model="form.cardNo" placeholder="请输入证件号码">
 							</u--input>
 						</u-form-item>
+						<u-form-item class="form-item" labelWidth="100" label="手机号码" prop="phoneNumber" required>
+							<u--input border="none" type="number" v-model="form.phoneNumber" placeholder="请输入手机号码">
+							</u--input>
+						</u-form-item>
+						<u-form-item class="form-item" labelWidth="100" label="户籍地区" prop="residentAdcode">
+							<view class="region">
+								<picker mode="region" :value="residentadDefault" @change="changeHouseholdRegion">
+									<view class="region-picker c-c0" v-if="!residentad">
+										请选择户籍地区
+									</view>
+									<view class="region-picker c-30" v-if="residentad">
+										{{residentad}}
+									</view>
+								</picker>
+							</view>
+							<u-icon slot="right" name="arrow-right"></u-icon>
+						</u-form-item>
+						<u-form-item @click="showSelectBus('民族','ethnicity')" class="form-item" labelWidth="100"
+							label="民族" prop="ethnicity">
+							<u--input border="none" v-model="selectDefaultName.ethnicity" disabled
+								disabledColor="#ffffff" placeholder="请选择民族">
+							</u--input>
+							<u-icon slot="right" name="arrow-right"></u-icon>
+						</u-form-item>
+						<u-form-item @click="showSelectBus('是否党员','partyEmber')" class="form-item" labelWidth="100"
+							label="是否党员" prop="partyEmber">
+							<u--input border="none" v-model="selectDefaultName.partyEmber" disabled
+								disabledColor="#ffffff" placeholder="请选择是否党员">
+							</u--input>
+							<u-icon slot="right" name="arrow-right"></u-icon>
+						</u-form-item>
+						<u-form-item class="form-item" labelWidth="100" label="职业类别" prop="occupation ">
+							<u--input border="none" v-model="form.occupation " placeholder="请输入职业类别">
+							</u--input>
+						</u-form-item>
+						<u-form-item @click="showSelectBus('婚姻状态','maritalStatus')" class="form-item" labelWidth="100"
+							label="婚姻状态" prop="maritalStatus">
+							<u--input border="none" v-model="selectDefaultName.maritalStatus" disabled
+								disabledColor="#ffffff" placeholder="请选择婚姻状态">
+							</u--input>
+							<u-icon slot="right" name="arrow-right"></u-icon>
+						</u-form-item>
+
 
 						<u-form-item v-if="form.cardType && form.cardType != 111" class="form-item" labelWidth="100"
 							label="出生日期" prop="birthday" @click="showSelectBirthday = true">
@@ -55,18 +113,9 @@
 							</u--input>
 							<u-icon slot="right" name="arrow-right"></u-icon>
 						</u-form-item>
-						<u-form-item @click="showSelectBus('性别','gender')" class="form-item" labelWidth="100" label="性别"
-							prop="gender">
-							<u--input border="none" v-model="selectDefaultName.gender" disabled disabledColor="#ffffff"
-								placeholder="请选择性别">
-							</u--input>
-							<u-icon slot="right" name="arrow-right"></u-icon>
-						</u-form-item>
 
-						<u-form-item class="form-item" labelWidth="100" label="手机号码" prop="phoneNumber" required>
-							<u--input border="none" type="number" v-model="form.phoneNumber" placeholder="请输入手机号码">
-							</u--input>
-						</u-form-item>
+
+
 
 						<u-form-item class="form-item" labelWidth="100" label="其它联系方式" prop="otherContact">
 							<u--input border="none" v-model="form.otherContact" placeholder="请输入其它联系方式">
@@ -127,19 +176,6 @@
 						</u-form-item>
 
 
-						<u-form-item class="form-item" labelWidth="100" label="户籍地区" prop="residentAdcode">
-							<view class="region">
-								<picker mode="region" :value="residentadDefault" @change="changeHouseholdRegion">
-									<view class="region-picker c-c0" v-if="!residentad">
-										请选择户籍地区
-									</view>
-									<view class="region-picker c-30" v-if="residentad">
-										{{residentad}}
-									</view>
-								</picker>
-							</view>
-							<u-icon slot="right" name="arrow-right"></u-icon>
-						</u-form-item>
 
 
 
@@ -167,13 +203,7 @@
 						</u-form-item>
 
 
-						<u-form-item @click="showSelectBus('民族','ethnicity')" class="form-item" labelWidth="100"
-							label="民族" prop="ethnicity">
-							<u--input border="none" v-model="selectDefaultName.ethnicity" disabled
-								disabledColor="#ffffff" placeholder="请选择民族">
-							</u--input>
-							<u-icon slot="right" name="arrow-right"></u-icon>
-						</u-form-item>
+
 
 						<u-form-item @click="showSelectBus('学历','education')" class="form-item" labelWidth="100"
 							label="学历" prop="education">
@@ -183,17 +213,8 @@
 							<u-icon slot="right" name="arrow-right"></u-icon>
 						</u-form-item>
 
-						<u-form-item @click="showSelectBus('是否党员','partyEmber')" class="form-item" labelWidth="100"
-							label="是否党员" prop="partyEmber">
-							<u--input border="none" v-model="selectDefaultName.partyEmber" disabled
-								disabledColor="#ffffff" placeholder="请选择是否党员">
-							</u--input>
-							<u-icon slot="right" name="arrow-right"></u-icon>
-						</u-form-item>
-						<u-form-item class="form-item" labelWidth="100" label="职业类别" prop="occupation ">
-							<u--input border="none" v-model="form.occupation " placeholder="请输入职业类别">
-							</u--input>
-						</u-form-item>
+
+
 						<u-form-item class="form-item" labelWidth="100" label="工作单位" prop="employer">
 							<u--input border="none" v-model="form.employer" placeholder="请输入工作单位">
 							</u--input>
@@ -210,13 +231,7 @@
 							<u-icon slot="right" name="arrow-right"></u-icon>
 						</u-form-item>
 
-						<u-form-item @click="showSelectBus('婚姻状态','maritalStatus')" class="form-item" labelWidth="100"
-							label="婚姻状态" prop="maritalStatus">
-							<u--input border="none" v-model="selectDefaultName.maritalStatus" disabled
-								disabledColor="#ffffff" placeholder="请选择婚姻状态">
-							</u--input>
-							<u-icon slot="right" name="arrow-right"></u-icon>
-						</u-form-item>
+
 						<u-form-item class="form-item" labelWidth="100" label="宗教信仰" prop="religiousBelief ">
 							<u--input border="none" v-model="form.religiousBelief" placeholder="请输入宗教信仰">
 							</u--input>
@@ -1002,6 +1017,7 @@
 				// height: 0;
 				// flex: 1;
 				// overflow-y: auto;
+				padding: 20rpx 0 0;
 				padding-bottom: 160rpx;
 				// padding-bottom: 36rpx;
 			}
@@ -1140,4 +1156,10 @@
 			top: 20rpx;
 		}
 	}
+
+	.top {
+		padding: 20rpx;
+		marign: 20rpx 30rpx;
+		border-radius: 8rpx;
+	}
 </style>
\ No newline at end of file
diff --git a/subPackage/house/roomControl/index.vue b/subPackage/house/roomControl/index.vue
index dc17363..fe62d02 100644
--- a/subPackage/house/roomControl/index.vue
+++ b/subPackage/house/roomControl/index.vue
@@ -53,11 +53,16 @@
 					<view class=" flex label-btn-box b-c-w" v-if="roleType == 2">
 						<newBoxTitle title="房屋标签"></newBoxTitle>
 						<view class="list">
-							<view v-for="(item, index) in labelBtnList" :key="index">
-								<u-button size="mini" type="primary" :color="$setLabelColor(item.color)"
+							<block v-for="(item, index) in labelBtnList" :key="index">
+								<view @click="handleLabel(index,item)" class="label-item"
+									:class="index == labelIndex?'c-ff':'c-66'"
+									:style="{backgroundColor:(index == labelIndex?item.showColor:'#F5F5F5')}">
+									{{item.name}}
+									<!-- <u-button size="mini" type="primary" :color="$setLabelColor(item.color)"
 									:style="{color: $setLabelColor(item.color) && '#fff'}" :text="item.name"
-									@click="showLabelPopup(item)"></u-button>
-							</view>
+									@click="showLabelPopup(item)"></u-button> -->
+								</view>
+							</block>
 						</view>
 					</view>
 				</u-form>
@@ -108,7 +113,8 @@
 	} from "@/api/label/label.js";
 	import {
 		saveOrUpdateHouseholdLabel,
-		removeHouseholdLabel
+		removeHouseholdLabel,
+		setHouseLabel
 	} from "@/api/house/householdLabel.js";
 	import {
 		getHouseDetail,
@@ -212,6 +218,26 @@
 				roleType: 1,
 				showSelectDate: false,
 				serveTime: Number(new Date()),
+				labelIndex: null,
+				labelItemList: [{
+						name: "闲置",
+						showColor: '#30D17C',
+						color: "green"
+					},
+
+					{
+
+
+						name: "出租",
+						showColor: '#FFCC00',
+						color: "yellow"
+					},
+					{
+						name: "自住",
+						showColor: '#0099FF',
+						color: "blue"
+					},
+				]
 			}
 		},
 		created() {
@@ -268,7 +294,16 @@
 					parentId: 1001
 				}
 				const resLabel = await getLabelListByParentId(paramLabel)
-				this.labelBtnList = resLabel.data
+				let labelItem = resLabel.data;
+				for (let i = 0, ii = labelItem.length; i < ii; i++) {
+					for (let k = 0, kk = this.labelItemList.length; k < kk; k++) {
+						if (labelItem[i].name == this.labelItemList[k].name) {
+							labelItem[i].showColor = this.labelItemList[k].showColor;
+							labelItem[i].color = this.labelItemList[k].color;
+						}
+					}
+				}
+				this.labelBtnList = labelItem;
 				if (null != res.data) {
 					const images = []
 					const {
@@ -295,16 +330,22 @@
 
 
 
-					if (userHouseLabelVOList.length > 0) {
-						that.labelBtnList.forEach(e => {
-							userHouseLabelVOList.forEach(f => {
-								if (Number(e.id) == f.labelId) {
-									e['color'] = f.color
-									e['remark'] = f.remark
-								}
-							})
-						})
+					// if (userHouseLabelVOList.length > 0) {
+					// 	that.labelBtnList.forEach(e => {
+					// 		userHouseLabelVOList.forEach(f => {
+					// 			if (Number(e.id) == f.labelId) {
+					// 				e['color'] = f.color
+					// 				e['remark'] = f.remark
+					// 			}
+					// 		})
+					// 	})
+					// }
+
+					if (userHouseLabelVOList.length) {
+						this.labelIndex = this.labelBtnList.findIndex(item => item.id == userHouseLabelVOList[0]
+							.labelId)
 					}
+
 					this.form = {
 						phone,
 						address,
@@ -445,6 +486,27 @@
 				this.popupShow = false
 			},
 
+			//选择标签
+			handleLabel(index, item) {
+				this.labelIndex = index;
+				let data = {
+					labelId: item.id,
+					color: item.color,
+					lableType: 2,
+					houseCode: this.houseCode
+				}
+				this.setLabelRequest(data)
+			},
+
+			setLabelRequest(data) {
+				setHouseLabel(data).then(res => {
+					if (res.code == 200) {
+						this.$showTips("操作成功", "success")
+					}
+				})
+			}
+
+
 		}
 	}
 </script>
@@ -555,4 +617,13 @@
 			}
 		}
 	}
+
+
+	.label-item {
+		padding: 12rpx;
+		border-radius: 8rpx;
+		font-size: 26rpx;
+		margin-right: 30rpx;
+		text-align: center;
+	}
 </style>
\ No newline at end of file
diff --git a/subPackage/task/index.vue b/subPackage/task/index.vue
index 60dd10c..fa509ef 100644
--- a/subPackage/task/index.vue
+++ b/subPackage/task/index.vue
@@ -129,12 +129,19 @@
 			<view class="nav-item flex j-c-s-b a-i-c" @click="navTo(`${i.path}&from=task`)" v-for="i in securityList">
 				<text class="f-28">{{i.name}}</text>
 				<view class="flex">
+					<block v-if="i.count > 0">
+						<text class="f-28 c-99">待处理</text>
+						<view class="dot bgc-main">{{i.count}}</view>
+					</block>
+					<u-icon name="arrow-right" color="#999"></u-icon>
+				</view>
+				<!-- <view class="flex">
 					<block v-if="bailCount > 0">
 						<text class="f-28 c-99">待处理</text>
 						<view class="dot bgc-main">{{bailCount}}</view>
 					</block>
 					<u-icon name="arrow-right" color="#999"></u-icon>
-				</view>
+				</view> -->
 			</view>
 		</view>
 	</view>
@@ -205,22 +212,29 @@
 								i.count = data.bsbx;
 							} else if (i.name.trim() == "住户审核") {
 								i.count = data.zhsh
-							} else if (i.name.trim() == "二手交易") {
-								i.count = data.bqsj
 							} else if (i.name.trim() == "租户确认") {
 								i.count = data.czsh
 							} else if (i.name.trim() == "走访任务") {
 								i.count = data.zfrw;
 							} else if (i.name.trim() == "走访任务") {
 								i.count = data.zfrw;
-							} else if (i.name.trim() == "消防自查") {
-								i.count = data.xfzc;
-
-							} else if (i.name.trim() == "消防隐患整改") {
-								i.count = data.xfyhzg;
 							}
 						}
-						this.bailCount = data.qbhs
+						// this.bailCount = data.qbhs
+
+						for (let i of this.securityList) {
+							if (i.name.trim() == "二手交易") {
+								i.count = data.bqsj
+							} else if (i.name.trim() == "消防自查") {
+								i.count = data.xfzc;
+							} else if (i.name.trim() == "消防隐患整改") {
+								i.count = data.xfyhzg;
+							} else {
+								i.count = data.qbhs;
+							}
+						}
+
+
 					}
 				})
 			},
diff --git a/subPackage/workbench/components/formItem.vue b/subPackage/workbench/components/formItem.vue
index 477acda..d50e2a4 100644
--- a/subPackage/workbench/components/formItem.vue
+++ b/subPackage/workbench/components/formItem.vue
@@ -4,19 +4,6 @@
 			<u-form-item label="姓名" required prop="name" class="form-item">
 				<u--input v-model="form.name" border="none" placeholder="请填写姓名"></u--input>
 			</u-form-item>
-			<u-form-item label="电话号码" class="form-item">
-				<u--input v-model="form.telephone" border="none" placeholder="请填写电话号码"></u--input>
-			</u-form-item>
-			<u-form-item label="现居住地" class="form-item">
-				<u--input v-model="form.tempAddress" border="none" placeholder="请填写现居住地"></u--input>
-			</u-form-item>
-			<u-form-item label="身份证号" class="form-item">
-				<u--input v-model="form.idCard" type="idcard" border="none" placeholder="请填写身份证号"></u--input>
-			</u-form-item>
-			<u-form-item label="微信号" class="form-item">
-				<u--input v-model="form.wxAccount" border="none" placeholder="请填写微信号"></u--input>
-			</u-form-item>
-
 			<u-form-item @click="showGenderPicker = true" class="form-item" label="性别" prop="legalGender">
 				<u--input border="none" v-model="genderValue" disabled disabledColor="#ffffff" placeholder="请选择性别">
 				</u--input>
@@ -27,12 +14,28 @@
 				</u--input>
 				<u-icon slot="right" name="arrow-right"></u-icon>
 			</u-form-item>
-			<u-form-item label="岗位性质" class="form-item">
-				<u--input v-model="form.jobNature" border="none" placeholder="请填写岗位性质"></u--input>
+			<u-form-item label="身份证号" class="form-item">
+				<u--input v-model="form.idCard" type="idcard" border="none" placeholder="请填写身份证号"></u--input>
 			</u-form-item>
-			<u-form-item label="户籍地址" class="form-item">
+			<u-form-item label="电话号码" class="form-item">
+				<u--input v-model="form.telephone" border="none" placeholder="请填写电话号码"></u--input>
+			</u-form-item>
+			<u-form-item label="现居住地" class="form-item">
+				<u--input v-model="form.tempAddress" border="none" placeholder="请填写现居住地"></u--input>
+			</u-form-item>
+
+			<!-- <u-form-item label="微信号" class="form-item">
+				<u--input v-model="form.wxAccount" border="none" placeholder="请填写微信号"></u--input>
+			</u-form-item> -->
+
+
+
+			<u-form-item label="岗位" class="form-item">
+				<u--input v-model="form.jobNature" border="none" placeholder="请填写岗位"></u--input>
+			</u-form-item>
+			<!-- <u-form-item label="户籍地址" class="form-item">
 				<u--input v-model="form.registeredAddress" border="none" placeholder="请填写户籍地址"></u--input>
-			</u-form-item>
+			</u-form-item> -->
 			<u-form-item label="从业人员照片" class="form-item" labelPosition="top" labelWidth="100">
 				<view style="padding:20rpx 0 0;">
 					<u-upload :fileList="form.employerImg" :previewFullImage="uploadConfig.previewFullImage"
diff --git a/subPackage/workbench/views/audit.vue b/subPackage/workbench/views/audit.vue
index f851718..a057f1c 100644
--- a/subPackage/workbench/views/audit.vue
+++ b/subPackage/workbench/views/audit.vue
@@ -104,7 +104,7 @@
 					uni.setNavigationBarTitle({
 						title: "取保候审"
 					})
-				} else if (option.reportType == 2) {
+				} else if (option.reportType == 7) {
 					uni.setNavigationBarTitle({
 						title: "消防自查"
 					})
diff --git a/subPackage/workbench/views/cscj.vue b/subPackage/workbench/views/cscj.vue
index 315b317..aff8223 100644
--- a/subPackage/workbench/views/cscj.vue
+++ b/subPackage/workbench/views/cscj.vue
@@ -90,6 +90,17 @@
 
 					</u-form-item>
 
+					<u-form-item label="三级消防单位" labelWidth="100" prop="threeFireProtection" :required="isRequired">
+						<u-radio-group v-model="form.threeFireProtection" v-if="!currentId">
+							<u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in statusList"
+								:key="index" :label="item.name" :name="item.id">
+							</u-radio>
+						</u-radio-group>
+						<view class="f-30" v-if="currentId">
+							{{form.threeFireProtection == 1?"是":"否"}}
+						</view>
+					</u-form-item>
+
 					<u-form-item class="form-item" labelWidth="100" label="备注:" prop="remark">
 						<u--input v-if="!currentId" border="none" v-model="form.remark" placeholder="请输入">
 						</u--input>
@@ -120,9 +131,43 @@
 						</view>
 					</u-form-item>
 
+					<u-form-item v-if="!currentId" label="负责人信息和法人信息是否一致" labelWidth="100" :required="isRequired">
+						<u-radio-group v-model="isLegalSame">
+							<u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in statusList"
+								:key="index" :label="item.name" :name="item.id">
+							</u-radio>
+						</u-radio-group>
+						<!-- <view class="f-30" v-if="currentId">
+							{{form.threeFireProtection == 1?"是":"否"}}
+						</view> -->
+					</u-form-item>
+
 				</view>
 
+
 				<view class="item">
+					<view class="box-title">
+						<box-title title="法人信息"></box-title>
+					</view>
+					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+						label="姓名:" prop="legalPerson">
+						<u--input border="none" v-model="form.placeExtEntity.legalPerson" placeholder="请输入">
+						</u--input>
+					</u-form-item>
+					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+						label="身份证号:" prop="legalIdCard">
+						<u--input border="none" type="idcard" v-model="form.placeExtEntity.legalIdCard"
+							placeholder="请输入">
+						</u--input>
+					</u-form-item>
+					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+						label="手机号:" prop="legalTel">
+						<u--input border="none" type="number" v-model="form.placeExtEntity.legalTel" placeholder="请输入">
+						</u--input>
+					</u-form-item>
+				</view>
+
+				<view class="item" v-if="isLegalSame != 1 && !currentId">
 					<view class="box-title">
 						<box-title title="负责人信息"></box-title>
 					</view>
@@ -172,72 +217,7 @@
 					</u-form-item>
 				</view>
 
-				<view class="item">
-					<view class="box-title">
-						<box-title title="法人信息"></box-title>
-					</view>
-					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
-						label="姓名:" prop="legalPerson">
-						<u--input border="none" v-model="form.placeExtEntity.legalPerson" placeholder="请输入">
-						</u--input>
-					</u-form-item>
-					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
-						label="身份证号:" prop="legalIdCard">
-						<u--input border="none" type="idcard" v-model="form.placeExtEntity.legalIdCard"
-							placeholder="请输入">
-						</u--input>
-					</u-form-item>
-					<!-- <u-form-item @click="showGenderPicker = true" class="form-item" labelWidth="100" label="性别"
-						prop="legalGender">
-						<u--input border="none" v-model="genderValue" disabled disabledColor="#ffffff"
-							placeholder="请选择性别">
-						</u--input>
-						<u-icon slot="right" name="arrow-right"></u-icon>
-					</u-form-item>
 
-					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
-						label="年龄:" prop="legalAge">
-						<u--input border="none" type="number" v-model="form.legalAge" placeholder="请输入">
-						</u--input>
-					</u-form-item>
-					<u-form-item @click="showNationPicker = true" class="form-item" labelWidth="100" label="民族"
-						prop="ethnicity">
-						<u--input border="none" v-model="nationValue" disabled disabledColor="#ffffff"
-							placeholder="请选择民族">
-						</u--input>
-						<u-icon slot="right" name="arrow-right"></u-icon>
-					</u-form-item> -->
-					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
-						label="手机号:" prop="legalTel">
-						<u--input border="none" type="number" v-model="form.placeExtEntity.legalTel" placeholder="请输入">
-						</u--input>
-					</u-form-item>
-					<!-- 					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
-						label="微信号:" prop="legalWxAccount">
-						<u--input border="none" v-model="form.legalWxAccount" placeholder="请输入">
-						</u--input>
-					</u-form-item>
-					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
-						label="工作单位:" prop="employer">
-						<u--input border="none" v-model="form.employer" placeholder="请输入">
-						</u--input>
-					</u-form-item>
-					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
-						label="岗位性质:" prop="legalJobNature">
-						<u--input border="none" v-model="form.legalJobNature" placeholder="请输入">
-						</u--input>
-					</u-form-item>
-					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
-						label="户籍地址:" prop="legalRegisteredAddress">
-						<u--textarea border="none" v-model="form.legalRegisteredAddress" placeholder="请输入">
-						</u--textarea>
-					</u-form-item>
-					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
-						label="居住地址:" prop="legalTempAddress">
-						<u--textarea border="none" type="idcard" v-model="form.legalTempAddress" placeholder="请输入">
-						</u--textarea>
-					</u-form-item> -->
-				</view>
 
 
 				<view class="item pic" v-if="(currentId && form.images.length) || !currentId ">
@@ -668,7 +648,7 @@
 				showNationPicker: false,
 				showGenderPicker: false,
 				personNum: 1,
-
+				isLegalSame: "" //法人信息是否与负责人一致  1是  2否
 			}
 		},
 
@@ -1103,8 +1083,11 @@
 					this.form.placePractitioner = placePractitioner
 				}
 
-
-
+				if (this.isLegalSame == 1) {
+					this.form.placeExtEntity.legalPerson = this.form.principal;
+					this.form.placeExtEntity.legalTel = this.form.principalPhone;
+					this.form.placeExtEntity.legalIdCard = this.form.principalIdCard;
+				}
 
 				add(this.form).then(res => {
 					uni.showToast({
@@ -1271,7 +1254,7 @@
 
 			addPerson() {
 				this.personNum++
-			},
+			}
 		}
 	}
 </script>
diff --git a/subPackage/workbench/views/editCscj.vue b/subPackage/workbench/views/editCscj.vue
index 82b8b03..0c92c68 100644
--- a/subPackage/workbench/views/editCscj.vue
+++ b/subPackage/workbench/views/editCscj.vue
@@ -71,11 +71,23 @@
 								@close="delTag()" :text="item.categoryName"></u-tag>
 						</view>
 					</view> -->
+
+					<u-form-item label="三级消防单位" labelWidth="100" prop="threeFireProtection" :required="isRequired">
+						<u-radio-group v-model="form.threeFireProtection" v-if="!currentId">
+							<u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in statusList"
+								:key="index" :label="item.name" :name="item.id">
+							</u-radio>
+						</u-radio-group>
+						<view class="f-30" v-if="currentId">
+							{{form.threeFireProtection == 1?"是":"否"}}
+						</view>
+					</u-form-item>
 					<u-form-item class="form-item" labelWidth="100" label="备注:" prop="remark">
 						<u--input border="none" v-model="form.remark" placeholder="请输入">
 						</u--input>
 					</u-form-item>
 
+
 					<u-form-item label="经纬度:" prop="location" labelWidth="100">
 						<view class="address-row flex j-c-s-b a-i-c">
 							<view class="address-content f-28" v-if="form.jwd">

--
Gitblit v1.9.3