From 8c844ea235546f84035e4a99a9703d797cec80bc Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Fri, 08 Dec 2023 17:48:41 +0800
Subject: [PATCH] 数据驾驶舱完善,修复部分问题

---
 pages.json                                        |   96 ++++--
 subPackage/workbench/views/labelReportDetail.vue  |   25 
 subPackage/grid/comment.vue                       |   59 ++++
 subPackage/grid/publicSecurity.vue                |   36 ++
 subPackage/label/hotel.vue                        |   10 
 subPackage/label/form.vue                         |    6 
 subPackage/grid/comprehensive.vue                 |  141 ++++++++++
 mixin/uploadMixin.js                              |    6 
 pages/home/index.vue                              |   12 
 subPackage/workbench/views/schoolReportDetail.vue |   25 
 subPackage/label/bail.vue                         |    2 
 subPackage/workbench/views/hotelReportDetail.vue  |   27 -
 subPackage/workbench/views/bailReportDetail.vue   |   19 
 common/setting.js                                 |    2 
 api/statistics/statistics.js                      |   39 ++
 subPackage/statistics/index.vue                   |  153 ++++++----
 subPackage/grid/tenement.vue                      |  131 +++++++++
 subPackage/label/school.vue                       |   14 
 18 files changed, 641 insertions(+), 162 deletions(-)

diff --git a/api/statistics/statistics.js b/api/statistics/statistics.js
new file mode 100644
index 0000000..3d11e8e
--- /dev/null
+++ b/api/statistics/statistics.js
@@ -0,0 +1,39 @@
+import http from '@/http/api.js'
+
+//报事报修数据统计  (数据驾驶舱)
+export const getReportStatistics = (params) => {
+	return http.request({
+		url: 'blade-taskReportForRepairs/taskReportForRepairs/getReportForStatistics',
+		method: 'GET',
+		params: {
+			...params
+		}
+	})
+}
+
+//获取社区概况数据统计 (数据驾驶舱)
+export const getHouseStatistics  =(param)=>{
+	return http.request({
+		url: 'blade-house/house/getHouseStatistics',
+		method: 'GET',
+		params: param
+	})
+}
+
+// 获取住户数据统计 (数据驾驶舱)
+export const getHouseholdStatistics = (params) => {
+	return http.request({
+		url: 'blade-household/household/getHouseHoldStatistics',
+		method: 'GET',
+		params: params
+	})
+}
+
+// 获取网格物业人员数据统计 (数据驾驶舱)
+export const getGridStatistics = (params) => {
+	return http.request({
+		url: 'blade-gridman/gridman/getGridStatistics',
+		method: 'GET',
+		params: params
+	})
+}
diff --git a/common/setting.js b/common/setting.js
index 8a75d7d..aa2c724 100644
--- a/common/setting.js
+++ b/common/setting.js
@@ -14,7 +14,7 @@
 	// devUrl:'http://192.168.1.50:9528',
 	// devUrl: 'http://192.168.0.102:9528',
 	// devUrl:'https://srgdjczzxtpt.com:2080/api',
-	devUrl: 'http://192.168.0.100:9528',
+	devUrl: 'http://192.168.0.102:9528',
 	// devUrl: 'https://srgdjczzxtpt.com:2080/api',
 	minioBaseUrl: "https://srgdjczzxtpt.com:2080/gminio/jczz/",
 	// minioBaseUrl:"http://192.168.0.103:9528/",
diff --git a/mixin/uploadMixin.js b/mixin/uploadMixin.js
index 72d85da..a0d38e4 100644
--- a/mixin/uploadMixin.js
+++ b/mixin/uploadMixin.js
@@ -115,6 +115,12 @@
 		deletePic(event,key="images") {
 			this.form[key].splice(event.index, 1)
 		},
