From ce21b378de4b5a075da8295404d2fdb3b2e3a22a Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Sat, 25 Nov 2023 19:20:13 +0800
Subject: [PATCH] 公益投票、选举调查功能编写,修复部分问题

---
 components/noticeList/noticeList.vue  |   16 
 subPackage/article/list.vue           |   43 ++
 pages.json                            |    2 
 api/community/community.js            |   51 +++
 subPackage/article/detail.vue         |  331 +++++++++++++++++++------
 pages/home/index.vue                  |    5 
 subPackage/bs/views/repair.vue        |  251 +++++++-----------
 common/setting.js                     |    4 
 subPackage/house/family/index.vue     |   15 
 subPackage/bs/views/addRepair.vue     |    2 
 subPackage/house/list/index.vue       |    2 
 subPackage/task/index.vue             |   10 
 subPackage/workbench/views/report.vue |    5 
 13 files changed, 469 insertions(+), 268 deletions(-)

diff --git a/api/community/community.js b/api/community/community.js
new file mode 100644
index 0000000..50c9dd8
--- /dev/null
+++ b/api/community/community.js
@@ -0,0 +1,51 @@
+import http from '@/http/api.js'
+
+//获取报名列表
+export const getApplyList = (params) => {
+	return http.request({
+		url: '/blade-userPublicEnroll/userPublicEnroll/page',
+		method: 'GET',
+		params: {
+			...params
+		}
+	})
+}
+//获取报名详情
+export const getApplyDetail = (params) => {
+	return http.request({
+		url: '/public_discuss/publicDiscuss/detail',
+		method: 'GET',
+		params: {
+			...params
+		}
+	})
+}
+
+//添加报名
+export const addApply = (params) => {
+	return http.request({
+		url: '/blade-userPublicEnroll/userPublicEnroll/save',
+		method: 'POST',
+		data:params
+	})
+}
+
+//获取投票议题
+export const getVoteTopics = (params) => {
+	return http.request({
+		url: '/blade-topics/topics/lists',
+		method: 'GET',
+		params: {
+			...params
+		}
+	})
+}
+
+//投票操作
+export const addVoteOperate = (params) => {
+	return http.request({
+		url: '/blade-topics/topics/updateBath',
+		method: 'POST',
+		data:params
+	})
+}
diff --git a/common/setting.js b/common/setting.js
index a513f88..4e3193e 100644
--- a/common/setting.js
+++ b/common/setting.js
@@ -12,8 +12,8 @@
 	// devUrl: 'https://sk.hubeishuiyi.cn',
 	// devUrl: 'http://192.168.1.156:9528',
 	// 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:'https://srgdjczzxtpt.com:2080/api',
 	// devUrl: 'http://192.168.0.102:9528',
 	// devUrl: 'https://srgdjczzxtpt.com:2080/api',
 	minioBaseUrl: "https://srgdjczzxtpt.com:2080/gminio/jczz/",
diff --git a/components/noticeList/noticeList.vue b/components/noticeList/noticeList.vue
index 0379d6a..dd36a49 100644
--- a/components/noticeList/noticeList.vue
+++ b/components/noticeList/noticeList.vue
@@ -1,6 +1,6 @@
 <template>
 	<view class="">
-		<view class="notice-list" @click="navToDetail(item.id)" v-for="(item,index) in data" :key="index">
+		<view class="notice-list" @click="navToDetail(item.id,item.eventType,item.pdId)" v-for="(item,index) in data" :key="index">
 			<view v-if="item.url" class="notice-inner flex j-c-s-b">
 				<view class="notice-list-left flex f-d-c j-c-s-b">
 					<text class="notice-title f-28 fw">{{item.title}}</text>
@@ -50,10 +50,16 @@
 			}
 		},
 		methods: {
-			navToDetail(id) {
-				uni.navigateTo({
-					url: `/subPackage/article/detail?id=${id}`
-				})
+			navToDetail(id,type,pdId) {
+				if(type == 0 || type == 1){
+					uni.navigateTo({
+						url: `/subPackage/article/detail?id=${id}&type=${type}&pdId=${pdId}`
+					})
+				}else {
+					uni.navigateTo({
+						url: `/subPackage/article/detail?id=${id}`
+					})
+				}
 			}
 		}
 	}
