From ed3eff368eb421028ae898950ea4796e4c5b6e0a Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Thu, 30 Nov 2023 18:38:13 +0800
Subject: [PATCH] 优化修复部分问题,圈子发布页面编写,圈子列表与发布数据交互

---
 subPackage/bs/views/repairRecord.vue       |    4 
 subPackage/circle/detail.vue               |   68 ++++++
 components/btn/footerBtn.vue               |   50 ++++
 pages/circle/index.vue                     |   73 +++++
 subPackage/bs/views/zhsb.vue               |    8 
 pages.json                                 |   23 ++
 subPackage/article/detail.vue              |  122 ++++++----
 pages/home/index.vue                       |   76 ++++--
 api/circle/circle.js                       |   32 ++
 main.js                                    |    4 
 common/setting.js                          |    4 
 subPackage/workbench/views/reportAudit.vue |   66 ++++-
 pages/circle/publish.vue                   |   94 ++++++++
 subPackage/workbench/views/report.vue      |    4 
 14 files changed, 506 insertions(+), 122 deletions(-)

diff --git a/api/circle/circle.js b/api/circle/circle.js
new file mode 100644
index 0000000..4fb07ef
--- /dev/null
+++ b/api/circle/circle.js
@@ -0,0 +1,32 @@
+import http from '@/http/api.js'
+
+//发布圈子内容
+export const handlePublish = (params) => {
+	return http.request({
+		url: '/blade-circle/circle/save',
+		method: 'POST',
+		data: params
+	})
+}
+
+//获取圈子列表
+export const getList = (params) => {
+	return http.request({
+		url: '/blade-circle/circle/page',
+		method: 'GET',
+		params: {
+			...params
+		}
+	})
+}
+
+//获取圈子详情
+export const getDetail = (params) => {
+	return http.request({
+		url: '/blade-circle/circle/detail',
+		method: 'GET',
+		params: {
+			...params
+		}
+	})
+}
\ No newline at end of file
diff --git a/common/setting.js b/common/setting.js
index a837f6e..aa2c724 100644
--- a/common/setting.js
+++ b/common/setting.js
@@ -13,8 +13,8 @@
 	// 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.102: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/",
 	// minioBaseUrl:"http://192.168.0.103:9528/",
diff --git a/components/btn/footerBtn.vue b/components/btn/footerBtn.vue
new file mode 100644
index 0000000..ffbf5d7
--- /dev/null
+++ b/components/btn/footerBtn.vue
@@ -0,0 +1,50 @@
+<template>
+	<view class="footer">
+		<button class="footer-btn"   @click="handel">{{text}}</button>
+	</view>
+</template>
+
+<script>
+	export default {
+		name:"footerBtn",
+		props:{
+			text:{
+				type:String,
+				default:"提交"
+			}
+		},
+		methods:{
+			handel(){
+				this.$emit("click")
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.footer{
+		width:100%;
+		padding:20rpx 30rpx;
+		box-sizing: border-box;
+		position: fixed;
+		bottom:0;
+		left:0;
+		background-color: #fff;
+		z-index: 10;
+		bottom: env(safe-area-inset-bottom); 
+		
+		.footer-btn{
+			width:100%;
+			height: 78rpx;
+			line-height: 78rpx;
+			border-radius: 8rpx;
+			font-size: 32rpx;
+			color:#fff;
+			border:none;
+			background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%);
+		}
+		.footer-btn::after{
+			border:none;
+		}
+	}
+</style>
\ No newline at end of file
diff --git a/main.js b/main.js
index 43c3613..82ed2fa 100644
--- a/main.js
+++ b/main.js
@@ -4,7 +4,7 @@
 
 // import boxTitle from '@/components/boxTitle/index.vue';
 // Vue.component('box-title', boxTitle) // 
-
+import footerBtn from '@/components/btn/footerBtn.vue'
 Vue.config.productionTip = false;
 
 App.mpType = 'app';
@@ -12,7 +12,7 @@
 // 引入全局uView
 import uView from "uview-ui";
 Vue.use(uView);
-
+Vue.component('footer-btn', footerBtn) 
 // 引入vuex
 const vuexStore = require("@/store/$u.mixin.js");
 Vue.mixin(vuexStore);
diff --git a/pages.json b/pages.json
index 5f5e51a..c2c2878 100644
--- a/pages.json
+++ b/pages.json
@@ -34,6 +34,14 @@
 				"enablePullDownRefresh": false,
 				"navigationStyle": "custom"
 			}
+		},
+		{
+			"path": "pages/circle/publish",
+			"style": {
+				"navigationBarTitleText": "发布",
+				"navigationBarBackgroundColor": "#fff",
+				"navigationBarTextStyle": "black"
+			}
 		}
 
 	],