+		
+		deletePics(event,key) {
+			console.log(event,key);
+			this[key].splice(event.index, 1)
+		},
+		
 		showLoading() {
 			uni.showLoading({
 				mask: true,
diff --git a/pages.json b/pages.json
index 62ced28..39134b0 100644
--- a/pages.json
+++ b/pages.json
@@ -48,17 +48,15 @@
 		//数据驾驶舱
 		{
 			"root": "subPackage/statistics",
-			"pages": [
-				{
-					"path": "index",
-					"style": {
-						"navigationBarTitleText": "数据驾驶舱",
-						"enablePullDownRefresh": false,
-						"navigationBarBackgroundColor": "#fff",
-						"navigationBarTextStyle": "black"
-					}
+			"pages": [{
+				"path": "index",
+				"style": {
+					"navigationBarTitleText": "数据驾驶舱",
+					"enablePullDownRefresh": false,
+					"navigationBarBackgroundColor": "#fff",
+					"navigationBarTextStyle": "black"
 				}
-			]
+			}]
 		},
 		//我的
 		{
@@ -120,23 +118,21 @@
 						"navigationBarTextStyle": "black"
 					}
 				}
-				
+
 			]
 		},
 		//圈子
 		{
 			"root": "subPackage/circle",
-			"pages":[
-				{
-					"path":"detail",
-					"style": {
-						"navigationBarTitleText": "详情",
-						"enablePullDownRefresh": false,
-						"navigationBarBackgroundColor": "#fff",
-						"navigationBarTextStyle": "black"
-					}
+			"pages": [{
+				"path": "detail",
+				"style": {
+					"navigationBarTitleText": "详情",
+					"enablePullDownRefresh": false,
+					"navigationBarBackgroundColor": "#fff",
+					"navigationBarTextStyle": "black"
 				}
-			]
+			}]
 		},
 
 		//公告
@@ -198,8 +194,7 @@
 		//标签
 		{
 			"root": "subPackage/label",
-			"pages": [
-				{
+			"pages": [{
 					"path": "index",
 					"style": {
 						"navigationBarTitleText": "标签事件",
@@ -217,7 +212,7 @@
 						"navigationBarBackgroundColor": "#fff",
 						"navigationBarTextStyle": "black"
 					}
-				},{
+				}, {
 					"path": "bail",
 					"style": {
 						"navigationBarTitleText": "取保候审",
@@ -284,9 +279,8 @@
 		},
 		//我的任务
 		{
-		   "root":"subPackage/task",
-		   "pages": [
-			    {
+			"root": "subPackage/task",
+			"pages": [{
 					"path": "index",
 					"style": {
 						"navigationBarTitleText": "我的任务",
@@ -294,7 +288,7 @@
 						"navigationBarBackgroundColor": "#fff",
 						"navigationBarTextStyle": "black"
 					}
-				} ,
+				},
 				{
 					"path": "taskList",
 					"style": {
@@ -303,7 +297,7 @@
 						"navigationBarBackgroundColor": "#fff",
 						"navigationBarTextStyle": "black"
 					}
-				} ,
+				},
 				{
 					"path": "workLogList",
 					"style": {
@@ -312,7 +306,7 @@
 						"navigationBarBackgroundColor": "#fff",
 						"navigationBarTextStyle": "black"
 					}
-				} 
+				}
 			]
 		},
 		//工作台
@@ -628,6 +622,46 @@
 					}
 				}
 			]
+		},
+		{
+			"root": "subPackage/grid",
+			"pages": [{
+					"path": "publicSecurity",
+					"style": {
+						"navigationBarTitleText": "公安网格",
+						"navigationBarBackgroundColor": "#fff",
+						"navigationBarTextStyle": "black",
+						"enablePullDownRefresh": false
+					}
+				},
+				{
+					"path": "comprehensive",
+					"style": {
+						"navigationBarTitleText": "综治网格",
+						"navigationBarBackgroundColor": "#fff",
+						"navigationBarTextStyle": "black",
+						"enablePullDownRefresh": false
+					}
+				},
+				{
+					"path": "tenement",
+					"style": {
+						"navigationBarTitleText": "物业",
+						"navigationBarBackgroundColor": "#fff",
+						"navigationBarTextStyle": "black",
+						"enablePullDownRefresh": false
+					}
+				},
+				{
+					"path": "comment",
+					"style": {
+						"navigationBarTitleText": "留言",
+						"navigationBarBackgroundColor": "#fff",
+						"navigationBarTextStyle": "black",
+						"enablePullDownRefresh": false
+					}
+				}
+			]
 		}
 	],
 	"globalStyle": {
@@ -650,7 +684,7 @@
 			},
 			{
 				"pagePath": "pages/circle/index",
-				"iconPath": "static/img/tabbar-02.png",	
+				"iconPath": "static/img/tabbar-02.png",
 				"selectedIconPath": "static/img/tabbar-02-selected.png",
 				"text": "圈子"
 			},
diff --git a/pages/home/index.vue b/pages/home/index.vue
index d1b1901..1dd1b95 100644
--- a/pages/home/index.vue
+++ b/pages/home/index.vue
@@ -641,12 +641,12 @@
 							icon: "error"
 						})
 					} 
-					else if (path == "/subPackage/statistics/index") {
-						uni.showToast({
-							title: "功能开发中~",
-							icon: "none"
-						})
-					} 
+					// else if (path == "/subPackage/statistics/index") {
+					// 	uni.showToast({
+					// 		title: "功能开发中~",
+					// 		icon: "none"
+					// 	})
+					// } 
 					else {
 						this.$u.func.globalNavigator(`${path}?houseCode=${this.curHouseCode}`, "navTo")
 					}
