|
|
- <template>
- <view class="page">
- <navbar title="提交预约" leftClick @leftClick="$utils.navigateBack" />
- <view class="box">
- <view class="info">
- <view class="title">
- {{ title }}
- </view>
- <view class="tips">
- 项目:{{ detail.roleName }}
- </view>
- <view class="tips">
- 开放时间:06:00-21:00
- </view>
- <view class="tips">
- 联系电话:1311311311313
- </view>
- <view class="tips">
- 价格:¥{{ detail.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="">
- 08:00
- <view class="icon">
- <uv-icon
- name="arrow-down"
- size="26rpx">
- </uv-icon>
- </view>
- </view>
- 至
- <view class="">
- 14:00
- <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: '我要研学'
- },
- ],
- title : '',
- form : {
- name : '',
- phone : '',
- },
- selectDate : this.$dayjs().format('YYYY-MM-DD'),
- timeColumns : [],
- id : 0,
- payType : 0,
- detail : {},
- }
- },
- onLoad(args) {
- this.payType = args.payType
- this.title = this.tabs[args.payType].name
- this.id = args.id
- },
- onShow() {
- this.getData()
- this.getDataTime(0)
- this.getDataTime(1)
- },
- methods: {
- // 获取预约信息
- getData(){
- this.$api('queryRoleInfoById', {
- roleInfoId : 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){
- console.log(e);
- },
- }
- }
- </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>
|