@@ -92,6 +100,21 @@
 				
 			]
 		},
+		//圈子
+		{
+			"root": "subPackage/circle",
+			"pages":[
+				{
+					"path":"detail",
+					"style": {
+						"navigationBarTitleText": "详情",
+						"enablePullDownRefresh": false,
+						"navigationBarBackgroundColor": "#fff",
+						"navigationBarTextStyle": "black"
+					}
+				}
+			]
+		},
 
 		//公告
 		{
diff --git a/pages/circle/index.vue b/pages/circle/index.vue
index 8b2045f..9fbdde5 100644
--- a/pages/circle/index.vue
+++ b/pages/circle/index.vue
@@ -8,19 +8,19 @@
 			</u-navbar>
 		</view>
 		<view class="content">
-			<view class="topic-item">
+			<view class="topic-item"   v-for="(item,index) in list"   @click="navToDetail(item.id)">
 				<view class="flex">
-					<u-avatar size="44"></u-avatar>
+					<u-avatar size="44"  :src="item.avatar"></u-avatar>
 					<view class="ml-10 flex f-d-c">
-						<text class="f-26 mb-10">张三</text>
-						<text class="f-22 c-66">1小时前发布</text>
+						<text class="f-26 mb-10">{{item.name}}</text>
+						<text class="f-22 c-66">{{item.createTime}}</text>
 					</view>
 				</view>
 				<view class="topic-content f-28">
-					租车位18970055016微信同号三栋附近最好,负一二楼都可以
+					{{item.circleText}}
 				</view>
-				<u-album :urls="urls" keyName="src"></u-album>
-				<view class="topic-action flex j-c-f-e">
+				<u-album v-if="item.circleImages"  :urls="setImgUrl(item.circleImages)" ></u-album>
+				<view class="topic-action flex j-c-f-e" >
 					<view class="flex a-i-c">
 						<u-icon name="heart-fill" color="#C4C8CB" size="24"></u-icon>
 						<text class="f-22 c-66 ml-10">10</text>
@@ -33,7 +33,7 @@
 			</view>
 		</view>
 		
-		<view class="float flex j-c-c a-i-c">
+		<view class="float flex j-c-c a-i-c"   @click="navToPublish">
 			<view class="float-box bgc-main flex j-c-c f-d-c a-i-c">
 				<u-icon name="plus"  color="#fff"  size="24"></u-icon>
 				<text class="f-26 c-ff">发布</text>
@@ -45,13 +45,66 @@
 </template>
 
 <script>
-	export default {
+	import { getList } from "@/api/circle/circle.js"
+	import { minioBaseUrl } from "@/common/setting.js"
+ 	export default {
 		data() {
 			return {
 				keyword: "",
 				urls: [{
 					src: 'https://cdn.uviewui.com/uview/album/1.jpg',
-				}]
+				}],
+				roleType:0,
+				list:[]
+			}
+		},
+		
+		onLoad(){
+			let role =  uni.getStorageSync('activeRole')
+			if(role.roleAlias == "inhabitant"){
+				this.roleType = 0
+			}else {
+				this.roleType = 1;
+			}
+			
+			this.getCircleList()
+          uni.$on("refreshList",()=>{
+			  this.getCircleList()
+		  })			
+		},
+		
+		methods:{
+			getCircleList(){
+				getList({
+					current:1,
+					size:20,
+					circleType:this.roleType
+				}).then(res=>{
+					if(res.code == 200){
+						this.list = res.data.records
+					}
+				})
+			},
+			
+			setImgUrl(str){
+				 let urls = str.split(",");
+				 let arr = [];
+				 for(let i of urls){
+					 arr.push(`${minioBaseUrl}${i}`)
+				 }
+				 return arr;
+			},
+			
+			navToDetail(id){
+				uni.navigateTo({
+					url:`/subPackage/circle/detail?id=${id}`
+				})
+			},
+			
+			navToPublish(){
+				uni.navigateTo({
+					url:"publish"
+				})
 			}
 		}
 	}
