From 7f1e749f9a60d36edb04e06610fb111567d404bf Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Mon, 08 Jan 2024 17:46:26 +0800
Subject: [PATCH] 走访日志功能更新,修复部分问题

---
 subPackage/workbench/views/editExamine.vue |    5 
 components/myIssue/myIssue.vue             |   17 ++
 subPackage/grid/comment.vue                |   10 +
 api/workLog/workLog.js                     |    2 
 subPackage/workbench/views/csjl.vue        |    2 
 common/setting.js                          |    6 
 subPackage/workbench/views/reportAudit.vue |   19 +-
 api/house/household.js                     |   13 ++
 subPackage/grid/tenement.vue               |   20 ++-
 subPackage/workbench/views/workLog.vue     |  240 +++++++++++++++++++++++++++++++++++++--
 subPackage/workbench/views/cshw.vue        |    3 
 subPackage/workbench/views/report.vue      |    2 
 12 files changed, 291 insertions(+), 48 deletions(-)

diff --git a/api/house/household.js b/api/house/household.js
index 89347cf..4e97a35 100644
--- a/api/house/household.js
+++ b/api/house/household.js
@@ -39,6 +39,17 @@
 }
 
 
+// 查询住户
+export const fetchHousehold = (params) => {
+	return http.request({
+		url: 'blade-household/household/selectHouseholdList',
+		method: 'GET',
+		params: params
+	})
+}
+
+
+
 // 获取住户列表
 export const getHouseholdList = (params) => {
 	return http.request({
@@ -56,4 +67,4 @@
 		method: 'GET',
 		params: params
 	})
-}
+}
\ No newline at end of file
diff --git a/api/workLog/workLog.js b/api/workLog/workLog.js
index 64220f9..0dea5d3 100644
--- a/api/workLog/workLog.js
+++ b/api/workLog/workLog.js
@@ -7,4 +7,4 @@
 		method: 'POST',
 		data
 	})
-}
+}
\ No newline at end of file
diff --git a/common/setting.js b/common/setting.js
index 1e0c515..bc3ff1f 100644
--- a/common/setting.js
+++ b/common/setting.js
@@ -9,9 +9,9 @@
 	// 版本号
 	version: '2.0.0',
 	// 开发环境接口Url
-	devUrl: 'http://z4042833u6.wicp.vip',
-	// devUrl: 'http://192.168.0.106:9528',
-	// devUrl: 'https://srgdjczzxtpt.com:2080/api',
+	// devUrl: 'http://z4042833u6.wicp.vip',
+	// devUrl: 'http://192.168.0.109:9528',
+	devUrl: 'https://srgdjczzxtpt.com:2080/api',
 	// devUrl: 'https://kt39592615.goho.co',
 	minioBaseUrl: "https://srgdjczzxtpt.com:2080/gminio/jczz/",
 	// minioBaseUrl:"http://192.168.0.103:9528/",
diff --git a/components/myIssue/myIssue.vue b/components/myIssue/myIssue.vue
index 13cef04..b0778e2 100644
--- a/components/myIssue/myIssue.vue
+++ b/components/myIssue/myIssue.vue
@@ -12,7 +12,9 @@
 		</view>
 		<textarea v-if="textareaShow" @blur="blur" v-model="infoReceive.content" :placeholder="textareaPlaceholder" />
 		<view class="issue-btn-box">
-			<button v-if="submitShow" class="submit-btn bgc-main c-ff" @click="doSubmit">{{submitText}}</button>
+			<button v-if="submitShow" class="submit-btn bgc-main c-ff"
+				:disabled="infoReceive.content && infoReceive.score?false:true"
+				@click="doSubmit">{{submitText}}</button>
 			<slot name="submit"></slot>
 		</view>
 	</view>
@@ -97,7 +99,8 @@
 				infoReceive: {
 					score: 0,
 					content: ""
-				}
+				},
+				canSubmit: false
 			}
 
 		},
