<template>
|
|
<view class="page">
|
|
<navbar title="提交预约" leftClick @leftClick="$utils.navigateBack" />
|
|
<view class="box">
|
|
<view class="info">
|
|
<view class="title">
|
|
{{ dict.title }}
|
|
</view>
|
|
<view class="tips">
|
|
项目/负责人:{{ detailTitle }}
|
|
</view>
|
|
<view class="tips">
|
|
开放时间:{{ detail.openTime }}
|
|
</view>
|
|
<view class="tips">
|
|
联系电话:{{ detail.phone }}
|
|
</view>
|
|
<view class="tips"
|
|
v-if="price">
|
|
价格:¥ {{ price }}
|
|
</view>
|
|
</view>
|
|
<view class="form-time">
|
|
|
|
<!-- 预约日期 -->
|
|
<view class="title">
|
|
预约日期
|
|
</view>
|
|
<view class="line"
|
|
@click="$refs.calendars.open()">
|
|
<view class="">
|
|
{{ selectDate.split('-')[0] }}年
|
|
<view class="icon">
|
|
<uv-icon
|
|
name="arrow-down"
|
|
size="26rpx">
|
|
</uv-icon>
|
|
</view>
|
|
</view>
|
|
<view class="">
|
|
{{ selectDate.split('-')[1] }}月
|
|
<view class="icon">
|
|
<uv-icon
|
|
name="arrow-down"
|
|
size="26rpx">
|
|
</uv-icon>
|
|
</view>
|
|
</view>
|
|
<view class="">
|
|
{{ selectDate.split('-')[2] }}日
|
|
<view class="icon">
|
|
<uv-icon
|
|
name="arrow-down"
|
|
size="26rpx">
|
|
</uv-icon>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 预约时间 -->
|
|
<view class="title">
|
|
预约时间
|
|
</view>
|
|
<view class="line"
|
|
@click="$refs.picker.open()">
|
|
<view class="">
|
|
{{ form.orderTime[0] || '请选择' }}
|
|
<view class="icon">
|
|
<uv-icon
|
|
name="arrow-down"
|
|
size="26rpx">
|
|
</uv-icon>
|
|
</view>
|
|
</view>
|
|
至
|
|
<view class="">
|
|
{{ form.orderTime[1] || '请选择' }}
|
|
<view class="icon">
|
|
<uv-icon
|
|
name="arrow-down"
|
|
size="26rpx">
|
|
</uv-icon>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="box">
|
|
<view class="form-input">
|
|
<view class="title">
|
|
游客信息
|
|
</view>
|
|
<view class="input">
|
|
<view class="label">
|
|
姓名
|
|
</view>
|
|
<input type="text"
|
|
placeholder="请输入姓名"
|
|
v-model="form.name"/>
|
|
</view>
|
|
<view class="input">
|
|
<view class="label">
|
|
联系方式
|
|
</view>
|
|
<input type="text"
|
|
placeholder="请输入联系方式"
|
|
v-model="form.phone"/>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
|
|
<!-- 选择日期 -->
|
|
<uv-calendars
|
|
color="#B12026"
|
|
:date="selectDate"
|
|
confirmColor="#B12026"
|
|
:clearDate="false"
|
|
ref="calendars" @confirm="confirmDate" />
|
|
|
|
|
|
<!-- 选择时间 -->
|
|
<uv-picker ref="picker"
|
|
:columns="timeColumns"
|
|
confirmColor="#B12026"
|
|
keyName="timeDot"
|
|
@confirm="confirmTime"></uv-picker>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
tabs: [{
|
|
name: '路径定制'
|
|
},
|
|
{
|
|
name: '遗产讲述'
|
|
},
|
|
{
|
|
name: '达人同游'
|
|
},
|
|
{
|
|
name: '我要跟拍'
|
|
},
|
|
{
|
|
name: '非遗体验'
|
|
},
|
|
// {
|
|
// name: '遗产路径'
|
|
// },
|
|
{
|
|
name: '我要研学'
|
|
},
|
|
],
|
|
type: '',
|
|
dict : {},
|
|
form : {
|
|
name : '',
|
|
phone : '',
|
|
orderTime : [],
|
|
},
|
|
selectDate : this.$dayjs().format('YYYY-MM-DD'),
|
|
timeColumns : [],
|
|
id : 0,
|
|
detail : {},
|
|
//订单类型(0-路径定制 1-遗产讲述 2-达人同游 3-我要跟拍 4-非遗体验 5-我要研学)
|
|
// 5-遗产路径待定
|
|
api : {
|
|
0 : 'queryAmusementById',//路径定制
|
|
1 : 'queryRoleInfoById',//遗产讲述
|
|
2 : 'queryRoleInfoById',//达人同游
|
|
3 : 'queryRoleInfoById',//我要跟拍
|
|
4 : 'queryExperienceById',//非遗体验
|
|
5 : 'queryAmusementById',//我要研学
|
|
// 6 : 'queryAmusementById',
|
|
},
|
|
}
|
|
},
|
|
computed : {
|
|
detailTitle(){
|
|
return this.detail.roleName ||
|
|
this.detail.amusementTitle ||
|
|
this.detail.experienceTitle
|
|
},
|
|
price(){
|
|
return this.detail.price ||
|
|
this.detail.amusementPrice
|
|
}
|
|
},
|
|
onLoad(args) {
|
|
this.id = args.id
|
|
|
|
this.type = args.type
|
|
this.dict = this.$config.dict[args.type]
|
|
},
|
|
onShow() {
|
|
this.getData()
|
|
this.getDataTime(0)
|
|
this.getDataTime(1)
|
|
},
|
|
methods: {
|
|
// 获取预约信息
|
|
getData(){
|
|
this.$api(this.api[this.dict.payType], {
|
|
roleInfoId : this.id,
|
|
amusementId : this.id,
|
|
experienceId : this.id,
|
|
}, res => {
|
|
uni.stopPullDownRefresh()
|
|
if(res.code == 200){
|
|
this.detail = res.result
|
|
}
|
|
})
|
|
},
|
|
// 获取预约信息
|
|
getDataTime(timeType){
|
|
this.$api('queryOrderTime', {
|
|
timeType
|
|
}, res => {
|
|
if(res.code == 200){
|
|
this.timeColumns.splice(timeType, 0, res.result)
|
|
}
|
|
})
|
|
},
|
|
// 选择日期
|
|
confirmDate(e){
|
|
this.selectDate = e.fulldate
|
|
},
|
|
// 选择时间
|
|
confirmTime(e){
|
|
this.form.orderTime = []
|
|
e.value.forEach((n, i) => {
|
|
this.form.orderTime.push(n && n.timeDot)
|
|
})
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.page{
|
|
.box{
|
|
border-radius: 20rpx;
|
|
margin: 20rpx;
|
|
background-color: #fff;
|
|
box-shadow: 0 0 16rpx 6rpx #00000011;
|
|
.info{
|
|
padding: 40rpx;
|
|
border-bottom: 1rpx dashed #000;
|
|
.title{
|
|
font-size: 34rpx;
|
|
font-weight: 900;
|
|
padding-bottom: 20rpx;
|
|
}
|
|
.tips{
|
|
font-size: 26rpx;
|
|
color: #666666;
|
|
padding: 10rpx 0;
|
|
}
|
|
}
|
|
.form-time{
|
|
padding: 40rpx;
|
|
.title{
|
|
font-weight: 900;
|
|
padding-bottom: 20rpx;
|
|
margin-top: 10rpx;
|
|
}
|
|
.line{
|
|
display: flex;
|
|
align-items: center;
|
|
>view{
|
|
border: 1rpx solid #333;
|
|
padding: 6rpx 20rpx;
|
|
margin: 10rpx;
|
|
border-radius: 10rpx;
|
|
font-size: 26rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
.icon{
|
|
padding: 0 10rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.form-input{
|
|
padding: 40rpx;
|
|
.input{
|
|
display: flex;
|
|
padding-top: 30rpx;
|
|
.label{
|
|
width: 200rpx;
|
|
}
|
|
input{
|
|
font-size: 26rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|