diff --git a/pages/circle/publish.vue b/pages/circle/publish.vue
index 2b49cfd..b5930b7 100644
--- a/pages/circle/publish.vue
+++ b/pages/circle/publish.vue
@@ -1,9 +1,99 @@
 <template>
-	
+	<view class="">
+		<view class="container">
+			<u--textarea v-model="content" placeholder="说点什么" border="none"></u--textarea>
+			<view class="upload flex flex-wrap">
+				<u-upload :fileList="form.images" :previewFullImage="uploadConfig.previewFullImage"
+					:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple" :maxCount="uploadConfig.maxCount"
+					:capture="uploadConfig.capture" @afterRead="afterReadImg" @delete="deletePic">
+					<view class="upload-item upload-icon flex_base">
+						<u-icon name="camera-fill" color="#DBDBDB" size="40"></u-icon>
+					</view>
+				</u-upload>
+			</view>
+			<view class="flex">
+				<u-icon name="info-circle-fill" color="#2DD3C2"></u-icon>
+				<text class="f-24 c-99 ml-20">请勿涉及不文明及违规内容,违法必究!发现违法内容及时向客服举报!</text>
+			</view>
+		</view>
+		<footer-btn @click="submitInfo" />
+	</view>
 </template>
 
 <script>
+	import uploadMixin from "@/mixin/uploadMixin";
+	import { handlePublish } from "@/api/circle/circle.js"
+	export default {
+		mixins: [uploadMixin],
+		data() {
+			return {
+				form: {
+					images: []
+				},
+				content:"",
+				roleType:0
+			}
+		},
+		
+		onLoad(){
+			let role =  uni.getStorageSync('activeRole')
+			if(role.roleAlias == "inhabitant"){
+				this.roleType = 0
+			}else {
+				this.roleType = 1;
+			}
+		},
+		
+		methods: {
+			
+			getImagesUrl(){
+                if(this.form.images.length){
+					let arr = [];
+					for(let i of this.form.images){
+						arr.push(i.name)
+					}
+					return arr.join(",")
+				}else {
+					return ""
+				} 				
+			},
+			
+			submitInfo() {
+                 handlePublish({
+					 circleText:this.content,
+					 circleImages:this.getImagesUrl(),
+					 circleType:this.roleType
+				 }).then(res=>{
+					 if(res.code == 200){
+						 uni.showToast({
+						 	title:res.msg
+						 })
+						 setTimeout(()=>{
+							 uni.navigateBack();
+							 uni.$emit("refreshList")
+						 },1000)
+					 }
+				 })
+			}
+		}
+	}
 </script>
 
-<style>
+<style lang="scss">
+	.container {
+		padding: 20rpx 30rpx 0;
+
+		.upload {
+			padding: 30rpx 0;
+			border-bottom: 1px solid #F5F5F5;
+			margin-bottom: 20rpx;
+		}
+
+		.upload-item {
+			width: 140rpx;
+			height: 140rpx;
+			border-radius: 8rpx;
+			background: #F5F5F5;
+		}
+	}
 </style>
\ No newline at end of file
diff --git a/pages/home/index.vue b/pages/home/index.vue
index 3dff512..bafacfe 100644
--- a/pages/home/index.vue
+++ b/pages/home/index.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="layout"   >
+	<view class="layout">
 		<u-navbar height="48" :autoBack="false" safeAreaInsetTop placeholder
 			@leftClick="selectBoxShow = !selectBoxShow">
 			<view slot="left" class="top flex">