@@ -136,7 +139,9 @@
 			 * @name 提交
 			 */
 			doSubmit() {
+
 				this.$emit('submit', this.infoReceive)
+
 			}
 		},
 		created() {
@@ -151,7 +156,7 @@
 	$fontSize: 28upx;
 
 	.issue {
-		background-color: $backgroundC;
+		/* background-color: $backgroundC; */
 
 		&-head {
 			background-color: $white;
@@ -213,6 +218,12 @@
 				/* background-color: #3682FF; */
 				line-height: 80upx
 			}
+
+			button[disabled] {
+				color: #fff !important;
+				border-color: #999 !important;
+				background-color: #999 !important;
+			}
 		}
 	}
 
diff --git a/subPackage/grid/comment.vue b/subPackage/grid/comment.vue
index e39975f..d48d60d 100644
--- a/subPackage/grid/comment.vue
+++ b/subPackage/grid/comment.vue
@@ -27,14 +27,14 @@
 			return {
 				content: "",
 				id: "",
-				title: "",
+				title: "评分",
 				isEdit: false,
 				score: 0
 			}
 		},
 		onLoad(option) {
 			this.id = option.id;
-			this.title = option.title;
+			// this.title = option.title;
 			if (option.data) {
 				let data = JSON.parse(option.data);
 				this.score = data.score;
@@ -45,7 +45,7 @@
 		methods: {
 			submitInfo(val) {
 				let data = val;
-				data.propertyCompanyid = this.id;
+				data.propertyCompanyId = this.id;
 				data.createUser = uni.getStorageSync("userInfo").user_id;
 				if (this.isEdit) {
 					delete data.content;
@@ -67,6 +67,10 @@
 </script>
 
 <style>
+	page {
+		background-color: #f5f5f5;
+	}
+
 	.container {
 		padding: 30rpx 30rpx 0;
 	}
diff --git a/subPackage/grid/tenement.vue b/subPackage/grid/tenement.vue
index cbff3d4..e839bc1 100644
--- a/subPackage/grid/tenement.vue
+++ b/subPackage/grid/tenement.vue
@@ -40,7 +40,7 @@
 		<view class="comment" v-if="commentList.length">
 			<caption-row title="留言" />
 			<view class="comment-list bgc-ff mt-20">
-				<view class="comment-item flex " v-for="(item,index) in commentList" :key="index">
+				<view class="comment-item flex " v-for="(item,index) in commentList" :key="index" v-if="item.content">
 					<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">
@@ -55,11 +55,11 @@
 			</view>
 		</view>
 
-		<view class="footer" v-if="!scoreInfo.score">
+		<view class="footer" v-if="!scoreInfo.id">
 			<u-search searchIcon='edit-pen' :animation="true" placeholder="写留言" disabled
 				@click="navToComment"></u-search>
 		</view>
-		<footer-btn v-if="scoreInfo.score" text="修改评分" @submit="navToScore" />
+		<!-- <footer-btn v-if="!scoreInfo.score"  text="修改评分" @click="navToScore" /> -->
 
 	</view>
 
@@ -146,11 +146,15 @@
 					url: `comment?id=${this.detailInfo.id}&title=${this.detailInfo.name}`
 				})
 			},
-			// navToScore() {
-			// 	uni.navigateTo({
-			// 		url: `comment?id=${this.detailInfo.id}&title=${this.detailInfo.name}&data=${JSON.stringify(this.scroeInfo)}`
-			// 	})
-			// }
+			navToScore() {
+				console.log(11111)
+				uni.navigateTo({
+					url: `comment?id=${this.detailInfo.id}&title=${this.detailInfo.name}&data=${JSON.stringify(this.scoreInfo)}`,
+					complete: (res) => {
+						console.log("res=>", res)
+					}
+				})
+			}
 		}
 	}
 </script>
diff --git a/subPackage/workbench/views/cshw.vue b/subPackage/workbench/views/cshw.vue
index 88eea4d..2298fff 100644
--- a/subPackage/workbench/views/cshw.vue
+++ b/subPackage/workbench/views/cshw.vue
@@ -109,6 +109,9 @@
 				this.tabIndex = 1;
 				this.tabStatus = 1;
 			}