diff --git a/pages.json b/pages.json
index 2f9cd64..5cda403 100644
--- a/pages.json
+++ b/pages.json
@@ -101,7 +101,7 @@
 				{
 					"path": "detail",
 					"style": {
-						"navigationBarTitleText": "公告详情",
+						"navigationBarTitleText": "详情",
 						"enablePullDownRefresh": false,
 						"navigationBarBackgroundColor": "#fff",
 						"navigationBarTextStyle": "black"
diff --git a/pages/home/index.vue b/pages/home/index.vue
index efd4901..a9284bb 100644
--- a/pages/home/index.vue
+++ b/pages/home/index.vue
@@ -72,11 +72,11 @@
 				<caption-row title="社区" />
 				<view class="mt-20">
 					<u-grid :border="false" col="4">
-						<u-grid-item @click="navigatorPage('/subPackage/article/list')">
+						<u-grid-item @click="navigatorPage(`/subPackage/article/list?type=0`)">
 							<u-icon name="/static/icon/nav-09.png" width="90rpx" height="70rpx"></u-icon>
 							<text class="f-26  mt-10">公益报名</text>
 						</u-grid-item>
-						<u-grid-item @click="navigatorPage('/subPackage/article/list')">
+						<u-grid-item @click="navigatorPage(`/subPackage/article/list?type=1`)">
 							<u-icon name="/static/icon/nav-10.png" width="90rpx" height="70rpx"></u-icon>
 							<text class="f-26  mt-10">选举调查</text>
 						</u-grid-item>
@@ -398,7 +398,6 @@
 						this.curSelectSite = dataList[0];
 					}
 					this.curHouseCode = this.curSelectSite.id
-					uni.setStorageSync('curSelectSite', this.curSelectSite)
 				}
 			},
 
diff --git a/subPackage/article/detail.vue b/subPackage/article/detail.vue
index a34eb5c..88afa72 100644
--- a/subPackage/article/detail.vue
+++ b/subPackage/article/detail.vue
@@ -1,7 +1,5 @@
 <template>
 	<view class="">
-
-
 		<view class="container">
 			<view class="f-32 fw">{{detailInfo.title}}</view>
 			<view class="row flex j-c-s-b a-i-c c-99">
@@ -24,63 +22,75 @@
 				<u-parse :content="detailInfo.content"></u-parse>
 			</view>
 		</view>
-		<view class=""  v-if="false">
-			<view class="explain-row c-main  f-28">
-				报名和投票先指定好房屋
-			</view>
-			<view class="select-row flex j-c-s-b a-i-c">
-				<text class="f-28">指定房屋</text>
-				<view class="select-row-content flex a-i-c">
-					<text class="f-26 c-99 mr-20"></text>
-					<u-icon name="arrow-right"  color="#999"></u-icon>
-				</view>
-			</view>
-			<!-- <view class="apply">
-				<view class="flex f-d-c a-i-c">
-					<view class="flex mb-20">
-						<image class="apply-user" src="/static/icon/nav-02.png" mode=""></image>
-						<image class="apply-user" src="/static/icon/nav-02.png" mode=""></image>
-						<image class="apply-user" src="/static/icon/nav-02.png" mode=""></image>
+
+		<view class="" v-if="isLoad">
+			<view class="" v-if="eventType == 0 && applyInfo.openFlag == 0">
+				<!-- <view class="explain-row c-main  f-28">
+					报名和投票先指定好房屋
+				</view> -->
+				<view class="select-row flex j-c-s-b a-i-c">
+					<text class="f-28">房屋</text>
+					<view class="select-row-content flex a-i-c">
+						<text class="f-26 c-99 mr-20">{{siteInfo.name}}</text>
+						<!-- <u-icon name="arrow-right" color="#999"></u-icon> -->
 					</view>
-					<text class="f-28 c-99">共3人</text>
 				</view>
-				<button class="apply-btn bgc-main c-ff f-30">报名</button>
-			</view> -->
-			
-			<view class="mt-20"  >
+				<view class="apply">
+					<view class="flex f-d-c a-i-c" v-if="applyList.length">
+						<view class="flex mb-20">
+							<image v-for="i in applyList" class="apply-user" src="/static/icon/user-01.png" mode="aspectFill">
+							</image>
+						</view>
+						<text class="f-28 c-99">共{{applyList.length}}人</text>
+					</view>
+					<button class="apply-btn bgc-main c-ff f-30" v-if="computeEndTime > 0"
+						@click="handleApply()"  :disabled="applyInfo.userId">{{applyInfo.userId?"已报名":"报名"}}</button>
+					<button class="apply-btn bgc-main c-ff f-30" v-if="computeEndTime <= 0"
+						:disabled="true">已结束</button>
+				</view>
+			</view>
+
+			<view class="mt-20" v-if="eventType == 1 && voteTopicList.length">
 				<view class="explain-row c-main  f-28">
 					投票进行中
 				</view>
 				<view class="vote bgc-ff">
