<template>
|
<view>
|
<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-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"
|
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-input>
|
</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="请选择"
|
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="houseCode" :borderBottom="false" required
|
@click="isShowScStatus = true">
|
<u-input v-model="info.scStatus" 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>
|
</view>
|
<view class="upload bgc-ff">
|
<view class="f-28">走访图片</view>
|
<view class="mt-20">
|
<u-upload :fileList="form.images" :previewFullImage="uploadConfig.previewFullImage"
|
:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple" :maxCount="uploadConfig.maxCount"
|
:capture="uploadConfig.capture" @afterRead="afterReadImg" @delete="deletePic">
|
<view class="upload-item upload-icon flex_base">
|
<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
|
</view>
|
</u-upload>
|
</view>
|
</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" />
|
|
</view>
|
|
</template>
|
|
<script>
|
import {
|
addWorkLog
|
} from "@/api/workLog/workLog.js"
|
import uploadMixin from "@/mixin/uploadMixin";
|
export default {
|
mixins: [uploadMixin],
|
data() {
|
return {
|
form: {
|
images: []
|
},
|
info: {
|
name: "",
|
phone: "",
|
context: ""
|
},
|
rules: {
|
'name': {
|
type: 'string',
|
required: true,
|
message: '请输入姓名',
|
trigger: ['blur', 'change']
|
},
|
'phone': {
|
type: 'string',
|
required: true,
|
message: '请输入手机号',
|
trigger: ['blur', 'change']
|
},
|
'context': {
|
type: 'string',
|
required: true,
|
message: '请输入工作内容',
|
trigger: ['blur', 'change']
|
},
|
},
|
showSelectDate: false,
|
workTime: Number(new Date()),
|
isShowPicker: false,
|
houseIndex: [0]
|
}
|
},
|
// onLoad() {
|
// let userInfo = uni.getStorageSync("userInfo");
|
// this.$set(this.info, "name", userInfo.real_name);
|
// this.$set(this.info, "phone", userInfo.phone);
|
// },
|
methods: {
|
|
confirmDate(e) {
|
this.showSelectDate = false;
|
this.info.workTime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM:ss')
|
},
|
|
confirmHouse(e) {
|
this.houseIndex = e.indexs;
|
this.info.houseCode = e.value[0];
|
this.isShowPicker = false;
|
},
|
|
checkImages() {
|
if (this.form.images.length) {
|
this.$set(this.info, "url", this.setImages())
|
}
|
},
|
|
setImages() {
|
let urls = [];
|
for (let i of this.form.images) {
|
urls.push(i.name);
|
}
|
return urls.join(",")
|
},
|
|
|
submitInfo() {
|
this.$refs.form.validate().then(valid => {
|
this.checkImages();
|
addWorkLog(this.info).then(res => {
|
uni.showToast({
|
icon: 'success',
|
title: '提交成功',
|
success() {
|
setTimeout(() => {
|
uni.navigateBack()
|
}, 1000)
|
}
|
})
|
})
|
})
|
}
|
}
|
}
|
</script>
|
|
<style lang="less">
|
page {
|
background-color: #F5F5F5;
|
}
|
|
.content {
|
margin: 20rpx 30rpx;
|
padding: 0 30rpx;
|
}
|
|
.row {
|
padding: 20rpx 0;
|
border-bottom: 1px solid
|
}
|
|
.location-btn {
|
width: 116rpx;
|
height: 46rpx;
|
line-height: 46rpx;
|
border-radius: 4rpx;
|
border: 1px solid currentColor;
|
padding: 0;
|
background-color: #fff;
|
}
|
|
.upload {
|
margin: 0 30rpx;
|
padding: 30rpx;
|
|
.upload-item {
|
width: 140rpx;
|
height: 140rpx;
|
border: 1px solid #EEEEEE;
|
}
|
}
|
|
.footer {
|
width: 100%;
|
padding: 30rpx;
|
position: fixed;
|
bottom: 0;
|
left: 0;
|
z-index: 10;
|
box-sizing: border-box;
|
|
.footer-btn {
|
width: 100%;
|
height: 78rpx;
|
line-height: 78rpx;
|
background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%);
|
border-radius: 8rpx;
|
color: #fff;
|
font-size: 32rpx;
|
}
|
}
|
</style>
|