diff --git a/subPackage/grid/comment.vue b/subPackage/grid/comment.vue
new file mode 100644
index 0000000..dd9fcb6
--- /dev/null
+++ b/subPackage/grid/comment.vue
@@ -0,0 +1,59 @@
+<template>
+	<view class="container">
+		 <view class="content">
+			 <u-textarea v-model="content" placeholder="请输入内容" ></u-textarea>
+		 </view>
+		<button class="submit-btn bgc-main c-ff f-30"  @click="submitInfo">提交</button>
+	</view>
+</template>
+
+<script>
+	import { addComment} from "@/api/article/article.js"
+	export default{
+		data(){
+			return {
+				content:"",
+				articleId:""
+			}
+		},
+		onLoad(option){
+			this.articleId = option.id;
+		},
+		methods:{
+			submitInfo(){
+				if(!this.content)return 
+				addComment({
+					content:this.content,
+					articleId:this.articleId
+				}).then(res=>{
+					if(res.code == 200){
+						uni.showToast({
+							title:"提交成功!"
+						})
+						uni.$emit("refreshComment")
+						setTimeout(()=>{
+							uni.navigateBack();
+						},1000)
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style>
+	.container{
+		padding:30rpx 30rpx 0;
+	}
+	.content{
+		margin-bottom:50rpx;
+	}
+	.submit-btn{
+		width:100%;
+		height:80rpx;
+		line-height:80rpx;
+		border:none;
+		border-radius: 40rpx;
+		
+	}
+</style>
\ No newline at end of file
diff --git a/subPackage/grid/comprehensive.vue b/subPackage/grid/comprehensive.vue
new file mode 100644
index 0000000..5cc82fa
--- /dev/null
+++ b/subPackage/grid/comprehensive.vue
@@ -0,0 +1,141 @@
+<template>
+	<view class="">
+		<view class="tab">
+			<u-tabs :list="tabList" :current="tabIndex" @click="changeTab" :inactiveStyle="{color:'#999999'}"
+				:activeStyle="{color:'#017BFC'}"></u-tabs>
+		</view>
+		
+		<view class="grid flex flex-wrap">
+			<view class="grid-item flex f-d-c a-i-c j-c-c">
+				<text class="mb-20 f-28"></text>
+				<u-image  width="150"  height="100"></u-image>
+				<text class="mt-20"></text>
+				<text class="c-99 f-26"></text>
+			</view>
+		</view>
+		
+		<view class="detail bgc-ff">
+			<caption-row  text="网格基本情况" />
+			<view class="detail-content">
+				
+			</view>
+		</view>
+		
+		<view class="comment">
+			<caption-row  text="留言" />
+			<view class="comment-list ">
+				<view class="comment-item flex " v-for="(item,index) in commentList" :key="index">
+					<u-avatar size="45" src="/static/icon/user-01.png"></u-avatar>
+					<view class="comment-item-content">
+						<view class="flex j-c-s-b a-i-c mb-20">
+							<text class="f-28 c-99">{{item.name}}</text>
+							<text class="c-99 f-24">{{item.createTime}}</text>
+						</view>
+						<view class="f-30">
+							{{item.content}}
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="footer">
+			<u-search searchIcon='edit-pen' :animation="true" placeholder="写评论" disabled
+				@click="navToComment"></u-search>
+		</view>
+	</view>
+</template>
+
+<script>
+	import captionRow from "@/components/caption/caption.vue"
+	export default {
+		components:{
+			captionRow
+		},
+		data(){
+			return {
+				commentList:[]
+			}
+		},
+		methods:{
+			navToComment() {
+				uni.navigateTo({
+					url: `comment?id=${this.params.id}`
+				})
+			}
+		}
+	}
+	
+	
+	
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #F5F5F5;
+	}
+	
+	.tab {
+		width: 100%;
+		height: 88rpx;
+		position: fixed;
+		/*#ifdef H5*/
+		top: 88rpx;
+		/*#endif*/
+		/*#ifdef MP-WEIXIN*/
+		top: 0;
+		/*#endif*/
+		left: 0;
+		background-color: #fff;
+		padding: 0 30rpx;
+		box-sizing: border-box;
+		z-index: 999;
+	
+	}
+	.grid{
+		width:100%;
+	    .grid-item{
+			width:150rpx;
+			padding:20rpx 0;
+		}	
+	}
+	
+	.detail{
+		padding: 0 30rpx;
+		margin:20rpx 0;
+		.detail-content{
+			padding:20rpx 0;
+		}
+	}
+	.comment {
+		width: 100%;
+		padding: 0 30rpx 160rpx;
+		box-sizing: border-box;
+	}
+	
+	.comment-list {
+		width: 100%;
+		padding-top: 20rpx;
+	
+		.comment-item {
+			width: 100%;
+			padding: 20rpx 0;
+		}
+	
+		.comment-item-content {
+			flex: 1;
+			margin-left: 20rpx;
+		}
+	}
+	
+	.footer {
+		width: 100%;
+		padding: 20rpx 30rpx;
+		box-sizing: border-box;
+		background-color: #fff;
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		z-index: 10;
+		border-top: 1px solid #f5f5f5;
+	}
+</style>
\ No newline at end of file
diff --git a/subPackage/grid/publicSecurity.vue b/subPackage/grid/publicSecurity.vue
new file mode 100644
index 0000000..eacbee9
--- /dev/null
+++ b/subPackage/grid/publicSecurity.vue
@@ -0,0 +1,36 @@
+<template>
+	<view class="bgc-ff">
+		<view class="item-row flex j-c-s-b a-i-c">
+			<text>公安局</text>
+			<text></text>
+		</view>
+		<view class="item-row flex j-c-s-b a-i-c">
+			<text>派出所</text>
+			<text></text>
+		</view>
+		<view class="item-row flex j-c-s-b a-i-c">
+			<text>社区民警</text>
+			<text></text>
+		</view>
+		<view class="item-row flex j-c-s-b a-i-c">
+			<text>联系方式</text>
+			<text></text>
+		</view>
+	</view>
+</template>
+
+<script>
+</script>
+
+<style>
+	page {
+		background-color: #f5f5f5;
+	}
+	.item-row {
+		width: 100%;
+		padding: 30rpx;
+		box-sizing: border-box;
+		border-bottom: 1px solid #f5f5f5;
+		font-size: 28rpx;
+	}
+</style>
\ No newline at end of file
diff --git a/subPackage/grid/tenement.vue b/subPackage/grid/tenement.vue
new file mode 100644
index 0000000..eb3fe07
--- /dev/null
+++ b/subPackage/grid/tenement.vue
@@ -0,0 +1,131 @@
+<template>
+	<view class="container">
+		<view class="">
+			<u-avatar size="78"></u-avatar>
+			<view class="flex f-d-c">
+				<text class="f-30 fw"></text>
+				<view class="">
+					<text class="c-99 f-26"></text>
+					<view class="f-22">
+						拨打电话
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<view class="mb-30">
+			<caption-row text="物业简介" />
+			<view class="intro bgc-ff">
+				<u-read-more ref="uReadMore">
+					<rich-text :nodes="content"></rich-text>
+				</u-read-more>
+			</view>
+		</view>
+		<view class="mb-30">
+			<caption-row text="人员信息" />
+			<view class="person-list bgc-ff">
+				<view class="person-list flex j-c-s-b a-i-c">
+					<view class="flex">
+						<u-avatar size="50"></u-avatar>
+						<text class="ml-10 mr-10"></text>
+						<text class="f-26 c-99"></text>
+					</view>
+					<view class="flex a-i-c">
+						<u-icon   name="phone-fill"></u-icon>
+						<text class="f-26 c-99"></text>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="">
+			<caption-row text="留言" />
+			<view class="comment-list bgc-ff">
+				<view class="comment-item flex " v-for="(item,index) in commentList" :key="index">
+					<u-avatar size="45" src="/static/icon/user-01.png"></u-avatar>
+					<view class="comment-item-content">
+						<view class="flex j-c-s-b a-i-c mb-20">
+							<text class="f-28 c-99">{{item.name}}</text>
+							<text class="c-99 f-24">{{item.createTime}}</text>
+						</view>
+						<view class="f-30">
+							{{item.content}}
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		
+
+	</view>
+
+
+</template>
+
+<script>
+	import captionRow from "@/components/caption/caption.vue"
+	export default {
+		components: {
+			captionRow
+		},
+		data() {
+			return {
+                commentList:[]
+			}
+		},
+		methods:{
+			navToComment() {
+				uni.navigateTo({
+					url: `comment?id=${this.params.id}`
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #f5f5f5;
+	}
+
+	.container {
+		padding: 0 30rpx;
+	}
+	.intro{
+		border-radius: 10rpx;
+		padding:10rpx;
+	}
+	.person-list{
+		padding:0 10rpx;
+		border-radius: 10rpx;
+		.person-list-item{
+			padding:20rpx 0;
+			border-bottom:1px solid #f5f5f5;
+		}
+	}
+	.comment-list {
+		width: 100%;
+		padding-top: 20rpx;
+	
+		.comment-item {
+			width: 100%;
+			padding: 20rpx 0;
+		}
+	
+		.comment-item-content {
+			flex: 1;
+			margin-left: 20rpx;
+		}
+	}
+	
+	.footer {
+		width: 100%;
+		padding: 20rpx 30rpx;
+		box-sizing: border-box;
+		background-color: #fff;
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		z-index: 10;
+		border-top: 1px solid #f5f5f5;
+	}
+</style>
\ No newline at end of file
diff --git a/subPackage/label/bail.vue b/subPackage/label/bail.vue
index b90b0af..d84ac7b 100644
--- a/subPackage/label/bail.vue
+++ b/subPackage/label/bail.vue
@@ -171,7 +171,7 @@
 			setImages(){
 				let urls = [];
 			    for(let i of this.form.images){
-					urls.push(i.url);
+					urls.push(i.name);
 				}
 			    return urls.join(",")
 			},
diff --git a/subPackage/label/form.vue b/subPackage/label/form.vue
index 60282fc..eaaf145 100644
--- a/subPackage/label/form.vue
+++ b/subPackage/label/form.vue
@@ -43,7 +43,7 @@
 					<u-upload :fileList="imageUrls" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
 						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
-						@afterRead="afterReadImgs($event,'imageUrls')" @delete="deletePic">
+						@afterRead="afterReadImgs($event,'imageUrls')" @delete="deletePics($event,'imageUrls')">
 						<view class="upload-item upload-icon flex_base">
 							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
 						</view>
@@ -56,7 +56,7 @@
 					<u-upload :fileList="goodsImageUrls" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
 						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
-						@afterRead="afterReadImgs($event,'goodsImageUrls')" @delete="deletePic">
+						@afterRead="afterReadImgs($event,'goodsImageUrls')" @delete="deletePics($event,'goodsImageUrls')">
 						<view class="upload-item upload-icon flex_base">
 							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
 						</view>
@@ -207,7 +207,7 @@
 			setImages(key) {
 				let urls = [];
 				for (let i of key) {
-					urls.push(i.url);
+					urls.push(i.name);
 				}
 				return urls.join(",")
 			},
diff --git a/subPackage/label/hotel.vue b/subPackage/label/hotel.vue
index 711f811..6934a7a 100644
--- a/subPackage/label/hotel.vue
+++ b/subPackage/label/hotel.vue
@@ -61,7 +61,7 @@
 					<u-upload :fileList="fireImageUrls" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
 						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
-						@afterRead="afterReadImgs($event,'fireImageUrls')" @delete="deletePic">
+						@afterRead="afterReadImgs($event,'fireImageUrls')" @delete="deletePics($event,'fireImageUrls')">
 						<view class="upload-item upload-icon flex_base">
 							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
 						</view>
@@ -91,7 +91,7 @@
 					<u-upload :fileList="scImageUrls" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
 						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
-						@afterRead="afterReadImgs($event,'scImageUrls')" @delete="deletePic">
+						@afterRead="afterReadImgs($event,'scImageUrls')" @delete="deletePics($event,'scImageUrls')">
 						<view class="upload-item upload-icon flex_base">
 							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
 						</view>
@@ -118,7 +118,7 @@
 					<u-upload :fileList="pfImageUrls" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
 						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
-						@afterRead="afterReadImgs($event,'pfImageUrls')" @delete="deletePic">
+						@afterRead="afterReadImgs($event,'pfImageUrls')" @delete="deletePics($event,'pfImageUrls')">
 						<view class="upload-item upload-icon flex_base">
 							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
 						</view>
@@ -145,7 +145,7 @@
 					<u-upload :fileList="uanImageUrls" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
 						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
-						@afterRead="afterReadImgs($event,'uanImageUrls')" @delete="deletePic">
+						@afterRead="afterReadImgs($event,'uanImageUrls')" @delete="deletePics($event,'uanImageUrls')">
 						<view class="upload-item upload-icon flex_base">
 							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
 						</view>
@@ -419,7 +419,7 @@
 			setImages(key) {
 				let urls = [];
 				for (let i of key) {
-					urls.push(i.url);
+					urls.push(i.name);
 				}
 				return urls.join(",")
 			},
diff --git a/subPackage/label/school.vue b/subPackage/label/school.vue
index a08187f..8e7b7d4 100644
--- a/subPackage/label/school.vue
+++ b/subPackage/label/school.vue
@@ -59,7 +59,7 @@
 					<u-upload :fileList="foImageUrls" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
 						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
-						@afterRead="afterReadImgs($event,'foImageUrls')" @delete="deletePic">
+						@afterRead="afterReadImgs($event,'foImageUrls')" @delete="deletePics($event,'foImageUrls')">
 						<view class="upload-item upload-icon flex_base">
 							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
 						</view>
@@ -84,7 +84,7 @@
 					<u-upload :fileList="fireFacsImageUrls" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
 						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
-						@afterRead="afterReadImgs($event,'fireFacsImageUrls')" @delete="deletePic">
+						@afterRead="afterReadImgs($event,'fireFacsImageUrls')" @delete="deletePics($event,'fireFacsImageUrls')">
 						<view class="upload-item upload-icon flex_base">
 							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
 						</view>
@@ -107,7 +107,7 @@
 					<u-upload :fileList="scImageUrls" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
 						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
-						@afterRead="afterReadImgs($event,'scImageUrls')" @delete="deletePic">
+						@afterRead="afterReadImgs($event,'scImageUrls')" @delete="deletePics($event,'scImageUrls')">
 						<view class="upload-item upload-icon flex_base">
 							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
 						</view>
@@ -120,7 +120,7 @@
 					<u-upload :fileList="patrolImageUrls" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
 						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
-						@afterRead="afterReadImgs($event,'patrolImageUrls')" @delete="deletePic">
+						@afterRead="afterReadImgs($event,'patrolImageUrls')" @delete="deletePics($event,'patrolImageUrls')">
 						<view class="upload-item upload-icon flex_base">
 							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
 						</view>
@@ -144,7 +144,7 @@
 					<u-upload :fileList="antiCollisionImageUrls" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
 						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
-						@afterRead="afterReadImgs($event,'antiCollisionImageUrls')" @delete="deletePic">
+						@afterRead="afterReadImgs($event,'antiCollisionImageUrls')" @delete="deletePics($event,'antiCollisionImageUrls')">
 						<view class="upload-item upload-icon flex_base">
 							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
 						</view>
@@ -183,7 +183,7 @@
 					<u-upload :fileList="uanImageUrls" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
 						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
-						@afterRead="afterReadImgs($event,'uanImageUrls')" @delete="deletePic">
+						@afterRead="afterReadImgs($event,'uanImageUrls')" @delete="deletePics($event,'uanImageUrls')">
 						<view class="upload-item upload-icon flex_base">
 							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
 						</view>
@@ -459,7 +459,7 @@
 			setImages(key) {
 				let urls = [];
 				for (let i of key) {
-					urls.push(i.url);
+					urls.push(i.name);
 				}
 				return urls.join(",")
 			},
diff --git a/subPackage/statistics/index.vue b/subPackage/statistics/index.vue
index c2127d5..9a55d60 100644
--- a/subPackage/statistics/index.vue
+++ b/subPackage/statistics/index.vue
@@ -29,9 +29,29 @@
 		<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" v-for="i in 6">
-					<text class="c-main f-32 fw mb-20">1</text>
+				<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">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>
 		</view>
@@ -41,10 +61,19 @@
 			<view class="bar-charts bgc-ff">
 				<qiun-data-charts type="bar" :opts="opts" :chartData="chartData" />
 			</view>
-
-			<view class="pie-charts bgc-ff">
-				<qiun-data-charts type="pie" :opts="pieOpts" :chartData="sexChartData" />
+			<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">
@@ -119,15 +148,7 @@
 
 <script>
 	import captionRow from "@/components/caption/caption.vue"
-	import {
-		getReportStatistics
-	} from "@/api/task/taskReportForRepairs.js"
-	import {
-		getHouseStatistics
-	} from "@/api/house/house.js"
-	import {
-		getHouseholdStatistics
-	} from "@/api/house/household.js"
+	import * as statisticsModal from "@/api/statistics/statistics.js"
 	export default {
 		components: {
 			captionRow
@@ -137,8 +158,8 @@
 				reportData: {},
 				houseData: {},
 				chartData: {},
-				//您可以通过修改 config-ucharts.js 文件中下标为 ['bar'] 的节点来配置全局默认参数,如都是默认参数,此处可以不传 opts 。实际应用过程中 opts 只需传入与全局默认参数中不一致的【某一个属性】即可实现同类型的图表显示不同的样式,达到页面简洁的需求。
 				opts: {
+					fontSize: 10,
 					color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4",
 						"#ea7ccc"
 					],
@@ -146,17 +167,19 @@
 					enableScroll: false,
 					legend: {},
 					xAxis: {
-						boundaryGap: "justify",
+						// boundaryGap: "justify",
 						disableGrid: false,
 						min: 0,
 						axisLine: false,
-						max: 70
+						// max: 70,
+						fontSize: 10,
+
 					},
 					yAxis: {},
 					extra: {
 						bar: {
 							type: "stack",
-							width: 30,
+							width: 14,
 							meterBorde: 1,
 							meterFillColor: "#FFFFFF",
 							activeBgColor: "#000000",
@@ -165,7 +188,7 @@
 						}
 					}
 				},
-				sexChartData:{},
+				sexChartData: {},
 				pieOpts: {
 					color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4",
 						"#ea7ccc"
@@ -174,34 +197,38 @@
 					enableScroll: false,
 					extra: {
 						pie: {
+							customRadius: 60,
 							activeOpacity: 0.5,
 							activeRadius: 10,
 							offsetAngle: 0,
-							labelWidth: 15,
+							labelWidth: 6,
 							border: false,
 							borderWidth: 3,
 							borderColor: "#FFFFFF"
 						}
 					}
-				}
+				},
+				gridData: {},
+				sexData: []
 			}
 		},
 
 		onLoad() {
 			this.getHouseHoldData();
-			// this.getServerData();
 			this.getHouseData();
 			this.getReportData();
+			this.getGridData();
 		},
 
 		methods: {
 			getHouseHoldData() {
-				getHouseholdStatistics({
+				statisticsModal.getHouseholdStatistics({
 					code: this.siteInfo.id,
 					roleType: uni.getStorageSync("activeRole").roleAlias == "wgy" ? 1 : 2
 				}).then(res => {
 					// this.houseHoldData = res.data;
 					let data = res.data;
+					this.sexData = data.gender;
 					this.setPersonData(data.age)
 					this.setSexData(data.gender)
 				})
@@ -222,45 +249,25 @@
 				}
 				this.chartData = JSON.parse(JSON.stringify(res));
 			},
-			
-			setSexData(data){
+
+			setSexData(data) {
 				let res = {
-					series:[
-						{
-							data:[]
-						}
-					]
+					series: [{
+						data: []
+					}]
 				}
-				for(let i of data){
-					res.series[0].data.push(
-					   {
-						   name:i.gender,
-						   value:i.numbers
-					   }
-					)
+				for (let i of data) {
+					res.series[0].data.push({
+						name: i.gender,
+						value: i.numbers
+					})
 				}
-				 this.sexChartData = JSON.parse(JSON.stringify(res));
+				this.sexChartData = JSON.parse(JSON.stringify(res));
 			},
-
-			getServerData() {
-				//模拟从服务器获取数据时的延时
-				setTimeout(() => {
-					//模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
-					let res = {
-						categories: ["2018", "2019", "2020", "2021", "2022", "2023"],
-						series: [{
-							name: "目标值",
-							data: [35, 36, 31, 33, 13, 34]
-						}]
-					};
-					this.chartData = JSON.parse(JSON.stringify(res));
-				}, 500);
-			},
-
 
 			//获取社区概况数据
 			getHouseData() {
-				getHouseStatistics({
+				statisticsModal.getHouseStatistics({
 					code: this.siteInfo.id,
 					roleType: uni.getStorageSync("activeRole").roleAlias == "wgy" ? 1 : 2
 				}).then(res => {
@@ -270,12 +277,23 @@
 
 			//获取社区事件数据
 			getReportData() {
-				getReportStatistics({
+				statisticsModal.getReportStatistics({
 					code: this.siteInfo.id,
 					roleType: uni.getStorageSync("activeRole").roleAlias == "wgy" ? 1 : 2
 				}).then(res => {
 					console.log(res);
 					this.reportData = res.data;
+				})
+			},
+
+			//获取网格物业人员
+			getGridData() {
+				statisticsModal.getGridStatistics({
+					code: this.siteInfo.id,
+					roleType: uni.getStorageSync("activeRole").roleAlias == "wgy" ? 1 : 2
+				}).then(res => {
+					console.log(res);
+					this.gridData = res.data;
 				})
 			}
 		}
@@ -385,12 +403,29 @@
 		// background-color:#fff;
 	}
 
-	.bar-charts,.pie-charts {
+	.bar-charts,
+	.pie-charts {
 		width: 100%;
 		height: 300px;
 		border-radius: 10rpx;
+		padding: 0 20rpx;
+		box-sizing: border-box;
 	}
-    .bar-charts{
-		margin:20rpx 0;
+
+	.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/workbench/views/bailReportDetail.vue b/subPackage/workbench/views/bailReportDetail.vue
index 001fd46..a110dcc 100644
--- a/subPackage/workbench/views/bailReportDetail.vue
+++ b/subPackage/workbench/views/bailReportDetail.vue
@@ -9,7 +9,7 @@
 		<view class="licence" v-if="locationImageUrls.length">
 			<box-title title="位置图片" class="box-title"></box-title>
 			<view class="flex-wrap">
-				<view v-for="(i,k) in locationImageUrls" :key="k" class="ml-20 mt-20">
+				<view v-for="(i,k) in locationImageUrls" :key="k" class="ml-20 mt-20"  @click="previewImg(i,locationImageUrls)">
 					<u-image :src="i" width="80" height="80"></u-image>
 				</view>
 			</view>
@@ -343,18 +343,17 @@
 					this.basicData.forEach(item => {
 						item.value = data[item.name]
 					})
-					this.locationImageUrls = this.setImages(data.locationImageUrls);
+					this.locationImageUrls = this.$setImageUrl(data.locationImageUrls);
 
 				})
 			},
-			setImages(str) {
-				if (str) {
-					return str.split(",")
-				} else {
-					return []
-				}
+			
+			previewImg(current,urls){
+				uni.previewImage({
+					current,urls
+				})
 			},
-
+			
 			handleConfirm(e) {
 				this.confirmFlag = e.value[0].name;
 				this.info.confirmFlag = e.value[0].status;
@@ -376,7 +375,7 @@
 			setGoOutImages(key) {
 				let urls = [];
 				for (let i of key) {
-					urls.push(i.url);
+					urls.push(i.name);
 				}
 				return urls.join(",")
 			},
diff --git a/subPackage/workbench/views/hotelReportDetail.vue b/subPackage/workbench/views/hotelReportDetail.vue
index 66b2915..fa63acc 100644
--- a/subPackage/workbench/views/hotelReportDetail.vue
+++ b/subPackage/workbench/views/hotelReportDetail.vue
@@ -9,7 +9,7 @@
 		<view class="licence" v-if="fireImages.length">
 			<box-title title="灭火器图片" class="box-title"></box-title>
 			<view class="flex-wrap">
-				<view v-for="(i,k) in fireImages" :key="k" class="ml-20 mt-20">
+				<view v-for="(i,k) in fireImages" :key="k" class="ml-20 mt-20"   @click="previewImg(i,fireImages)">
 					<u-image :src="i" width="80" height="80"></u-image>
 				</view>
 			</view>
@@ -17,7 +17,7 @@
 		<view class="planegraph" v-if="scImageUrls.length">
 			<box-title title="安全通道图片" class="box-title"></box-title>
 			<view class="flex-wrap">
-				<view v-for="(i,k) in scImageUrls" :key="k" class="ml-20 mt-20">
+				<view v-for="(i,k) in scImageUrls" :key="k" class="ml-20 mt-20"  @click="previewImg(i,scImageUrls)">
 					<u-image :src="i" width="80" height="80"></u-image>
 				</view>
 			</view>
@@ -25,7 +25,7 @@
 		<view class="planegraph" v-if="pfImageUrls.length">
 			<box-title title="技防设施图片" class="box-title"></box-title>
 			<view class="flex-wrap">
-				<view v-for="(i,k) in pfImageUrls" :key="k" class="ml-20 mt-20">
+				<view v-for="(i,k) in pfImageUrls" :key="k" class="ml-20 mt-20"  @click="previewImg(i,pfImageUrls)">
 					<u-image :src="i" width="80" height="80"></u-image>
 				</view>
 			</view>
@@ -33,7 +33,7 @@
 		<view class="planegraph" v-if="uanImageUrls.length">
 			<box-title title="未成年人入住及照片" class="box-title"></box-title>
 			<view class="flex-wrap">
-				<view v-for="(i,k) in uanImageUrls" :key="k" class="ml-20 mt-20">
+				<view v-for="(i,k) in uanImageUrls" :key="k" class="ml-20 mt-20"  @click="previewImg(i,uanImageUrls)">
 					<u-image :src="i" width="80" height="80"></u-image>
 				</view>
 			</view>
@@ -209,19 +209,18 @@
 					this.basicData.forEach(item => {
 						item.value = data[item.name]
 					})
-					this.fireImages = this.setImages(data.fireImageUrls);
-					this.scImageUrls = this.setImages(data.scImageUrls);
-					this.pfImageUrls = this.setImages(data.pfImageUrls);
-					this.uanImageUrls = this.setImages(data.uanImageUrls);
+					this.fireImages = this.$setImageUrl(data.fireImageUrls);
+					this.scImageUrls = this.$setImageUrl(data.scImageUrls);
+					this.pfImageUrls = this.$setImageUrl(data.pfImageUrls);
+					this.uanImageUrls = this.$setImageUrl(data.uanImageUrls);
 
 				})
 			},
-			setImages(str) {
-				if (str) {
-					return str.split(",")
-				} else {
-					return []
-				}
+			
+			previewImg(current,urls){
+				uni.previewImage({
+					current,urls
+				})
 			},
 
 			handleConfirm(e) {
diff --git a/subPackage/workbench/views/labelReportDetail.vue b/subPackage/workbench/views/labelReportDetail.vue
index 1fb39ed..2a34a7a 100644
--- a/subPackage/workbench/views/labelReportDetail.vue
+++ b/subPackage/workbench/views/labelReportDetail.vue
@@ -9,15 +9,15 @@
         <view class="licence" v-if="imageUrls.length">
             <box-title title="手持身份证" class="box-title"></box-title>
             <view class="flex-wrap">
-                <view v-for="(i,k) in imageUrls" :key="k" class="ml-20 mt-20">
-                    <u-image :src="i" width="80" height="80"></u-image>
+                <view v-for="(i,k) in imageUrls" :key="k" class="ml-20 mt-20"  @click="previewImg(i,imageUrls)">
+                    <u-image :src="i" width="80" height="80" ></u-image>
                 </view>
             </view>
         </view>
         <view class="planegraph" v-if="goodsImageUrls.length">
             <box-title title="物品照片" class="box-title"></box-title>
             <view class="flex-wrap">
-                <view v-for="(i,k) in goodsImageUrls" :key="k" class="ml-20 mt-20">
+                <view v-for="(i,k) in goodsImageUrls" :key="k" class="ml-20 mt-20"   @click="previewImg(i,imageUrls)">
                     <u-image :src="i" width="80" height="80"></u-image>
                 </view>
             </view>
@@ -135,17 +135,18 @@
                     this.basicData.forEach(item => {
                         item.value = data[item.name]
                     })
-                    this.imageUrls = this.setImages(data.imageUrls);
-                    this.goodsImageUrls = this.setImages(data.goodsImageUrls);
+                    // this.imageUrls = this.setImages(data.imageUrls);
+                    // this.goodsImageUrls = this.setImages(data.goodsImageUrls);
+					this.imageUrls = this.$setImageUrl(data.imageUrls);
+					this.goodsImageUrls = this.$setImageUrl(data.goodsImageUrls)
                 })
             },
-            setImages(str) {
-                if (str) {
-                    return str.split(",")
-                } else {
-                    return []
-                }
-            },
+            
+			previewImg(current,urls){
+				uni.previewImage({
+					current,urls
+				})
+			},
  
             handleConfirm(e) {
                 this.form.confirmFlag = e.value[0].name;
diff --git a/subPackage/workbench/views/schoolReportDetail.vue b/subPackage/workbench/views/schoolReportDetail.vue
index 3375274..77cb30f 100644
--- a/subPackage/workbench/views/schoolReportDetail.vue
+++ b/subPackage/workbench/views/schoolReportDetail.vue
@@ -9,7 +9,7 @@
 		<view class="licence" v-if="imageUrls.length">
 			<box-title title="手持身份证" class="box-title"></box-title>
 			<view class="flex-wrap">
-				<view v-for="(i,k) in imageUrls" :key="k" class="ml-20 mt-20">
+				<view v-for="(i,k) in imageUrls" :key="k" class="ml-20 mt-20" @click="previewImg(i,imageUrls)">
 					<u-image :src="i" width="80" height="80"></u-image>
 				</view>
 			</view>
@@ -17,7 +17,7 @@
 		<view class="planegraph" v-if="goodsImageUrls.length">
 			<box-title title="物品照片" class="box-title"></box-title>
 			<view class="flex-wrap">
-				<view v-for="(i,k) in goodsImageUrls" :key="k" class="ml-20 mt-20">
+				<view v-for="(i,k) in goodsImageUrls" :key="k" class="ml-20 mt-20"   @click="previewImg(i,goodsImageUrls)">
 					<u-image :src="i" width="80" height="80"></u-image>
 				</view>
 			</view>
@@ -183,19 +183,18 @@
 					this.basicData.forEach(item => {
 						item.value = data[item.name] || "未完善"
 					})
-					this.foImageUrls = this.setImages(data.foImageUrls);
-					this.fireFacsImageUrls = this.setImages(data.fireFacsImageUrls);
-					this.patrolImageUrls = this.setImages(data.patrolImageUrls);
-					this.antiCollisionImageUrls = this.setImages(data.antiCollisionImageUrls);
-					this.haImageUrls = this.setImages(data.haImageUrls);
+					this.foImageUrls = this.$setImageUrl(data.foImageUrls);
+					this.fireFacsImageUrls = this.$setImageUrl(data.fireFacsImageUrls);
+					this.patrolImageUrls = this.$setImageUrl(data.patrolImageUrls);
+					this.antiCollisionImageUrls = this.$setImageUrl(data.antiCollisionImageUrls);
+					this.haImageUrls = this.$setImageUrl(data.haImageUrls);
 				})
 			},
-			setImages(str) {
-				if (str) {
-					return str.split(",")
-				} else {
-					return []
-				}
+			
+			previewImg(current,urls){
+				uni.previewImage({
+					current,urls
+				})
 			},
 
 			handleConfirm(e) {

--
Gitblit v1.9.3