@@ -141,7 +141,7 @@
 	} from "@/common/setting"
 	import noticeList from "@/components/noticeList/noticeList";
 	import captionRow from "@/components/caption/caption.vue"
-import taskListVue from "../../subPackage/task/taskList.vue";
+	import taskListVue from "../../subPackage/task/taskList.vue";
 
 	export default {
 		components: {
@@ -474,27 +474,25 @@
 				// 	}, 100)
 				// });
 				this.menuList = uni.getStorageSync("menu")
-				let liveList = this.hasMenu('生活')
-				console.log("liveList===>", liveList);
-				this.liveList = this.setLiveMenu(liveList);
+				this.liveList = this.setLiveMenu(this.hasMenu('生活'));
 				this.contactList = this.hasMenu('快捷拨号');
 				this.jobList = this.hasMenu('工作台')
 				if (this.menuList.length) {
 					this.getHouseMenu();
 					this.getNoticeMenu();
 				}
-				setTimeout(()=>{
-					if(this.jobList.length){
-						let taskList =  this.jobList.filter(item => item.name == "我的任务")
-						if(taskList.length){
-							uni.setStorageSync("taskMenu",taskList[0].children);
-						}else {
-							uni.setStorageSync("taskMenu",[]);
+				setTimeout(() => {
+					if (this.jobList.length) {
+						let taskList = this.jobList.filter(item => item.name == "我的任务")
+						if (taskList.length) {
+							uni.setStorageSync("taskMenu", taskList[0].children);
+						} else {
+							uni.setStorageSync("taskMenu", []);
 						}
-					}else {
-						uni.setStorageSync("taskMenu",[]);
+					} else {
+						uni.setStorageSync("taskMenu", []);
 					}
-				},200)
+				}, 200)
 			},
 
 			getHouseMenu() {
@@ -514,34 +512,53 @@
 
 
 			setLiveMenu(arr) {
-				if(arr.length){
-					let index = arr.findIndex(item => item.name == "标签报事")
-					let index2 = arr.findIndex(item => item.name == "租户上报")
+				if (arr.length) {
+					let index = this.getLiveMenuItem(arr, 1)
+					let index2 = this.getLiveMenuItem(arr, 2)
 					if (this.curSelectSite.addressType == 1) {
-						if (index != -1) {    
+						if (index != -1) {
 							arr.splice(index, 1)
+							index = this.getLiveMenuItem(arr, 1)
+							index2 = this.getLiveMenuItem(arr, 2)
 						}
-						if(index2 == -1){
+						if (index2 == -1) {
 							arr.push({
 								name: "租客上报",
 								path: "/subPackage/bs/views/zhsb",
 								pictureImg: "/static/icon/nav-04.png"
 							})
+							index = this.getLiveMenuItem(arr, 1)
+							index2 = this.getLiveMenuItem(arr, 2)
 						}
+
 					} else {
 						if (index == -1) {
 							arr.unshift({
 								name: "标签报事",
 								path: "/subPackage/label/index",
-								pictureImg: "/static/icon/nav-01.png"
+								pictureImg: "/static/icon/nav-11.png"
 							})
+							index = this.getLiveMenuItem(arr, 1)
+							index2 = this.getLiveMenuItem(arr, 2)
 						}
-						if(index2 != -1){
+						if (index2 != -1) {
 							arr.splice(index2, 1)
+							index = this.getLiveMenuItem(arr, 1)
+							index2 = this.getLiveMenuItem(arr, 2)
 						}
 					}
 				}
 				return arr;
+			},
+
+			getLiveMenuItem(arr, type) {
+				if (type == 1) {
+					let index = arr.findIndex(item => item.name == "标签报事")
+					return index;
+				} else {
+					let index2 = arr.findIndex(item => item.name == "租户上报")
+					return index2
+				}
 			},
 
 			// 页面跳转
@@ -634,14 +651,15 @@
 <style lang="scss">
 	page {
 		color: #333;
-        width:100%;
-		height:100%;
-		background-color:#fff;
+		width: 100%;
+		height: 100%;
+		background-color: #fff;
 	}
-	.layout{
-		width:100%;
-		height:100%;
-		background-color:#fff;
+
+	.layout {
+		width: 100%;
+		height: 100%;
+		background-color: #fff;
 	}
 
 	.top {
diff --git a/subPackage/article/detail.vue b/subPackage/article/detail.vue
index c8bb036..be85180 100644
--- a/subPackage/article/detail.vue
+++ b/subPackage/article/detail.vue
@@ -61,7 +61,7 @@
 					</view>
 				</view>
 				<view class="explain-row c-main  f-28">
-					投票{{computeEndTime > 0 || !isSubmit?"进行中":"已结束"}}
+					投票{{!isEnd && !isComplete?"进行中":"已结束"}}
 				</view>
 				<view class="vote bgc-ff">
 					<view class="mb-20" v-for="(item,index) in voteTopicList" :key="index">
@@ -71,18 +71,19 @@
 						</view>
 						<view class="" v-if="item.optionRange == 0">
 							<u-radio-group size="22" iconPlacement="right" activeColor="#017BFC" placement="column"
-								v-model="item.selected" @change="selectOption($event,index)" :disabled="isSubmit">
+								v-model="item.selected" @change="selectOption($event,index)"
+								:disabled="item.isSubmit || isEnd">
 								<view class="mb-30" 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">
 										<view class="mt-10" style="width:80%;">
-											<uv-line-progress v-if="item.selected"  height="6" :showText="false"
+											<uv-line-progress v-if="item.selected" height="6" :showText="false"
 												:percentage="getRatio(i.number)"
 												activeColor="#017BFC"></uv-line-progress>
-											<uv-line-progress  v-else  height="6" :showText="false"></uv-line-progress>
+											<uv-line-progress v-else height="6" :showText="false"></uv-line-progress>
 										</view>
 
-										<text class="c-33 f-28" v-if="i.number">{{i.number}}人</text>
+										<text class="c-33 f-28" v-if="i.number && item.isSubmit">{{i.number}}人</text>
 									</view>
 								</view>
 							</u-radio-group>
@@ -95,10 +96,10 @@
 									<u-checkbox :label="i.optionContent" :name="i.id"></u-checkbox>
 									<view class="flex j-c-s-b a-i-c mt-10">
 										<view class="mt-10" style="width:80%;">
-											<uv-line-progress v-if="item.selected"  height="6" :showText="false"
+											<uv-line-progress v-if="item.selected" height="6" :showText="false"
 												:percentage="getRatio(i.number)"
 												activeColor="#017BFC"></uv-line-progress>
-											<uv-line-progress  v-else  height="6" :showText="false"></uv-line-progress>
+											<uv-line-progress v-else height="6" :showText="false"></uv-line-progress>
 										</view>
 										<text class="c-33 f-28" v-if="i.number">{{i.number}}人</text>
 									</view>
@@ -106,10 +107,10 @@
 							</u-checkbox-group>
 						</view>
 					</view>
-					<button class="apply-btn bgc-main c-ff" v-if="computeEndTime > 0 && !isSubmit"
+					<button class="apply-btn bgc-main c-ff" v-if="!isEnd  && !isComplete"
 						@click="submitVote()">提交</button>
-					<button class="apply-btn bgc-gray c-d1" v-if="isSubmit">已提交</button>
-					<button class="apply-btn bgc-gray c-d1" v-if="computeEndTime <= 0">已结束</button>
+					<button class="apply-btn bgc-gray c-d1" v-if="isComplete">已提交</button>
+					<button class="apply-btn bgc-gray c-d1" v-if="isEnd">已结束</button>
 				</view>
 			</view>
 		</view>
@@ -133,7 +134,8 @@
 			</view>
 		</view>
 		<view class="footer">
-			<u-search searchIcon='edit-pen' :animation="true" placeholder="写评论" disabled @click="navToComment"></u-search>
+			<u-search searchIcon='edit-pen' :animation="true" placeholder="写评论" disabled
+				@click="navToComment"></u-search>
 		</view>
 
 
@@ -175,7 +177,9 @@
 				isLoad: false,
 				voteTopicList: [],
 				isSubmit: false, // 是否已提交投票
-				commentList: []
+				commentList: [],
+				isEnd: false, //是否结束
+				isComplete: false // 是否完成全部投票
 			}
 		},
 		onLoad(option) {
@@ -197,7 +201,10 @@
 			computeEndTime() {
 				let curTimestamp = new Date().getTime();
 				let endTimestamp = new Date(this.applyInfo.endTime).getTime();
-				return endTimestamp - curTimestamp
+				if (Number(endTimestamp) - Number(curTimestamp) <= 0) {
+					this.isEnd = true;
+				}
+				return Number(endTimestamp) - Number(curTimestamp)
 			}
 		},
 
@@ -269,67 +276,76 @@
 				}).then(res => {
 					if (res.code == 200) {
 						let data = res.data;
+						let tempArr = [];
 						if (data.length) {
 							for (let i of data) {
 								if (i.selected) {
+									tempArr.push(i);
 									if (typeof i.selected == "string" && i.optionRange == 0) {
 										this.isSubmit = true;
+										i.isSubmit = true;
 										i.selected = Number(i.selected)
 									}
 									if (typeof i.selected == "string" && i.optionRange == 1) {
 										this.isSubmit = true;
+										i.isSubmit = true;
 										i.selected = JSON.parse(i.selected)
 									}
 								}
 							}
 						}
 						this.voteTopicList = data;
+						if (data.length == tempArr.length) {
+							this.isComplete = true;
+						}
 					}
 				})
 			},
 
 			//报名
 			handleApply() {
-				communityModel.addApply({
-					publicDiscussId: this.pdId
-				}).then(res => {
-					if (this.computeEndTime > 0) {
+				if (this.computeEndTime > 0) {
+					communityModel.addApply({
+						publicDiscussId: this.pdId
+					}).then(res => {
 						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)
-					}
+					})
+				} else {
+					uni.showToast({
+						title: "报名已结束",
+						icon: "none"
+					})
 				}
-				return arr;
-			},
+			}
+		},
 
-			//提交投票
-			submitVote() {
+		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() {
+			if (this.computeEndTime > 0) {
 				let data = this.getParams()
 				communityModel.addVoteOperate(data).then(res => {
 					if (res.code == 200) {
@@ -342,15 +358,21 @@
 						})
 					}
 				})
-			},
-
-			navToComment() {
-				uni.navigateTo({
-					url: `comment?id=${this.params.id}`
+			} else {
+				uni.showToast({
+					title: "投票已结束",
+					icon: "none"
 				})
 			}
+		},
+
+		navToComment() {
+			uni.navigateTo({
+				url: `comment?id=${this.params.id}`
+			})
 		}
 	}
+	
 </script>
 
 <style lang="scss">
diff --git a/subPackage/bs/views/repairRecord.vue b/subPackage/bs/views/repairRecord.vue
index b7e1acc..a19982e 100644
--- a/subPackage/bs/views/repairRecord.vue
+++ b/subPackage/bs/views/repairRecord.vue
@@ -27,8 +27,8 @@
 					<text class="f-28 c-66">{{ item.phone }}</text>
 				</view>
 				<view class="item-row flex a-i-c j-c-s-b">
-					<text class="f-28">地址</text>
-					<text class="address f-28 c-66">{{ item.addressName || "" }}</text>
+					<text class="f-28">事发地</text>
+					<text class="address f-28 c-66">{{ item.address || "" }}</text>
 				</view>
 			</view>
 		</view>
diff --git a/subPackage/bs/views/zhsb.vue b/subPackage/bs/views/zhsb.vue
index fdfa1bd..dcac41c 100644
--- a/subPackage/bs/views/zhsb.vue
+++ b/subPackage/bs/views/zhsb.vue
@@ -22,11 +22,15 @@
 		</view>
 
 
-		<view class="bottom">
+		<!-- <view class="bottom">
 			<view class="btn">
 				<u-button @click="addRent" type="primary" :plain="true" text="添加租赁信息"></u-button>
 			</view>
-		</view>
+		</view> -->
+		
+		<footer-btn @click="addRent"  text="添加租赁信息" />
+		
+		
 	</view>
 </template>
 
diff --git a/subPackage/circle/detail.vue b/subPackage/circle/detail.vue
new file mode 100644
index 0000000..e5ecd86
--- /dev/null
+++ b/subPackage/circle/detail.vue
@@ -0,0 +1,68 @@
+<template>
+	<view class="">
+		<view class="flex">
+			<u-avatar size="60" :src="detailInfo.avatar"></u-avatar>
+			<view class="ml-10 flex f-d-c">
+				<text class="f-28 mb-10">{{detailInfo.name}}</text>
+				<text class="f-24 c-66">{{detailInfo.createTime}}</text>
+			</view>
+		</view>
+		<view class="topic-content f-30">
+			{{detailInfo.circleText}}
+		</view>
+		<view class="">
+			<view class="" v-for="i in images">
+				<u-image :src="i"></u-image>
+			</view>
+
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		getDetail
+	} from "@/api/circle/circle.js"
+	export default {
+		data() {
+			return {
+				detailInfo: {},
+				images: []
+			}
+		},
+
+		onLoad(option) {
+			this.getDetailInfo(option.id)
+		},
+
+		methods: {
+			getDetailInfo(id) {
+				getDetail({
+					id
+				}).then(res => {
+					this.detailInfo = res.data;
+					if (res.data.circleImages) {
+						this.images = this.setImgUrl(res.data.circleImages)
+					}
+				})
+			},
+			setImgUrl(str) {
+				let urls = str.split(",");
+				let arr = [];
+				for (let i of urls) {
+					arr.push(`${minioBaseUrl}${i}`)
+				}
+				return arr;
+			}
+		}
+	}
+</script>
+
+<style>
+	.container{
+		padding:0 30rpx;
+	}
+	.topic-content{
+		padding:20rpx 0;
+	}
+</style>
\ No newline at end of file
diff --git a/subPackage/workbench/views/report.vue b/subPackage/workbench/views/report.vue
index 9c5a8b1..4bdd824 100644
--- a/subPackage/workbench/views/report.vue
+++ b/subPackage/workbench/views/report.vue
@@ -27,8 +27,8 @@
 					<text class="f-28 c-66">{{ item.phone }}</text>
 				</view>
 				<view class="item-row flex a-i-c j-c-s-b">
-					<text class="f-28">地址</text>
-					<text class="address f-28 c-66">{{ item.addressName }}</text>
+					<text class="f-28">事发地</text>
+					<text class="address f-28 c-66">{{ item.address || "" }}</text>
 				</view>
 			</view>
 		</view>
diff --git a/subPackage/workbench/views/reportAudit.vue b/subPackage/workbench/views/reportAudit.vue
index ee1ec56..9b719bb 100644
--- a/subPackage/workbench/views/reportAudit.vue
+++ b/subPackage/workbench/views/reportAudit.vue
@@ -1,39 +1,42 @@
 <template>
 	<view class="container">
 		<view class="basic-box">
-			<view class="title-box">
+			<!-- <view class="title-box">
 				<view class="line"></view>
 				<view class="text">基本信息</view>
-			</view>
+			</view> -->
+			<caption-row title="基本信息"  />
 			<view class="basic-data">
-				<lineItem :data-info="basicData"></lineItem>
+				<lineItem :dataInfo="basicData"></lineItem>
 			</view>
 		</view>
 		<view class="pic-box"  v-if="imgUrls.length">
-			<view class="title-box">
+			<!-- <view class="title-box">
 				<view class="line"></view>
 				<view class="text">事件照片</view>
-			</view>
+			</view> -->
+			<caption-row title="事件照片"  />
 			<view class="pic-data">
-				<view class="mr-20 " v-for="i in imgUrls">
-					<u-image class="img" :src="i" width="80" height="80"></u-image>
+				<view class="mr-20 " v-for="(i,k) in imgUrls"  :key="k">
+					<u-image class="img" :src="i" width="80" height="80"  @click="previewImg(i)"></u-image>
 				</view>
 			</view>
 		</view>
 		<view class="audit-box">
-			<view class="title-box">
+			<!-- <view class="title-box">
 				<view class="line"></view>
 				<view class="text">审核信息</view>
-			</view>
+			</view> -->
+			<caption-row title="审核信息"  />
 			<view class="audit-form">
 				<u-form labelWidth="70" :model="form" class="form" ref="form">
 					<u-form-item label="事件状态" @click="showPicker" class="form-item">
 						<u--input v-model="form.confirmFlag" disabled disabledColor="#ffffff" placeholder="请选择审核状态"
-							border="none" :placeholder="defaultPlaceholder"></u--input>
-						<u-icon slot="right" name="arrow-right"></u-icon>
+							border="none" :placeholder="defaultPlaceholder"  inputAlign="right"  color="#333"></u--input>
+						<u-icon slot="right" name="arrow-right"  v-show="from == 'list'"></u-icon>
 					</u-form-item>
-					<u-form-item label="备注" class="form-item"  v-if="from == 'list' || (from == 'record' && form.confirmNotion)">
-						<u--input v-model="form.confirmNotion" border="none"  :disabled="from == 'record'?true:false"></u--input>
+					<u-form-item label="处理情况" class="form-item"  v-if="from == 'list' || (from == 'record' && form.confirmNotion)">
+						<u--input v-model="form.confirmNotion" :border="from == 'list'?'surround':'none'" inputAlign="right" color="#333" :disabled="from == 'record'?true:false"></u--input>
 					</u-form-item>
 				</u-form>
 			</view>
@@ -48,23 +51,25 @@
 
 <script>
 	import lineItem from '../components/lineItem.vue'
+	import captionRow from '@/components/caption/caption.vue'
 	import {
 		checkReportForRepairsData
 	} from '@/api/task/taskReportForRepairs.js'
 	import { minioBaseUrl } from "@/common/setting.js"
 	export default {
 		components: {
+			captionRow,
 			lineItem
 		},
 		data() {
 			return {
 				basicData: [{
-						label: '当前位置',
+						label: '事发地',
 						name: 'address',
 						value: '未完善'
 					},
 					{
-						label: '业主',
+						label: '姓名',
 						name: 'realName',
 						value: '未完善'
 					},
@@ -80,7 +85,7 @@
 					},
 					{
 						label: '事件描述',
-						name: 'confirmNotion',
+						name: 'remark',
 						value: '未完善'
 					}
 				],
@@ -155,6 +160,11 @@
 				}
 			},
 			
+			
+			setImgUrl(url){
+				return `${minioBaseUrl}${url}`
+			},
+			
 			async checkReportForRepairs() {
 				const {
 					confirmFlag,
@@ -196,7 +206,12 @@
 					}
 				})
 				if(this.defaultData.imageUrls){
-					this.imgUrls = this.defaultData.imageUrls.split(",")
+					let list = this.defaultData.imageUrls.split(",")
+					let arr = []
+					for(let i of list){
+						arr.push(`${minioBaseUrl}${i}`);
+					}
+					this.imgUrls = arr;
 				}
 				
 				let columns = this.columns[0]
@@ -217,6 +232,14 @@
 				})
 				return res
 			},
+			
+			previewImg(url){
+				uni.previewImage({
+					urls:this.imgUrls,
+					current:url
+				})
+			},
+			
 		}
 	}
 </script>
@@ -227,7 +250,7 @@
 	}
 
 	.container {
-		padding: 20rpx 30rpx 150rpx 30rpx;
+		padding: 0 20rpx 150rpx;
 
 		.basic-box,
 		.pic-box,
@@ -238,9 +261,9 @@
 		}
 
 		.pic-box {
-			margin-top: 20rpx;
-
+			// margin-top: 20rpx;
 			.pic-data {
+				padding:0 20rpx;
 				display: flex;
 				flex-wrap: wrap;
 				margin-top: 20rpx;
@@ -248,9 +271,10 @@
 		}
 
 		.audit-box {
-			margin-top: 20rpx;
+			// margin-top: 20rpx;
 
 			.audit-form {
+				padding:0 20rpx;
 				.form {
 					font-size: 30rpx;
 

--
Gitblit v1.9.3