From 11cfec702172022207304a4bdbbc6f21e846468e Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Wed, 29 Nov 2023 11:27:21 +0800
Subject: [PATCH] 修复优化部分问题

---
 subPackage/bs/views/repairRecord.vue       |  211 +++++++++++++++++++++++++++++++++++
 subPackage/workbench/views/editExamine.vue |   77 +++++++++---
 mixin/uploadMixin.js                       |    4 
 pages/home/index.vue                       |    4 
 pages.json                                 |    9 +
 subPackage/bs/views/repair.vue             |    8 +
 common/setting.js                          |    2 
 subPackage/article/detail.vue              |   23 ++-
 8 files changed, 301 insertions(+), 37 deletions(-)

diff --git a/common/setting.js b/common/setting.js
index d44431e..b62f2a4 100644
--- a/common/setting.js
+++ b/common/setting.js
@@ -12,7 +12,7 @@
 	// devUrl: 'https://sk.hubeishuiyi.cn',
 	// devUrl: 'http://192.168.1.156:9528',
 	// devUrl:'http://192.168.1.50:9528',
-	devUrl: 'http://192.168.0.103: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',
diff --git a/mixin/uploadMixin.js b/mixin/uploadMixin.js
index bdf2442..72d85da 100644
--- a/mixin/uploadMixin.js
+++ b/mixin/uploadMixin.js
@@ -112,8 +112,8 @@
 		
 
 		//删除图片
-		deletePic(event) {
-			this.form.images.splice(event.index, 1)
+		deletePic(event,key="images") {
+			this.form[key].splice(event.index, 1)
 		},
 		showLoading() {
 			uni.showLoading({
diff --git a/pages.json b/pages.json
index abb44c9..e7ad5e1 100644
--- a/pages.json
+++ b/pages.json
@@ -485,6 +485,15 @@
 						"navigationBarBackgroundColor": "#fff",
 						"navigationBarTextStyle": "black"
 					}
+				},
+				{
+					"path": "views/repairRecord",
+					"style": {
+						"navigationBarTitleText": "报事明细",
+						"navigationBarBackgroundColor": "#fff",
+						"navigationBarTextStyle": "black",
+						"enablePullDownRefresh": false
+					}
 				}
 			]
 		},
