| | |
| | | <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> |
| | |
| | | <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"> |
| | |
| | | <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="请选择" |
| | |
| | | @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"> |
| | |
| | | info: { |
| | | // name: "", |
| | | // phone: "", |
| | | context: "" |
| | | type: "", |
| | | householdId: "", |
| | | context: "", |
| | | workTime: "", |
| | | personType: "" |
| | | }, |
| | | rules: { |
| | | // 'name': { |
| | |
| | | // 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()), |
| | |
| | | isShowPopup: false, |
| | | address: "", |
| | | isEdit: false, |
| | | id: "" |
| | | id: "", |
| | | houseCode: '' |
| | | } |
| | | }, |
| | | // onLoad() { |
| | |
| | | } |
| | | }, |
| | | |
| | | 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({ |
| | |
| | | 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]) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | |
| | | 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 = '' |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | |
| | |
| | | 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; |
| | | }, |
| | | |
| | |
| | | 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 { |
| | |
| | | uni.navigateBack(); |
| | | }, |
| | | |
| | | |
| | | navToRecord() { |
| | | uni.navigateTo({ |
| | | url: "/subPackage/workLog/list" |
| | | }) |
| | | } |
| | | |
| | | } |
| | | } |
| | | </script> |
| | |
| | | .content { |
| | | margin: 20rpx 30rpx; |
| | | padding: 0 30rpx; |
| | | |
| | | |
| | | } |
| | | |
| | | .top { |
| | | padding: 20rpx !important; |
| | | } |
| | | |
| | | |
| | | |
| | | .row { |
| | | padding: 20rpx 0; |
| | |
| | | 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> |