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