From 8da6f33d33dbf768a6dd5de2fa33fd6fb28cd195 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Thu, 27 Jun 2024 17:18:26 +0800
Subject: [PATCH] 代码优化
---
subPackage/workbench/views/workLog.vue | 167 ++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 146 insertions(+), 21 deletions(-)
diff --git a/subPackage/workbench/views/workLog.vue b/subPackage/workbench/views/workLog.vue
index bf9a7a2..01ac8e2 100644
--- a/subPackage/workbench/views/workLog.vue
+++ b/subPackage/workbench/views/workLog.vue
@@ -1,8 +1,18 @@
<template>
<view>
<view class="content bgc-ff">
+
+ <view class="top item flex j-c-s-b a-i-c" @click="onScan()" v-if="!currentId">
+ <view class="flex a-i-c">
+ <u-icon name="/static/icon/nav-05.png" width="90rpx" height="90rpx"></u-icon>
+ <text class="f-28 ml-10">扫码获取信息</text>
+ </view>
+ <u-icon name="arrow-right" size="20"></u-icon>
+ </view>
+
<u-form labelPosition="left" :model="info" :rules="rules" ref="form" labelWidth="90"
:labelStyle="{fontSize:'28rpx'}">
+
<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>
@@ -15,13 +25,14 @@
<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-form-item label="被访人姓名" prop="householdId" :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"
+ <u-input v-model="selectedHousehold.phoneNumber" border="none" disabled disabledColor="#ffffff"
placeholderClass="f-28 c-99" inputAlign="right"></u-input>
</u-form-item>
<u-form-item label="走访地址" borderBottom required v-if="info.householdId">
@@ -39,10 +50,12 @@
<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"
+ <u-form-item label="内容" borderBottom required prop="context">
+ <!-- <u-input type="textarea" v-model="info.context" border="none" placeholderClass="f-28 c-99"
inputAlign="right" placeholder="请输入内容">
- </u-input>
+ </u-input> -->
+ <u--textarea v-model="info.context" border="none" placeholderClass="f-28 c-99" inputAlign="right"
+ placeholder="请输入内容"></u--textarea>
</u-form-item>
<u-form-item label="走访时间" prop="workTime" :borderBottom="false" required @click="showSelectDate = true">
<u-input v-model="info.workTime" disabled disabledColor="#ffffff" border="none" placeholder="请选择"
@@ -76,7 +89,12 @@
@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" :text="isEdit?'保存':'提交'" />
+
+ <!-- <footer-btn @click="submitInfo" :text="isEdit?'保存':'提交'" /> -->
+
+ <button class="submit-btn" @click="submitInfo">{{isEdit?"保存":"提交"}}</button>
+ <button class="list-btn" @click="navToRecord">走访记录</button>
+
<u-popup :show="isShowPopup" mode="bottom" :round="10" closeable="true" @close="isShowPopup = false">
<view class="popup-content">
@@ -141,7 +159,11 @@
info: {
// name: "",
// phone: "",
- context: ""
+ type: "",
+ householdId: "",
+ context: "",
+ workTime: "",
+ personType: ""
},
rules: {
// 'name': {
@@ -157,24 +179,30 @@
// trigger: ['blur', 'change']
// },
- 'info.type': {
- type: 'string',
+ type: [{
+ type: 'number',
required: true,
message: '请选择走访类型',
trigger: ['blur', 'change']
- },
- 'info.householdId': {
+ }],
+ // peopleType: [{
+ // type: 'number',
+ // required: true,
+ // message: '请选择重点人群类型',
+ // trigger: ['blur', 'change']
+ // }],
+ householdId: [{
type: 'string',
required: true,
message: '请选择被访问人',
trigger: ['blur', 'change']
- },
- 'info.context': {
+ }],
+ context: [{
type: 'string',
required: true,
message: '请输入工作内容',
trigger: ['blur', 'change']
- },
+ }],
},
showSelectDate: false,
workTime: Number(new Date()),
@@ -194,7 +222,8 @@
isShowPopup: false,
address: "",
isEdit: false,
- id: ""
+ id: "",
+ houseCode: ''
}
},
// onLoad() {
@@ -216,7 +245,39 @@
}
},
+ onReady() {
+ //onReady 为uni-app支持的生命周期之一
+ this.$refs.form.setRules(this.rules)
+ },
+
methods: {
+
+ onScan() {
+ uni.scanCode({
+ success: (res) => {
+ let obj = this.getUrlParams(res.result);
+ this.getHouseType(obj.stdId);
+ }
+ })
+ },
+
+
+ getUrlParams(url) {
+ let urlStr = url.split('?')[1]
+ let obj = {};
+ let paramsArr = urlStr.split('&')
+ for (let i = 0, len = paramsArr.length; i < len; i++) {
+ let arr = paramsArr[i].split('=')
+ obj[arr[0]] = arr[1];
+ }
+ return obj
+ },
+
+ getHouseType(code) {
+ this.houseCode = code
+ // this.getHouseholdList();
+ },
+
getDetail(id) {
getWorkLogDetail({
@@ -230,17 +291,21 @@
if (data.workTime) {
this.workTime = Number(new Date(data.workTime))
}
- this.info.type = data.type;
- this.info.workTime = data.workTime;
- this.info.context = data.context;
- this.info.householdId = data.householdId;
- this.info.personType = data.personType;
+ // this.info.type = data.type;
+ // this.info.workTime = data.workTime;
+ // this.info.context = data.context;
+ // this.info.householdId = data.householdId;
+ // this.info.personType = data.personType;
+ console.log(typeof data.personType)
this.labelIndex = this.$getIndex(this.labelList[0], data.personType, "id", "name").index;
this.labelName = this.$getIndex(this.labelList[0], data.personType, "id", "name").name;
this.getHouseholdList();
this.getHousehold(data.householdId);
this.form.images = this.$setImageUrl(data.url, 2);
this.info.id = data.id;
+ for (let i in this.info) {
+ this.$set(this.info, i, data[i])
+ }
}
})
},
@@ -276,9 +341,27 @@
fetchHousehold({
labelId: this.info.personType,
searchKey: this.keyword,
+ houseCode: this.houseCode,
limit: 20
}).then(res => {
this.houseHoldList = res.data;
+ for (var i = 0; i < this.houseHoldList.length; i++) {
+ if (this.houseHoldList[i].address === null) {
+ this.houseHoldList[i].address = ''
+ }
+
+ if (this.houseHoldList[i].aoiName === null) {
+ this.houseHoldList[i].aoiName = ''
+ }
+
+ if (this.houseHoldList[i].neiName === null) {
+ this.houseHoldList[i].neiName = ''
+ }
+
+ if (this.houseHoldList[i].townStreetName === null) {
+ this.houseHoldList[i].townStreetName = ''
+ }
+ }
})
},
@@ -331,7 +414,8 @@
selectHousehold(item) {
this.selectedHousehold = item;
this.info.householdId = item.id;
- this.address = `${item.townStreetName}${item.neiName}${item.aoiName}${item.address || ""}`
+ this.address =
+ `${item.townStreetName}${item.neiName}${item.aoiName}${item.address}`
this.isShowPopup = false;
},
@@ -354,6 +438,10 @@
this.$refs.form.validate().then(valid => {
this.checkImages();
this.info.status = 2;
+ if (this.info.type == 2 && !this.info.personType) {
+ this.$showTips("请选择重点人群类型")
+ return
+ }
if (this.isEdit) {
this.updateWorkLogRequest()
} else {
@@ -395,6 +483,13 @@
uni.navigateBack();
},
+
+ navToRecord() {
+ uni.navigateTo({
+ url: "/subPackage/workLog/list"
+ })
+ }
+
}
}
</script>
@@ -407,7 +502,15 @@
.content {
margin: 20rpx 30rpx;
padding: 0 30rpx;
+
+
}
+
+ .top {
+ padding: 20rpx !important;
+ }
+
+
.row {
padding: 20rpx 0;
@@ -489,4 +592,26 @@
font-size: 28rpx;
padding: 2rpx 10rpx;
}
+
+ .submit-btn {
+ width: 690rpx;
+ height: 78rpx;
+ line-height: 78rpx;
+ background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%);
+ border-radius: 8rpx 8rpx 8rpx 8rpx;
+ font-size: 32rpx;
+ color: #fff;
+ margin-top: 50rpx;
+ }
+
+ .list-btn {
+ width: 690rpx;
+ height: 78rpx;
+ line-height: 78rpx;
+ background: linear-gradient(163deg, #c7d7dc 0%, #c3cdd8 100%);
+ border-radius: 8rpx 8rpx 8rpx 8rpx;
+ font-size: 32rpx;
+ color: #fff;
+ margin-top: 50rpx;
+ }
</style>
\ No newline at end of file
--
Gitblit v1.9.3