微信小程序开发中,添加一个预约咨询的副页面,页面包括预约日期时间的选择器、预约对象作为可选择的独立按键个体,该对象个体的信息包含其自身可预约的时间和对应编号,给出所有相关代码
时间: 2024-03-10 13:51:22 浏览: 58
好的,这是一个简单的微信小程序预约咨询的副页面代码示例:
wxml文件:
```html
<view class="container">
<view class="form-item">
<view class="label">预约日期时间:</view>
<picker mode="date" value="{{date}}" start="{{startDate}}" end="{{endDate}}" bindchange="onDateChange">
<view class="picker">{{date}}</view>
</picker>
<picker mode="time" value="{{time}}" start="{{startTime}}" end="{{endTime}}" bindchange="onTimeChange">
<view class="picker">{{time}}</view>
</picker>
</view>
<view class="form-item">
<view class="label">预约对象:</view>
<picker mode="selector" range="{{objects}}" bindchange="onObjectChange">
<view class="picker">{{object}}</view>
</picker>
</view>
<view class="form-item">
<view class="label">预约编号:</view>
<input type="number" value="{{number}}" disabled="true" />
</view>
<button class="submit-btn" bindtap="submit">提交</button>
</view>
```
js文件:
```javascript
Page({
data: {
date: '', // 预约日期
time: '', // 预约时间
startDate: '', // 可选的最早预约日期
endDate: '', // 可选的最晚预约日期
startTime: '', // 可选的最早预约时间
endTime: '', // 可选的最晚预约时间
objects: [], // 可选的预约对象列表
objectIndex: 0, // 当前选中的预约对象的索引
number: '' // 生成的预约编号
},
onLoad(options) {
// 获取可选的预约对象列表
this.setData({
objects: ['对象1', '对象2', '对象3']
});
// 获取可选的最早预约日期和最晚预约日期
const startDate = new Date();
startDate.setDate(startDate.getDate() + 1);
const endDate = new Date();
endDate.setDate(endDate.getDate() + 7);
this.setData({
startDate: startDate.toISOString().slice(0, 10),
endDate: endDate.toISOString().slice(0, 10)
});
// 获取可选的最早预约时间和最晚预约时间
this.setData({
startTime: '08:00',
endTime: '18:00'
});
},
onDateChange(e) {
this.setData({
date: e.detail.value
});
this.generateNumber();
},
onTimeChange(e) {
this.setData({
time: e.detail.value
});
this.generateNumber();
},
onObjectChange(e) {
this.setData({
objectIndex: e.detail.value
});
this.generateNumber();
},
generateNumber() {
const { date, time, objects, objectIndex } = this.data;
if (date && time && objects.length && objectIndex >= 0) {
const number = `${date.replace(/-/g, '')}${time.replace(/:/g, '')}${objectIndex}`;
this.setData({
number
});
}
},
submit() {
const { date, time, objects, objectIndex, number } = this.data;
wx.showToast({
title: `已成功预约${date} ${time} ${objects[objectIndex]},预约编号为${number}`,
icon: 'none'
});
}
});
```
css文件:
```css
.container {
padding: 20rpx;
}
.form-item {
display: flex;
margin-bottom: 20rpx;
}
.label {
min-width: 80rpx;
margin-right: 20rpx;
line-height: 30rpx;
}
.picker {
font-size: 28rpx;
color: #333333;
display: inline-block;
width: 300rpx;
}
.submit-btn {
width: 100%;
height: 80rpx;
line-height: 80rpx;
text-align: center;
background-color: #007aff;
color: #ffffff;
font-size: 32rpx;
border-radius: 10rpx;
}
```
这个代码示例中,我们使用了微信小程序的picker组件来实现日期、时间、预约对象的选择器,使用了input组件来展示生成的预约编号,并在用户进行选择时生成预约编号。最后,当用户点击提交按钮时,我们展示了一个toast提示,展示预约的详细信息。
阅读全文