+			if (option.placeId) {
+				this.pagingParams.placeId = option.placeId
+			}
 		},
 
 		onShow() {
diff --git a/subPackage/workbench/views/csjl.vue b/subPackage/workbench/views/csjl.vue
index 812ed84..865e66a 100644
--- a/subPackage/workbench/views/csjl.vue
+++ b/subPackage/workbench/views/csjl.vue
@@ -29,7 +29,7 @@
 				<view class="info">
 					<view class="charge-man">
 						<text>场所负责人:</text>
-						<text>{{ records.username || '未完善' }}</text>
+						<text>{{ records.principal || '未完善' }}</text>
 					</view>
 					<view class="phone">
 						<text>手机号:</text>
diff --git a/subPackage/workbench/views/editExamine.vue b/subPackage/workbench/views/editExamine.vue
index 098208b..9d0303c 100644
--- a/subPackage/workbench/views/editExamine.vue
+++ b/subPackage/workbench/views/editExamine.vue
@@ -275,8 +275,9 @@
 				this.form.placePractitioner = placePractitioner
 				this.updatePlaceExt(this.form)
 			},
+
 			pushPage() {
-				this.$u.func.globalNavigator('/subPackage/workbench/views/cshw')
+				this.$u.func.globalNavigator(`/subPackage/workbench/views/cshw?placeId=${this.form.placeId}`)
 			}
 		}
 	}
@@ -344,6 +345,8 @@
 			position: fixed;
 			left: 0;
 			bottom: 0;
+			padding-bottom: calc(env(safe-area-inset-bottom) + 20rpx);
+			z-index: 999;
 		}
 	}
 