diff --git a/pages/home/index.vue b/pages/home/index.vue
index 44dd205..d242140 100644
--- a/pages/home/index.vue
+++ b/pages/home/index.vue
@@ -524,9 +524,9 @@
 
 			navigatorPage(path) {
 				if (path) {
-					if (path == '/subPackage/bs/views/zhsb' && this.curHouseCode === '') {
+					if (( path == '/subPackage/bs/views/zhsb' || path == '/subPackage/bs/views/repair' )&& this.curHouseCode === '') {
 						uni.showToast({
-							title: "请选择地址",
+							title: "尚无绑定房屋信息",
 							icon: "error"
 						})
 						
diff --git a/subPackage/article/detail.vue b/subPackage/article/detail.vue
index 9604f91..e007ca9 100644
--- a/subPackage/article/detail.vue
+++ b/subPackage/article/detail.vue
@@ -77,9 +77,10 @@
 									<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 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>
 										</view>
 
 										<text class="c-33 f-28" v-if="i.number">{{i.number}}人</text>
@@ -95,9 +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 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>
 										</view>
 										<text class="c-33 f-28" v-if="i.number">{{i.number}}人</text>
 									</view>
@@ -132,8 +134,7 @@
 			</view>
 		</view>
 		<view class="footer">
-			<u-search searchIcon='edit-pen' :showAction="true" actionText="写评论" :animation="true" disabled
-				@click="navToComment"></u-search>
+			<u-search searchIcon='edit-pen' :animation="true" placeholder="写评论" disabled @click="navToComment"></u-search>
 		</view>
 
 
@@ -232,7 +233,7 @@
 				getCommentList({
 					page: 1,
 					size: 20,
-					articleId:this.params.id
+					articleId: this.params.id
 				}).then(res => {
 					this.commentList = res.data.records;
 				})
@@ -404,7 +405,7 @@
 	}
 
 	.apply {
-		padding: 30rpx;
+		padding: 30rpx 30rpx 140rpx;
 
 		.apply-user {
 			width: 80rpx;
@@ -440,12 +441,13 @@
 	.c-d1 {
 		color: #d1d1d1;
 	}
-	.c-33{
-		color:#333;
+
+	.c-33 {
+		color: #333;
 	}
 
 	.vote {
-		padding: 0 40rpx 30rpx;
+		padding: 0 40rpx 130rpx;
 
 		.vote-title {
 			padding: 30rpx 0;
@@ -460,7 +462,8 @@
 
 	.comment-list {
 		width: 100%;
-		padding-top:20rpx;
+		padding-top: 20rpx;
+
 		.comment-item {
 			width: 100%;
 			padding: 20rpx 0;
diff --git a/subPackage/bs/views/repair.vue b/subPackage/bs/views/repair.vue
index 258bc13..42b82dc 100644
--- a/subPackage/bs/views/repair.vue
+++ b/subPackage/bs/views/repair.vue
@@ -9,7 +9,7 @@
 		<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">
+				<view class="flex a-i-c"   @click="navToRecord()">
 					<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>
@@ -19,7 +19,7 @@
 						</view>
 					</view>
 				</view>
-				<view class="flex a-i-c">
+				<view class="flex a-i-c"  @click="navToRecord(3)">
 					<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>
@@ -130,6 +130,10 @@
 				getStatistics().then(res => {
 					this.statistic = res.data
 				})
+			},
+			navToRecord(type=0){
+				return
+				this.$u.func.globalNavigator(`/subPackage/bs/views/repairRecord?type=${type}`, "navTo")
 			}
 
 
diff --git a/subPackage/bs/views/repairRecord.vue b/subPackage/bs/views/repairRecord.vue
new file mode 100644
index 0000000..a18e67a
--- /dev/null
+++ b/subPackage/bs/views/repairRecord.vue
@@ -0,0 +1,211 @@
+<template>
+	<view>
+		<u-sticky>
+			<view class="tab">
+				<view class="tab">
+					<u-tabs :list="tabList" :scrollable="false" :current="tabIndex" @click="changeTab"
+						:inactiveStyle="{color:'#999999'}" :activeStyle="{color:'#017BFC'}"></u-tabs>
+					<view class="search">
+						<u-search placeholder="请输入需要查询信息的姓名" v-model="keyWord" :clearabled="true" :showAction="true"
+							:animation="true" @search="searchConfirm" @clear="clearConfirm"></u-search>
+					</view>
+				</view>
+			</view>
+		</u-sticky>
+		<view class="list">
+			<view class="list-item bgc-ff mb-20" v-for="item in reportList" :key="item.id" @click="pushPage(item)">
+				<view class="item-title flex a-i-c j-c-s-b mb-20">
+					<text class="f-32 fw">{{ findObjValue(item.type, typeList, 'type').name }}</text>
+					<u-tag class="u_tag" size="mini" plain plainFill :text="findObjValue(item.confirmFlag, tabList, 'status').name" :type="findObjValue(item.confirmFlag, tabList, 'status').type"></u-tag>
+				</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.realName }}</text>
+				</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.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>
+				</view>
+			</view>
+		</view>
+		<u-loadmore :status="loadingStatus" loadmoreText="开始加载" loadingText="数据加载中" nomoreText="没有更多了" line />
+	</view>
+</template>
+
+<script>
+	import {
+		getPage
+	} from '@/api/task/taskReportForRepairs.js'
+	export default {
+		data() {
+			return {
+				reportList: [],
+				pagingParams: {
+					current: 1,
+					size: 10
+				},
+				tabList: [
+					{
+						name: "全部",
+						status: '',
+						type: 'warning'
+					},
+					{
+						name: "待处理",
+						status: 1,
+						type: 'warning'
+					},
+					{
+						name: "处理中",
+						status: 2,
+						type: 'success'
+					},
+					{
+						name: "已处理",
+						status: 3,
+						type: 'error'
+					},
+				],
+				typeList: [
+					{
+						name: "公共维修",
+						type: 1
+					},
+					{
+						name: "居家维修",
+						type: 2
+					},
+					{
+						name: "矛盾纠纷",
+						type: 3
+					},
+					{
+						name: "投诉举报",
+						type: 4
+					},
+					{
+						name: "企业商户上报",
+						type: 5
+					}
+				],
+				tabIndex: 0,
+				tabStatus: '',
+				keyWord: '',
+				loadingStatus: 'nomore'
+			}
+		},
+		
+		onLoad(option){
+			this.tabIndex = option.type;
+			this.tabStatus = option.type == 0?'':option.type
+		},
+		
+		onShow() {
+			this.currentRole = uni.getStorageSync("activeRole")
+			this.reportList = []
+			this.getPageList()
+		},
+		onReachBottom() {
+			this.pagingParams.current++
+			this.getPageList()
+		},
+		methods: {
+			async getPageList() {
+				this.loadingStatus = 'loadingmore'
+				const params = {
+					realName: this.keyWord,
+					confirmFlag: this.tabStatus
+				}
+				const { roleName } = this.currentRole
+				const res = await getPage({
+					...params,
+					roleName,
+					...this.pagingParams
+				})
+				const {
+					code,
+					data: {
+						records
+					}
+				} = res
+				if (code !== 200) {
+					uni.showToast({
+						title: '数据请求失败',
+						icon: 'error'
+					})
+					return
+				}
+				this.reportList = [...this.reportList, ...records]
+				this.loadingStatus = 'nomore'
+			},
+			changeTab(e) {
+				this.tabStatus = e.status;
+				this.resetParams()
+				this.getPageList()
+			},
+			searchConfirm() {
+				this.resetParams()
+				this.getPageList()
+			},
+			clearConfirm() {
+				this.keyWord = ''
+				this.searchConfirm()
+			},
+			resetParams() {
+				this.reportList = []
+				this.pagingParams.current = 1
+			},
+			findObjValue(value, obj, word) {
+				const res = obj.find(item => {
+					return item[word] == value
+				})
+				return res
+			},
+			pushPage(item) {
+				const data = JSON.stringify(item)
+				// this.$u.func.globalNavigator('/subPackage/workbench/views/reportAudit?id='+id)
+				this.$u.func.globalNavigator('/subPackage/workbench/views/reportAudit?data='+data)
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #F5F5F5;
+	}
+
+	.tab {
+		background-color: #fff;
+
+		.search {
+			padding: 20rpx 70rpx;
+		}
+	}
+
+	.list {
+		margin: 20rpx 30rpx 0;
+	}
+
+	.list-item {
+		padding: 0 30rpx 20rpx;
+		border-radius: 8rpx;
+
+		.item-title {
+			padding: 30rpx 0;
+			border-bottom: 1px solid #F5F5F5;
+		}
+
+		.item-row {
+			padding: 10rpx 0;
+			.address {
+				width: 75%;
+				text-align: right;
+			}
+		}
+	}
+</style>
\ No newline at end of file
diff --git a/subPackage/workbench/views/editExamine.vue b/subPackage/workbench/views/editExamine.vue
index 109ddea..75801e6 100644
--- a/subPackage/workbench/views/editExamine.vue
+++ b/subPackage/workbench/views/editExamine.vue
@@ -26,7 +26,7 @@
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
 						uploadIcon="/static/icon/upload.png"
 						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImg($event,'imageUrls')"
-						@delete="deletePic">
+						@delete="deletePic($event,'imageUrls')">
 					</u-upload>
 				</view>
 			</view>
@@ -37,7 +37,7 @@
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
 						uploadIcon="/static/icon/upload.png"
 						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImg($event,'planImageUrls')"
-						@delete="deletePic">
+						@delete="deletePic($event,'planImageUrls')">
 					</u-upload>
 				</view>
 			</view>
@@ -73,6 +73,7 @@
 	import uploadMixin from "@/mixin/uploadMixin";
 	import boxTitle from "@/subPackage/workbench/components/boxTitle/index.vue"
 	import formItem from '../components/formItem.vue'
+	import { minioBaseUrl } from '@/common/setting'
 	export default {
 		mixins: [uploadMixin],
 		components: {
@@ -148,22 +149,32 @@
 						return
 					}
 					const placePractitioner = data?.placePractitioner || []
-					Object.keys(this.form).forEach(key => {
-						this.form[key] = data[key]
-						if (key === 'imageUrls' || key === 'planImageUrls') {
-							data[key] = data[key] || ''
-							this.form[key] = []
-							if (!!data[key]) {
-								data[key] = JSON.parse(data[key])
-								if (Array.isArray(data[key])) {
-									this.form[key] = data[key]
-								} else {
-									this.form[key].push(data[key])
-								}
+					// Object.keys(this.form).forEach(key => {
+					// 	this.form[key] = data[key]
+					// 	if (key === 'imageUrls' || key === 'planImageUrls') {
+					// 		data[key] = data[key] || ''
+					// 		this.form[key] = []
+					// 		if (!!data[key]) {
+					// 			data[key] = JSON.parse(data[key])
+					// 			if (Array.isArray(data[key])) {
+					// 				this.form[key] = data[key]
+					// 			} else {
+					// 				this.form[key].push(data[key])
+					// 			}
+					// 		}
+					// 	}
+					// })
+					
+					for(let i in this.form){
+						if(i === 'imageUrls' || i === 'planImageUrls'){
+							if(this.form[i]){
+								this.form[i] = this.setImageUrl(i,data[i].split('、'))
 							}
+						}else{
+							this.form[i]  = data[i]
 						}
-					})
-
+					}
+					
 					this.personNum = placePractitioner.length
 					const componetns = this.$refs.formItemRef || []
 					this.$refs.formItemRef.forEach((item, index) => {
@@ -171,9 +182,36 @@
 					})
 				})
 			},
+			
+			
+			setImageUrl(key,arr){
+				let urls = [];
+				for(let i of arr){
+					urls.push({
+						name:i,
+						url:`${minioBaseUrl}${i}`
+					}) 
+				}
+				return urls
+			},
+			
+			getImageUrl(key){
+				if(this.form[key].length){
+					let urls = [];
+				   for(let i of this.form[key]){
+					    urls.push(i.name)  
+				   }
+				   return urls.join('、');
+				}else {
+					return "";
+				}
+			},
+		
 			updatePlaceExt(data) {
-				data['imageUrls'] = data['imageUrls'].join('、')
-				data['planImageUrls'] = data['planImageUrls'].join('、')
+				data['imageUrls'] = this.getImageUrl('imageUrls')
+				data['planImageUrls'] = this.getImageUrl('planImageUrls')
+				// data['imageUrls'] = data['imageUrls'].join('、')
+				// data['planImageUrls'] = data['planImageUrls'].join('、')
 				updatePlaceExtData({
 					...data
 				}).then(res => {
@@ -189,11 +227,10 @@
 					}
 					uni.showToast({
 						title: '提交成功',
-						icon: 'success',
 						complete() {
 							setTimeout(() => {
 								uni.navigateBack()
-							}, 1500)
+							}, 1000)
 						}
 					})
 				})

--
Gitblit v1.9.3