大德通墓地App
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

214 lines
4.6 KiB

<template>
<view class="subscribe">
<u-navbar :title="title" title-width="400" class="navBar" :title-bold="true">
<view class="right active" slot="right" v-if="isSubmit" @click="submit">
确定预约
</view>
<view class="right" slot="right" v-else>
确定预约
</view>
</u-navbar>
<view class="info">
<Item :info="info" width="240rpx" height="180rpx"></Item>
</view>
<view class="contact">
<view class="title">
联系人信息
</view>
</view>
<u-form :model="form" ref="uForm" label-width="160" class="form">
<u-form-item prop="mobile" label="姓名">
<u-input v-model="form.name" input-align="right" :clearable="false" placeholder="姓名" />
</u-form-item>
<u-form-item prop="mobile" label="手机号">
<u-input v-model="form.mobile" input-align="right" :clearable="false" placeholder="手机号" />
</u-form-item>
<u-form-item prop="mobile" label="期望时间">
<view class="date" @click="show = true">
{{appointmentTime}}
<u-icon name="arrow-right" color="#bfc2cc" class="icon" size="28"></u-icon>
</view>
<!-- <u-calendar v-model="show" :mode="mode" max-date="2050-01-01" input-align="right" @change="change">
</u-calendar> -->
<u-popup v-model="show" height="50%" mode="bottom">
<time-selector @selectTime="change" style="width: 100%;height: 100%;" selectedTabColor="red"
selectedItemColor="#3ad2e3">
</time-selector>
</u-popup>
</u-form-item>
<view class="leave">
<view class="title">留言</view>
<u-input v-model="form.leave" type="textarea" :clearable="false" placeholder="更多墓地需 (选填)"
class="textarea" />
</view>
</u-form>
</view>
</template>
<script>
import timeSelector from '@/components/xiujun-time-selector/index.vue';
import Item from '../../../components/listItem.vue'
export default {
data() {
return {
title: '预约',
info: null,
appointmentTime: '',
form: {
mobile: '',
time: '',
name: '',
leave: '',
},
show: false,
mode: 'date',
}
},
methods: {
change(e) {
console.log(e)
let data = e.split('(')
data[1] = data[1].split('-')[1]
data = data[0] + ' ' + data[1];
let nayitian = e.split('(')[1].split(')')[0]
let shen_me_shi_hou = e.split('(')[1].split(')')[1].split('-')[1]
// console.log(nayitian, shen_me_shi_hou, 999999999 )
this.appointmentTime = nayitian + " " + shen_me_shi_hou
console.log(data, 45566)
this.form.time = Date.parse(data)
// setTimeout(()=> {
this.show = false
// },400)
},
async submit() {
if (!this.$u.test.mobile(this.form.mobile)) {
this.$u.toast('手机号有误');
return;
}
let res = await this.$u.api.pagoda.addPagodaReservation({
pagodaId: this.info.pagodaId,
userName: this.form.name,
reservedCall: this.form.mobile,
appointmentTime: this.form.time,
leaveComments: this.form.leave
})
console.log(res, 999)
uni.navigateTo({
url: './subscibe_OK'
})
}
},
computed: {
time() {
return this.form.time === '' ? '选择日期' : this.form.time
},
isSubmit() {
let {
mobile,
time,
name,
} = this.form
return mobile.length > 9 && time !== '' && name !== ''
}
},
components: {
Item,
timeSelector
},
onLoad() {
this.info = JSON.parse(JSON.stringify(this.vuex_cemeteryData))
// 清空vuex数据
this.$u.vuex('vuex_cemeteryData', '')
}
}
</script>
<style lang="scss" scoped>
.subscribe {
.navBar {
.right {
width: 144rpx;
height: 60rpx;
border-radius: 12rpx;
background-color: #dfe0e5;
color: #FFFFFF;
font-size: 24rpx;
text-align: center;
line-height: 60rpx;
margin-right: 36rpx;
}
.active {
background-color: #e67d29;
}
}
.info {
height: 228rpx;
display: flex;
align-items: center;
padding: 0 36rpx;
background-color: #FFFFFF;
}
.contact {
.title {
height: 106rpx;
background-color: #f5f7fa;
color: #909399;
font-size: 24rpx;
line-height: 108rpx;
padding-left: 36rpx;
}
}
.form {
padding: 0 36rpx;
.date {
width: 100%;
text-align: right;
float: right;
.icon {
margin-left: 20rpx;
}
}
.leave {
.title {
margin: 36rpx;
margin-left: 0;
font-size: 28rpx;
}
.textarea {
background-color: #f5f7fa;
width: 100%;
height: 300rpx;
border-radius: 12rpx;
padding: 24rpx !important;
/deep/ .uni-textarea-textarea {
height: 240rpx;
}
/deep/ .uni-textarea-placeholder {
height: 100rpx;
}
}
}
}
}
</style>