diff --git a/subPackage/workbench/views/report.vue b/subPackage/workbench/views/report.vue
index 7301735..b260a27 100644
--- a/subPackage/workbench/views/report.vue
+++ b/subPackage/workbench/views/report.vue
@@ -83,7 +83,7 @@
 					{
 						name: "已处理",
 						status: 3,
-						type: 'error'
+						type: 'success'
 					},
 				],
 				typeList: [{
diff --git a/subPackage/workbench/views/reportAudit.vue b/subPackage/workbench/views/reportAudit.vue
index 01b1ec1..be6cbd7 100644
--- a/subPackage/workbench/views/reportAudit.vue
+++ b/subPackage/workbench/views/reportAudit.vue
@@ -28,11 +28,7 @@
 				<view class="text">审核信息</view>
 			</view> -->
 			<caption-row title="审核信息" />
-
 			<view class="step">
-
-
-
 				<view class="step-list " v-for="i in defaultData.taskRepairStepList"
 					v-if="defaultData.taskRepairStepList.length">
 
@@ -79,7 +75,7 @@
 			<view class="f-28">视频</view>
 			<view class="mt-20">
 				<u-upload :fileList="form.videoList" :previewFullImage="uploadConfig.previewFullImage"
-					:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
+					:accept="uploadConfig.acceptVideo" :multiple="uploadConfig.multiple"
 					:maxCount="confirmFlag == 3 && form.videoList.length?form.videoList.length:uploadConfig.maxCount"
 					:capture="uploadConfig.capture" :deletable="confirmFlag == 3 && form.videoList.length?false:true"
 					@afterRead="afterReadImg($event,'videoList')" @delete="deletePics($event,'videoList')">
@@ -106,7 +102,7 @@
 			@confirm="handleConfirm"></u-picker>
 
 		<u-picker :defaultIndex="peopleIndex" :closeOnClickOverlay="true" @close="isShowPeoplePicker = false"
-			:show="isShowPeoplePicker" ref="pPicker" :columns="peopleList" keyName="distictName"
+			:show="isShowPeoplePicker" ref="pPicker" :columns="peopleList" keyName="name"
 			@cancel="isShowPeoplePicker = false" @confirm="handlePeopleConfirm" @change="changePeople"></u-picker>
 
 
@@ -158,6 +154,11 @@
 					{
 						label: '事件描述',
 						name: 'remark',
+						value: '未完善'
+					},
+					{
+						label: '提交时间',
+						name: 'createTime',
 						value: '未完善'
 					}
 				],
@@ -214,11 +215,11 @@
 				from: "list",
 				peopleList: [
 					[{
-							distictName: "网格员",
+							name: "网格员",
 							type: 0
 						},
 						{
-							distictName: "物业人员",
+							name: "物业人员",
 							type: 2
 						}
 					],
@@ -433,7 +434,7 @@
 				let data = {
 					addressCode: this.defaultData.addressCode,
 					confirmFlag: 1,
-					content: `事件已移交至${value[0].distictName}${value[1].distictName}`,
+					content: `事件已移交至${value[0].name}${value[1].name}`,
 					peopleType: 1,
 					repairId: this.defaultData.id,
 					transferUserId: value[1].id
diff --git a/subPackage/workbench/views/workLog.vue b/subPackage/workbench/views/workLog.vue
index 24187fe..269c9b3 100644
--- a/subPackage/workbench/views/workLog.vue
+++ b/subPackage/workbench/views/workLog.vue
@@ -3,17 +3,45 @@
 		<view class="content bgc-ff">
 			<u-form labelPosition="left" :model="info" :rules="rules" ref="form" labelWidth="90"
 				:labelStyle="{fontSize:'28rpx'}">
-				<u-form-item label="姓名" prop="info.name" borderBottom required>
+				<u-form-item label="走访类型" prop="type" :borderBottom="false" required @click="isShowTypePicker = true">
+					<u-input v-model="typeName" disabled disabledColor="#fff" border="none" placeholder="请选择"
+						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
+					<u-icon slot="right" name="arrow-right"></u-icon>
+				</u-form-item>
+				<u-form-item label="重点人群类型" prop="peopleType" :borderBottom="false" required
+					@click="isShowLabelPicker = true" v-if="info.type == 2">
+					<u-input v-model="labelName" disabled disabledColor="#fff" border="none" placeholder="请选择"
+						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
+					<u-icon slot="right" name="arrow-right"></u-icon>
+				</u-form-item>
+
+				<u-form-item label="被访人姓名" prop="name" :borderBottom="false" required @click="isShowPopup = true">
+					<u-input v-model="selectedHousehold.name" disabled disabledColor="#fff" border="none"
+						placeholder="请选择" placeholderClass="f-28 c-99" inputAlign="right"></u-input>
+					<u-icon slot="right" name="arrow-right"></u-icon>
+				</u-form-item>
+				<u-form-item label="手机号" borderBottom required v-if="info.householdId">
+					<u-input v-model="selectedHousehold.phoneNumber" border="none" disabled disabledColor="#f5f5f5"
+						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
+				</u-form-item>
+				<u-form-item label="走访地址" borderBottom required v-if="info.householdId">
+					<!-- <u-input v-model="address" border="none" disabled disabledColor="#f5f5f5"
+						placeholderClass="f-28 c-99" inputAlign="right"></u-input> -->
+					<view class="address-content">
+						{{address}}
+					</view>
+				</u-form-item>
+				<!-- <u-form-item label="姓名" prop="info.name" borderBottom required>
 					<u-input v-model="info.name" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
 						inputAlign="right"></u-input>
 				</u-form-item>
-				<u-form-item label="手机号" prop="phone" borderBottom  required>
-					<u-input v-model="info.phone" border="none" placeholder="请输入手机号"   placeholderClass="f-28 c-99"
+				<u-form-item label="手机号" prop="phone" borderBottom required>
+					<u-input v-model="info.phone" border="none" placeholder="请输入手机号" placeholderClass="f-28 c-99"
 						inputAlign="right"></u-input>
-				</u-form-item>
-				<u-form-item label="内容" borderBottom  required>
-					<u-input type="textarea" v-model="info.context" border="none"  placeholderClass="f-28 c-99"
-						inputAlign="right"  placeholder="请输入内容">
+				</u-form-item> -->
+				<u-form-item label="内容" borderBottom required>
+					<u-input type="textarea" v-model="info.context" border="none" placeholderClass="f-28 c-99"
+						inputAlign="right" placeholder="请输入内容">
 					</u-input>
 				</u-form-item>
 				<u-form-item label="走访时间" prop="workTime" :borderBottom="false" required @click="showSelectDate = true">
@@ -43,11 +71,42 @@
 		</view>
 
 		<u-datetime-picker ref="datetimePicker" :show="showSelectDate" v-model="workTime" mode="datetime"
-			:formatter="formatter" @confirm="confirmDate" @cancel="isShowPicker = false"></u-datetime-picker>
-		<!-- <u-picker :show="isShowPicker" :columns="scStatus" :defaultIndex="houseIndex" @cancel="isShowPicker = false"
-			@confirm="confirmHouse()"></u-picker> -->
-		 <footer-btn  @click="submitInfo"   />
-		
+			:formatter="formatter" @confirm="confirmDate" @cancel="showSelectDate = false"></u-datetime-picker>
+		<u-picker :show="isShowTypePicker" :columns="typeList" :defaultIndex="typeIndex"
+			@cancel="isShowTypePicker = false" @confirm="confirmType()" keyName="dictValue"></u-picker>
+		<u-picker :show="isShowLabelPicker" :columns="labelList" :defaultIndex="labelIndex"
+			@cancel="isShowLabelPicker = false" @confirm="confirmLabelType()" keyName="name"></u-picker>
+		<footer-btn @click="submitInfo" />
+
+		<u-popup :show="isShowPopup" mode="bottom" :round="10" closeable="true" @close="isShowPopup = false">
+			<view class="popup-content">
+				<view class="popup-title f-30">
+					选择居民
+				</view>
+				<u-search placeholder="请输入要搜索的内容(姓名 手机号)" :showAction="true" actionText="搜索" :animation="true"
+					v-model="keyword" @search="searchHousehold" @custom="searchHousehold"
+					@clear="clearKeyword"></u-search>
+				<scroll-view class="popup-list" :scroll-y="true">
+					<view class="popup-list-item" v-for="(i,k) in houseHoldList" :key="k" @click="selectHousehold(i)">
+						<view class="flex a-i-c mb-10">
+							<text class="f-28 fw mr-20">{{i.name}}</text>
+							<text class="f-26" v-if="i.phoneNumber">{{i.phoneNumber}}</text>
+						</view>
+
+						<view class="f-28">
+							{{i.townStreetName}}{{i.neiName}}{{i.aoiName}}{{i.address || ""}}
+						</view>
+						<view class="check-icon" v-if="i.id == info.householdId">
+							<u-icon name="checkbox-mark" color="#017BFC" size="30"></u-icon>
+						</view>
+
+
+					</view>
+				</scroll-view>
+			</view>
+		</u-popup>
+
+
 	</view>
 
 </template>
@@ -57,6 +116,15 @@
 		addWorkLog
 	} from "@/api/workLog/workLog.js"
 	import uploadMixin from "@/mixin/uploadMixin";
+	import {
+		bizDictionary
+	} from '@/api/system/dict.js'
+	import {
+		getLabelListByParentId
+	} from "@/api/label/label.js";
+	import {
+		fetchHousehold
+	} from "@/api/house/household.js"
 	export default {
 		mixins: [uploadMixin],
 		data() {
@@ -70,16 +138,29 @@
 					context: ""
 				},
 				rules: {
-					'name': {
+					// 'name': {
+					// 	type: 'string',
+					// 	required: true,
+					// 	message: '请输入姓名',
+					// 	trigger: ['blur', 'change']
+					// },
+					// 'phone': {
+					// 	type: 'string',
+					// 	required: true,
+					// 	message: '请输入手机号',
+					// 	trigger: ['blur', 'change']
+					// },
+
+					'type': {
 						type: 'string',
 						required: true,
-						message: '请输入姓名',
+						message: '请选择走访类型',
 						trigger: ['blur', 'change']
 					},
-					'phone': {
+					'householdId': {
 						type: 'string',
 						required: true,
-						message: '请输入手机号',
+						message: '请选择被访问人',
 						trigger: ['blur', 'change']
 					},
 					'context': {
@@ -92,7 +173,20 @@
 				showSelectDate: false,
 				workTime: Number(new Date()),
 				isShowPicker: false,
-				houseIndex: [0]
+				houseIndex: [0],
+				typeList: [],
+				typeName: "",
+				typeIndex: [0],
+				isShowTypePicker: false,
+				isShowLabelPicker: false,
+				labelList: [],
+				labelIndex: [0],
+				labelName: "",
+				keyword: "",
+				houseHoldList: [],
+				selectedHousehold: {},
+				isShowPopup: false,
+				address: ""
 			}
 		},
 		// onLoad() {
@@ -100,7 +194,42 @@
 		// 	this.$set(this.info, "name", userInfo.real_name);
 		// 	this.$set(this.info, "phone", userInfo.phone);
 		// },
+
+
+		onLoad() {
+			this.getTypeList();
+			this.getLabelLit();
+		},
+
+
 		methods: {
+
+			getTypeList() {
+				bizDictionary({
+					code: "haveType"
+				}).then(res => {
+					console.log(res)
+					this.typeList = [res.data];
+				})
+			},
+
+			getLabelLit() {
+				getLabelListByParentId({
+					parentId: 100
+				}).then(res => {
+					this.labelList = [res.data];
+				})
+			},
+
+			getHouseholdList() {
+				fetchHousehold({
+					labelId: this.info.personType,
+					searchKey: this.keyword,
+					limit: 20
+				}).then(res => {
+					this.houseHoldList = res.data;
+				})
+			},
 
 			confirmDate(e) {
 				this.showSelectDate = false;
@@ -111,6 +240,48 @@
 				this.houseIndex = e.indexs;
 				this.info.houseCode = e.value[0];
 				this.isShowPicker = false;
+			},
+
+			//选择走访类型			
+			confirmType(e) {
+				console.log("type==>", e);
+				this.typeIndex = e.indexs;
+				this.info.type = e.value[0].dictKey;
+				this.typeName = e.value[0].dictValue;
+
+				if (e.value[0].dictKey == 1) {
+					this.info.personType = "";
+					this.keyword = "";
+					this.getHouseholdList();
+				}
+				this.isShowTypePicker = false;
+			},
+
+			//选择重点人群类型
+			confirmLabelType(e) {
+				this.labelIndex = e.indexs;
+				this.info.personType = e.value[0].id;
+				this.labelName = e.value[0].name;
+				this.isShowLabelPicker = false;
+				this.getHouseholdList();
+			},
+
+			//搜索住户
+			searchHousehold() {
+				this.getHouseholdList()
+			},
+
+			clearKeyword() {
+				this.keyword = "";
+				this.getHouseholdList()
+			},
+
+			//选择住户
+			selectHousehold(item) {
+				this.selectedHousehold = item;
+				this.info.householdId = item.id;
+				this.address = `${item.townStreetName}${item.neiName}${item.aoiName}${item.address || ""}`
+				this.isShowPopup = false;
 			},
 
 			checkImages() {
@@ -203,4 +374,39 @@
 			font-size: 32rpx;
 		}
 	}
+
+	.popup-content {
+		width: 100%;
+		padding: 0 30rpx 30rpx;
+		box-sizing: border-box;
+
+		.popup-title {
+			padding: 30rpx 0;
+			text-align: center;
+			font-weight: bold;
+		}
+
+		.popup-list {
+			height: 650rpx;
+		}
+
+		.popup-list-item {
+			padding: 20rpx 0;
+			border-bottom: 1px solid #f1f1f1;
+			position: relative;
+		}
+
+		.check-icon {
+			position: absolute;
+			right: 20rpx;
+			top: 20rpx;
+		}
+	}
+
+	.address-content {
+		flex: 1;
+		background-color: #F5F5F5;
+		font-size: 28rpx;
+		padding: 2rpx 10rpx;
+	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3