-					<view class="vote-title f-30 fw">
-						是否同意安装充电桩
-					</view>
-					<view class="">
-						<u-radio-group 
-						    iconPlacement="right"
-							activeColor="#017BFC"
-							placement="column"
-							>
-							<view class="mb-20">
-								<u-radio  label="同意"  ></u-radio>
-								<view class="flex j-c-s-b a-i-c mt-10">
-									<uv-line-progress :percentage="30"  height="10" ></uv-line-progress>
-									<text class="c-99 f-28">10</text>
+					<view class="" v-for="(item,index) in voteTopicList" :key="index">
+						<view class="vote-title f-30 fw">
+							{{item.discussContent}}
+						</view>
+						<view class="" v-if="item.optionRange == 0">
+							<u-radio-group iconPlacement="right" activeColor="#017BFC" placement="column"
+								v-model="item.selected" @change="selectOption($event,index)" :disabled="isSubmit">
+								<view class="mb-20" v-for="(i,k) in item.children">
+									<u-radio :label="i.optionContent" :name="i.id"></u-radio>
+									<view class="flex j-c-s-b a-i-c mt-10">
+										<uv-line-progress height="10"></uv-line-progress>
+										<text class="c-99 f-28" v-if="i.number">{{i.number}}人</text>
+									</view>
 								</view>
-								
-							</view>
-							<view class="">
-								<u-radio  label="不同意"  ></u-radio>
-								<view class="flex j-c-s-b a-i-c mt-10">
-									<uv-line-progress   height="10" ></uv-line-progress>
-									<text class="c-99 f-28">10</text>
+							</u-radio-group>
+						</view>
+						<view class="" v-if="item.optionRange == 1">
+							<u-checkbox-group iconPlacement="right" activeColor="#017BFC" placement="column"
+								v-model="item.selected" :disabled="isSubmit"   @change="selectOption($event,index)">
+								<view class="mb-20" v-for="(i,k) in item.children" :key="k">
+									<u-checkbox :label="i.optionContent" :name="i.id"></u-checkbox>
+									<view class="flex j-c-s-b a-i-c mt-10">
+										<!-- <uv-line-progress :percentage="10" height="10"></uv-line-progress> -->
+										<uv-line-progress height="10"></uv-line-progress>
+										<text class="c-99 f-28" v-if="i.number">{{i.number}}人</text>
+									</view>
 								</view>
-							</view>
-						</u-radio-group>
+							</u-checkbox-group>
+						</view>
 					</view>
+					<button class="apply-btn bgc-main c-ff f-30" v-if="computeEndTime > 0" @click="submitVote()"
+						:disabled="isSubmit">{{isSubmit?"已提交":"提交"}}</button>
+					<button class="apply-btn bgc-main c-ff f-30" v-if="computeEndTime <= 0"
+						:disabled="true">已结束</button>
 				</view>
 			</view>
-			
 		</view>
 
 		<!-- <view class="action flex flex_base">
@@ -98,25 +108,175 @@
 	import {
 		getDetail
 	} from '@/api/article/article.js'
+	import * as communityModel from "@/api/community/community.js"
 	import tagCell from '@/components/noticeList/tagCell.vue'
+	import {
+		jsonString
+	} from '../../uni_modules/uv-ui-tools/libs/function/test'
 	export default {
 		components: {
 			tagCell
 		},
 		data() {
 			return {
+				params: {
+					id: ""
+				},
+				eventType: null,
 				detailInfo: {},
+				pdId: "",
+				siteInfo: {},
+				applyList: [],
+				applyInfo: {},
+				isLoad: false,
+				voteTopicList: [],
+				isSubmit: false // 是否已提交投票
 			}
 		},
 		onLoad(option) {
-			this.getDetailInfo(option.id)
+			this.$set(this.params, "id", option.id);
+			if (option.type) {
+				this.$set(this.params, "eventType", option.type);
+				this.eventType = option.type;
+				this.pdId = option.pdId;
+				this.siteInfo = uni.getStorageSync("siteInfo")
+			}
+			this.getDetailInfo()
 		},
+
+		computed: {
+			computeEndTime() {
+				let curTimestamp = new Date().getTime();
+				let endTimestamp = new Date(this.applyInfo.endTime).getTime();
+				return endTimestamp - curTimestamp
+			}
+		},
+
 		methods: {
-			getDetailInfo(id) {
-				getDetail({
-					id
-				}).then(res => {
+
+			toNumber(val) {
+				return Number(val)
+			},
+
+			getDetailInfo() {
+				getDetail(this.params).then(res => {
+					this.isLoad = true;
 					this.detailInfo = res.data;
+					if (this.pdId) {
+						this.getApplyDetail()
+					}
+					if (this.eventType == 0) {
+						this.getApplyList();
+					}
+					if (this.eventType == 1) {
+						this.getVoteList();
+					}
+				})
+			},
+
+			//报名列表
+			getApplyList() {
+				communityModel.getApplyList({
+					publicDiscussId: this.pdId
+				}).then(res => {
+					console.log(res)
+					if (res.code == 200) {
+						this.applyList = res.data.records;
+					}
+				})
+			},
+
+			//报名、投票详情
+			getApplyDetail() {
+				communityModel.getApplyDetail({
+					id: this.pdId
+				}).then(res => {
+					console.log(res)
+					if (res.code == 200) {
+						this.applyInfo = res.data;
+					}
+				})
+			},
+
+			//获取投票议题
+			getVoteList() {
+				communityModel.getVoteTopics({
+					publicDiscussId: this.pdId
+				}).then(res => {
+					if (res.code == 200) {
+						let data = res.data;
+						if (data.length) {
+							for (let i of data) {
+								if(i.selected){
+									if (typeof i.selected == "string" && i.optionRange == 0) {
+										this.isSubmit = true;
+										i.selected = Number(i.selected)
+									}
+									if(typeof i.selected == "string" && i.optionRange == 1){
+										this.isSubmit = true;
+										i.selected = JSON.parse(i.selected)
+									}
+								}
+							}
+						}
+						this.voteTopicList = data;
+					}
+				})
+			},
+
+			//报名
+			handleApply() {
+				communityModel.addApply({
+					publicDiscussId: this.pdId
+				}).then(res => {
+					if (this.computeEndTime > 0) {
+						if (res.code == 200) {
+							uni.showToast({
+								title: "操作成功"
+							})
+							this.getApplyList();
+						}
+					} else {
+						uni.showToast({
+							title: "报名已结束",
+							icon: "none"
+						})
+					}
+				})
+			},
+
+			selectOption(id, index) {
+				let item = this.voteTopicList[index];
+				item.selected = id;
+				this.$set(this.voteTopicList, index, item);
+			},
+
+			getParams() {
+				let list = JSON.parse(JSON.stringify(this.voteTopicList));
+				let arr = [];
+				for (let i of list) {
+					if (i.selected) {
+						delete i.children;
+						i.selected = JSON.stringify(i.selected)
+						arr.push(i)
+					}
+				}
+				return arr;
+			},
+
+			//提交投票
+			submitVote() {
+				let data = this.getParams()
+				communityModel.addVoteOperate(data).then(res => {
+					if (res.code == 200) {
+						uni.showToast({
+							title: "操作成功"
+						})
+						this.$nextTick(() => {
+							this.getApplyDetail();
+							this.getVoteList();
+						})
+					}
 				})
 			}
 		}
@@ -124,9 +284,10 @@
 </script>
 
 <style lang="scss">
-	page{
+	page {
 		background-color: #f5f5f5;
 	}
+
 	.container {
 		padding: 0 30rpx;
 		background-color: #fff;
@@ -137,7 +298,7 @@
 	}
 
 	.content {
-		padding-bottom:30rpx;
+		padding-bottom: 30rpx;
 	}
 
 	.action-item {
@@ -155,38 +316,48 @@
 		background-color: rgb(236, 244, 255);
 		padding: 20rpx;
 	}
-	.select-row{
-		padding:30rpx;
-		background-color:#fff;
+
+	.select-row {
+		padding: 30rpx;
+		background-color: #fff;
 		box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2);
-		.select-row-content{
-			flex:1;
+		border-top: 1px solid #f5f5f5;
+
+		.select-row-content {
+			width: 80%;
 			justify-content: flex-end;
 		}
 	}
-	.apply{
-		padding:30rpx;
-		.apply-user{
-			width:80rpx;
-			height:80rpx;
+
+	.apply {
+		padding: 30rpx;
+
+		.apply-user {
+			width: 80rpx;
+			height: 80rpx;
 			border-radius: 50%;
-			margin-right:-15rpx;
-			border:1px solid #fff;
+			margin-right: -15rpx;
+			border: 1px solid #fff;
 		}
-		.apply-btn{
-			width:100%;
-			height:80rpx;
-			line-height: 80rpx;
-			margin: 30rpx auto 0;
-			border:none;
-			border-radius: 40rpx;
-			
-		}
+
+
 	}
-	.vote{
-		padding:0 40rpx 30rpx;
-		.vote-title{
-			padding:30rpx 0;
+
+	.apply-btn {
+		width: 100%;
+		height: 80rpx;
+		line-height: 80rpx;
+		margin: 30rpx auto 0;
+		border: none;
+		border-radius: 40rpx;
+
+	}
+
+	.vote {
+		padding: 0 40rpx 30rpx;
+
+		.vote-title {
+			padding: 30rpx 0;
 		}
 	}
 </style>
\ No newline at end of file
diff --git a/subPackage/article/list.vue b/subPackage/article/list.vue
index 1de48c3..a3833d6 100644
--- a/subPackage/article/list.vue
+++ b/subPackage/article/list.vue
@@ -1,11 +1,11 @@
 <template>
 	<view class="">
-		<view class="tab">
+		<view class="tab" v-if="tabList.length">
 			<u-tabs :list="tabList" :current="tabIndex" keyName="dictValue" @change="changeTab"
 				:inactiveStyle="{color:'#999999'}" :activeStyle="{color:'#017BFC'}"></u-tabs>
 		</view>
 		<view class="list bgc-ff">
-			<notice-list   :data="list"  />
+			<notice-list :data="list" />
 		</view>
 		<u-loadmore :status="loadingStatus" loadmoreText="开始加载" loadingText="数据加载中" nomoreText="没有更多了" line />
 	</view>
@@ -18,7 +18,7 @@
 	} from "@/api/article/article.js";
 	import noticeList from "@/components/noticeList/noticeList.vue"
 	export default {
-		components:{
+		components: {
 			noticeList
 		},
 		data() {
@@ -28,12 +28,28 @@
 				tabIndex: 0,
 				list: [],
 				currentPage: 1,
-				loadingStatus: 'nomore'
+				loadingStatus: 'nomore',
+				eventType: ""
 			}
 		},
-		onLoad() {
-			this.getCateList()
-
+		onLoad(option) {
+			if (option.type) {
+				this.eventType = option.type;
+				if (option.type == 0) {
+					this.tabList = [{
+						dictKey: "",
+						dictValue: "公益报名"
+					}]
+				} else {
+					this.tabList = [{
+						dictKey: "",
+						dictValue: "选举调查"
+					}]
+				}
+				this.getNoticeList()
+			} else {
+				this.getCateList()
+			}
 		},
 		onReachBottom() {
 			this.currentPage++
@@ -52,7 +68,7 @@
 
 			getCateList() {
 				getCategory({
-					parentId: '1722966265111248897'
+					parentId: '1722966265111248897',
 				}).then(res => {
 					console.log(res)
 					let data = res.data;
@@ -71,7 +87,8 @@
 				const param = {
 					size: 10,
 					current: this.currentPage,
-					articleType: this.tabId
+					articleType: this.tabId,
+					eventType: this.eventType
 				}
 				const res = await getPage(param)
 				const {
@@ -91,8 +108,8 @@
 				this.loadingStatus = 'nomore'
 
 			},
-			navTo(id) {
-				this.$u.func.globalNavigator(`detail?id=${id}`, "navTo")
+			navTo(id, type) {
+				this.$u.func.globalNavigator(`detail?id=${id}&type=${type}`, "navTo")
 			}
 		}
 	}
@@ -102,6 +119,7 @@
 	page {
 		background-color: #f5f5f5;
 	}
+
 	.tab {
 		width: 100%;
 		height: 88rpx;
@@ -118,8 +136,9 @@
 		box-sizing: border-box;
 		z-index: 999;
 	}
+
 	.list {
 		margin-top: 108rpx;
-		padding:0 30rpx;
+		padding: 0 30rpx;
 	}
 </style>
\ No newline at end of file
diff --git a/subPackage/bs/views/addRepair.vue b/subPackage/bs/views/addRepair.vue
index 86ba038..e353e54 100644
--- a/subPackage/bs/views/addRepair.vue
+++ b/subPackage/bs/views/addRepair.vue
@@ -86,7 +86,7 @@
 			this.info.type = option.type
 		},
 		onShow() {
-			this.curSelectSite = uni.getStorageSync('curSelectSite')
+			this.curSelectSite = uni.getStorageSync('siteInfo')
 			this.info.addressCode = this.curSelectSite.id
 			console.log(this.curSelectSite);
 		},
diff --git a/subPackage/bs/views/repair.vue b/subPackage/bs/views/repair.vue
index e3460b6..c76519d 100644
--- a/subPackage/bs/views/repair.vue
+++ b/subPackage/bs/views/repair.vue
@@ -1,247 +1,194 @@
 <template>
 	<view class="">
-		<u-navbar height="48" :autoBack="true" safeAreaInsetTop placeholder bgColor="transparent" leftIconColor="#fff">
+		<u-navbar height="48" :autoBack="true"  safeAreaInsetTop placeholder  bgColor="transparent"  leftIconColor="#fff">
 		</u-navbar>
 		<view class="top">
 			<image class="top-img" src="/static/img/repair-bg.png" mode="aspectFill"></image>
 		</view>
-
+		
 		<view class="container">
 			<view class="c-ff f-36">请选择您需要的服务</view>
 			<view class="serve-box bgc-ff mb-20 flex j-c-s-b a-i-c">
 				<view class="flex a-i-c">
-					<u-icon name="/static/icon/nav-09.png" width="91rpx" height="70rpx"></u-icon>
+					<u-icon name="/static/icon/nav-09.png"  width="91rpx"  height="70rpx"></u-icon>
 					<view class="flex f-d-c ml-40">
 						<text class="f-36">总申请</text>
 						<view class="flex a-i-c">
-							<text class="f-48 c-blue fw mr-6">{{statistic.total}}</text>
+							<text class="f-48 c-blue fw mr-6">50</text>
 							<text class="f-24 c-99">件</text>
 						</view>
 					</view>
 				</view>
 				<view class="flex a-i-c">
-					<u-icon name="/static/icon/nav-10.png" width="91rpx" height="70rpx"></u-icon>
+					<u-icon name="/static/icon/nav-10.png"  width="91rpx"  height="70rpx"></u-icon>
 					<view class="flex f-d-c ml-40">
 						<text class="f-36">已处理</text>
 						<view class="flex a-i-c">
-							<text class="f-48 c-green fw mr-6">{{statistic.handle}}</text>
+							<text class="f-48 c-green fw mr-6">50</text>
 							<text class="f-24 c-99">件</text>
 						</view>
 					</view>
 				</view>
 			</view>
-
+			
 			<view class="site-box bgc-ff flex">
 				<view class="flex a-i-c">
 					<u-icon name="map-fill" color="#AAAAAA"></u-icon>
 					<text class="f-28 c-aa ml-20">当前小区:</text>
 				</view>
-
-				<text class="address f-28">{{ curSelectSite.name }}</text>
+				
+				<text class="address f-28">万达华府26栋1903室 万达华府26栋1903室</text>
 			</view>
-
+			
 			<view class="nav flex flex-wrap j-c-s-b">
-
-				<view class="nav-item" v-for="(i,k) in navList" :key="k" @click="navTo(i)">
+				
+				<view class="nav-item"  v-for="(i,k) in navList"  :key="k"   @click="navTo(i.path)">
 					<image class="nav-item-bg" :src="i.bgImg" mode="aspectFill"></image>
 					<view class="nav-item-inner flex f-d-c">
 						<text class="f-32 mb-30">{{i.title}}</text>
-						<button class="item-btn" :style="{backgroundColor:i.background}">立即上报</button>
+						<button class="item-btn"   :style="{backgroundColor:i.background}">立即上报</button>
 					</view>
 				</view>
-
-
+				
+				
 			</view>
 		</view>
-
+		
 	</view>
-
+	
 </template>
 
 <script>
-	import {
-		getStatistics
-	} from '@/api/task/taskReportForRepairs'
 	export default {
-		data() {
+		data(){
 			return {
-				statistic: {
-					total: 0,
-					handle: 0,
-				},
-				curSelectSite: {},
-				navList: [{
-						title: "公共维修",
-						type: 1,
-						bgImg: "/static/icon/nav-bg-06.png",
-						path: `addRepair`,
-						background: "#63C875"
+				navList:[
+					{
+						title:"公共维修",
+						bgImg:"/static/icon/nav-bg-06.png",
+						path:"addRepair",
+						background:"#63C875"
 					},
 					{
-						title: "居家维修",
-						type: 2,
-						bgImg: "/static/icon/nav-bg-07.png",
-						path: "addRepair",
-						background: "#4D98E2"
+						title:"居家维修",
+						bgImg:"/static/icon/nav-bg-07.png",
+						path:"",
+						background:"#4D98E2"
 					},
 					{
-						title: "矛盾纠纷",
-						type: 3,
-						bgImg: "/static/icon/nav-bg-08.png",
-						path: "addRepair",
-						background: "#EC7E51"
+						title:"矛盾纠纷",
+						bgImg:"/static/icon/nav-bg-08.png",
+						path:"",
+						background:"#EC7E51"
 					},
 					{
-						title: "投诉举报",
-						type: 4,
-						bgImg: "/static/icon/nav-bg-09.png",
-						path: "addRepair",
-						background: "#F4B862"
+						title:"投诉举报",
+						bgImg:"/static/icon/nav-bg-09.png",
+						path:"",
+						background:"#F4B862"
 					},
-					{
-						title: "企业商户上报",
-						type: 5,
-						bgImg: "/static/icon/nav-bg-09.png",
-						path: "addRepair",
-						background: "#F4B862"
-					},
-
+					
 				]
 			}
 		},
-		computed: {
-
-		},
-		onShow() {
-			this.getStatistics()
-			this.curSelectSite = uni.getStorageSync('curSelectSite')
-			console.log(this.curSelectSite);
-		},
-
-		methods: {
-			navTo(item) {
-				if (item.path) {
-					let url = item.path + "?title=" + item.title + "&type=" + item.type
-					this.$u.func.globalNavigator(url, "navTo")
+		methods:{
+			navTo(path){
+				if(path){
+					this.$u.func.globalNavigator(path, "navTo")
 				}
-			},
-
-			getStatistics() {
-				getStatistics().then(res => {
-					this.statistic = res.data
-				})
+				
 			}
-
-
 		}
 	}
 </script>
 
 <style lang="scss">
-	page {
-		width: 100%;
-		height: 100%;
+	page{
+		width:100%;
+		height:100%;
 	}
-
-	.top {
-		width: 100%;
-		height: 659rpx;
-		background: linear-gradient(180deg, #017BFC 0%, rgba(1, 123, 252, 0) 100%);
+	.top{
+		width:100%;
+		height:659rpx;
+		background: linear-gradient(180deg, #017BFC 0%, rgba(1,123,252,0) 100%);
 		position: fixed;
-		top: 0;
-		left: 0;
-
-		.top-img {
-			width: 100%;
-			height: 659rpx;
+		top:0;
+		left:0;
+		.top-img{
+			width:100%;
+			height:659rpx;
 		}
 	}
-
-	.container {
-		width: 100%;
+	.container{
+		width:100%;
 		padding: 0 30rpx;
 		position: fixed;
 		box-sizing: border-box;
-		top: 130rpx;
-		left: 0;
+		top:130rpx;
+		left:0;
 		z-index: 100;
-
-		.serve-box {
-			width: 100%;
-			height: 213rpx;
+		.serve-box{
+			width:100%;
+			height:213rpx;
 			border-radius: 8rpx;
-			margin-top: 30rpx;
+			margin-top:30rpx;
 			padding: 0 60rpx 0 40rpx;
 			box-sizing: border-box;
 		}
-
-		.f-48 {
-			font-size: 48rpx;
+		.f-48{
+			font-size:48rpx;
 		}
-
-		.c-blue {
-			color: #677CF8;
-
+		.c-blue{
+			color:#677CF8;
+			
 		}
-
-		.c-green {
-			color: #30D17C;
+		.c-green{
+			color:#30D17C;
 		}
-
-		.ml-40 {
-			margin-left: 40rpx;
+		.ml-40{
+			margin-left:40rpx;
 		}
-
-		.site-box {
-			width: 100%;
-			padding: 30rpx;
+		.site-box{
+			width:100%;
+			padding:30rpx;
 			box-sizing: border-box;
 			border-radius: 4rpx;
-
-			.c-aa {
-				color: #aaa;
+			.c-aa{
+				color:#aaa;
 			}
-
-			.address {
-				width: 60%;
-				margin-left: 25rpx;
+			.address{
+				width:60%;
+				margin-left:25rpx;
 			}
 		}
-
-		.nav {
-			width: 100%;
-
-			.nav-item,
-			.nav-item-bg,
-			.nav-item-inner {
-				width: 330rpx;
-				height: 167rpx;
+		.nav{
+			width:100%;
+			.nav-item,.nav-item-bg,.nav-item-inner{
+				width:330rpx;
+				height:167rpx;
 			}
-
-			.nav-item {
+			.nav-item{
 				position: relative;
-				margin-top: 30rpx;
+				margin-top:30rpx;
 			}
-
-			.nav-item-inner {
-				padding: 30rpx 30rpx 0;
+			.nav-item-inner{
+				padding:30rpx 30rpx 0;
 				position: absolute;
-				top: 0;
-				left: 0;
-
+				top:0;
+				left:0;
+				
 			}
-
-			.item-btn {
-				width: 125rpx;
-				height: 42rpx;
+			.item-btn{
+				width:125rpx;
+				height:42rpx;
 				line-height: 42rpx;
 				border-radius: 20rpx;
-				color: #fff;
-				font-size: 22rpx;
-				padding: 0;
-				margin: 0;
+				color:#fff;
+				font-size:22rpx;
+				padding:0;
+				margin:0;
 			}
 		}
-
+		
 	}
 </style>
\ No newline at end of file
diff --git a/subPackage/house/family/index.vue b/subPackage/house/family/index.vue
index a2e2431..a71ad31 100644
--- a/subPackage/house/family/index.vue
+++ b/subPackage/house/family/index.vue
@@ -6,7 +6,7 @@
 				<view>{{ curSelectSite.name }}/{{housingName}}{{buildingName}}</view>
 			</view>
 			<view class="h0 flex-1 build-list-box content">
-				<u-collapse  :value="buildingList.length == 1?['0']:''">
+				<u-collapse :value="buildingList.length == 1?['0']:''">
 					<u-collapse-item v-if="isShowBuild" style="border: none;" :name="index" :title="item.unitName"
 						:icon="'/static/icon/group.png'" v-for="(item, index) in buildingList" :key="index">
 						<!-- :title="item.unitName" -->
@@ -21,8 +21,8 @@
 							<view class="room-content">
 								<u-grid class="flex flex-wrap" col="2" :border="true">
 									<u-grid-item v-for="(scItem, scIndex) in cItem.children" :key="scItem.id"
-										 @click="pushPage(scIndex,cItem.children)">
-										<view class="room-box flex f-d-c"  >
+										@click="pushPage(scIndex,cItem.children)">
+										<view class="room-box flex f-d-c">
 											<view class="flex a-i-c j-c-s-b">
 												<view class="l">
 													<u-icon name="/static/icon/person.png" size="16"></u-icon>
@@ -33,7 +33,6 @@
 															主
 														</view>
 													</view>
-
 													<view v-show="!!scItem.roleType == 1">
 														<u-icon name="/static/icon/selected.png" size="16"></u-icon>
 													</view>
@@ -42,13 +41,12 @@
 
 											<view class="flex floor-info-box">
 												<view class="l flex proprietor-box">
-													{{scItem.realName}}
+													{{scItem.realName || ""}}
 												</view>
 												<view class="r floor-box">
 													{{scItem.houseNo}}
 												</view>
 											</view>
-
 										</view>
 									</u-grid-item>
 								</u-grid>
@@ -120,7 +118,7 @@
 
 		},
 		onShow() {
-			this.curSelectSite = uni.getStorageSync('curSelectSite')
+			this.curSelectSite = uni.getStorageSync('siteInfo')
 		},
 		mounted() {
 			this.getBuildingList()
@@ -165,7 +163,7 @@
 					})
 				}
 			},
-			pushPage(index,item) {
+			pushPage(index, item) {
 				let code = item[index].addressCode;
 				let url = `/subPackage/house/roomDetails/index?id=${code}`
 				this.$u.func.globalNavigator(url, "navTo")
@@ -275,6 +273,7 @@
 					width: 0;
 					flex: 1;
 					padding: 12rpx;
+
 					.room-box {
 						padding: 10rpx;
 						justify-content: center;
diff --git a/subPackage/house/list/index.vue b/subPackage/house/list/index.vue
index 95e6999..db29445 100644
--- a/subPackage/house/list/index.vue
+++ b/subPackage/house/list/index.vue
@@ -67,7 +67,7 @@
 
 		},
 		onShow() {
-			this.curSelectSite = uni.getStorageSync('curSelectSite')
+			this.curSelectSite = uni.getStorageSync('siteInfo')
 		},
 		mounted() {
 			this.getHouseInfo()
diff --git a/subPackage/task/index.vue b/subPackage/task/index.vue
index 9b1249e..aae0015 100644
--- a/subPackage/task/index.vue
+++ b/subPackage/task/index.vue
@@ -49,6 +49,16 @@
 					<u-icon name="arrow-right" color="#999"></u-icon>
 				</view>
 			</view>
+			<view class="nav-item flex j-c-s-b a-i-c" @click="navTo('/subPackage/task/taskList')">
+				<text class="f-28">标签报事</text>
+				<view class="flex">
+					<block v-if="comprehensiveTask > 0">
+						<text class="f-28 c-99">待处理</text>
+						<view class="dot bgc-main">{{countInfo.comprehensiveTask}}</view>
+					</block>
+					<u-icon name="arrow-right" color="#999"></u-icon>
+				</view>
+			</view>
 			<!-- <view class="nav-item flex j-c-s-b a-i-c">
 				<text class="f-28">工作日志</text>
 				<view class="flex">
diff --git a/subPackage/workbench/views/report.vue b/subPackage/workbench/views/report.vue
index cabbc65..9c5a8b1 100644
--- a/subPackage/workbench/views/report.vue
+++ b/subPackage/workbench/views/report.vue
@@ -28,7 +28,7 @@
 				</view>
 				<view class="item-row flex a-i-c j-c-s-b">
 					<text class="f-28">地址</text>
-					<text class="f-28 c-66">{{ item.addressName }}</text>
+					<text class="address f-28 c-66">{{ item.addressName }}</text>
 				</view>
 			</view>
 		</view>
@@ -190,9 +190,8 @@
 
 		.item-row {
 			padding: 10rpx 0;
-
 			.address {
-				width: 65%;
+				width: 75%;
 			}
 		}
 	}

--
Gitblit v1.9.3