今天给大家带来微信小程序旅游订机票订单页面demo制作设计教程,主要适合旅游行业订机票订酒店订单页面,制作好以后效果图如下:

一、wxml页面代码如下:
<!--index.wxml-->
<!--头部固定-->
<view class="{{addhidden?'aa':'hid'}}" >
<view class="head">
<view class="bord containerSmall " >
<text class="line">上海-北京4天3晚双飞自由行·入住锦苑富润酒店酒店</text>
</view>
<view class="state containerSmall">
<view class="gostate">出发日期:
<text class="txtstate_01">2016-04-23</text>
<text class="txtstate_02">|</text>出行人数:
<text class="txtstate_03">成人X2</text>
<text class="txtstate_04">儿童X1</text>
</view>
</view>
</view>
<!--选择乘机人-->
<form bindsubmit="formBindsubmit">
<view class="ordergood">
<view class="banner">
<view class="layout">
<view class="airpeople">
<text class="airp">乘机人</text>
<view class="addp" bindtap="addp"><image src="../../images/add.png" class="add"></image></view>
</view>
<view class="person">
<view class="delete"><image src="../../images/delete.png" class="del"></image></view>
<view class="pers"><image src="../../images/person.png" class="per"></image></view>
<view class="message">
<text class="permessage">魏忠贤</text>
<text class="permessage">410520198210071352</text>
<view class="arow"><image src="../../images/arow.png" class="arow"></image></view>
</view>
</view>
</view>
</view>
<!--乘机人信息-->
<view class="banner">
<view class="layout">
<view class="airpeople">
<label class="airp">联系人</label>
<input placeholder="请填写姓名" type="text" name="userName" placeholder-style="color:#929FB1; font-size:0.9em;font-weight:bold" />
</view>
<view class="airpeople">
<label class="airp">手机号</label>
<input placeholder="请填写手机号" type="number" name="phone" placeholder-style="color:#929FB1; font-size:0.9em;font-weight:bold" />
</view>
</view>
</view>
<!--保险信息-->
<view class="banner insure">
<view class="layout">
<view class="airsure">
<navigator url="../safe/safe">
<text class="airinsure">航空综合险</text>
<view class="cir1"><image src="../../images/cir1.png" class="cir1"></image></view>
</navigator>
<view class="rule">百万保额,放心出行</view>
</view>
<view class="whole">
<text class="permessage">全程¥38/份</text>
</view>
<view class="body-view">
<switch checked bindchange="switch1Change" />
</view>
</view>
</view>
<!--相关规定条款-->
<view class="read containerSmall">
<view class="choose" hidden="{{mallhide}}">
<image src="{{tip}}" class="check" bindtap="app"></image>
</view>
<view class="choose" hidden="{{hide}}">
<image src="{{ttp}}" class="checked" bindtap="appjs" hidden="{{hide}}"></image>
</view>
<view class="txt">
已阅读且同意<navigator url="../guarantee/guarantee">相关规定</navigator>并<navigator url="../insure/insure">认可保险条款和金额</navigator>。
</view>
</view>
</view>
<!--底部-->
<view class="foot">
<view class="price">
<text class="money">¥1269.0</text>
<view class="detail" bindtap="showdetail" hidden="{{hidetravel}}">
<text>明细</text>
<image src="../../images/angle.png"></image>
</view>
<view class="detail" bindtap="pricedetail" hidden="{{showtravel}}">
<text>明细</text>
<image src="../../images/angle1.png"></image>
</view>
</view>
<view class="btn" hidden="{{hide}}" >
<button class="next" formType="submit" >
<text>下一步</text>
<image src="../../images/row1.png"></image>
</button>
</view>
<view class="btn" hidden="{{mallhide}}">
<button class="next" style="background:#DBDBEA;" >
<text>下一步</text>
<image src="../../images/row1.png"></image>
</button>
</view>
</view>
</form>
<!--机票信息弹出框-->
<view class="modal" hidden="{{modalhidden}}" bindtap="hiddenMask">
</view>
<!--去程信息-->
<view class="goselect" hidden="{{modalhidden}}">
<view class="railpath">
<view class="railcenter timedate">
<view class="begintime">
<text class="datedetail">10-10周五</text>
<text class="time">10:30</text>
</view>
<view class="timelength">
<text>2小时0分钟</text>
<image src="../../images/timelength.png"></image>
</view>
<view class="endtime">
<text class="datedetail">10-10周五</text>
<text class="time">08:10</text>
</view>
</view>
<view class="railcenter location">
<text class="locateleft">上海虹桥机场T2</text>
<text class="locateright">首都国际机场T2</text>
</view>
</view>
<view class="broadcast railcenter">
<text class="first">东方航空MU5130</text>
<text>波音737(中)</text>
<text class="last">有餐食</text>
<image src="../../images/gored.png"></image>
</view>
</view>
<!--返程信息-->
<view class="backselect" hidden="{{modalhidden}}">
<view class="railpath">
<view class="railcenter timedate">
<view class="begintime">
<text class="datedetail">10-10周五</text>
<text class="time">10:30</text>
</view>
<view class="timelength">
<text>2小时0分钟</text>
<image src="../../images/timelength.png"></image>
</view>
<view class="endtime">
<text class="datedetail">10-10周五</text>
<text class="time">08:10</text>
</view>
</view>
<view class="railcenter location">
<text class="locateleft">首都国际机场T2</text>
<text class="locateright">上海虹桥机场T2</text>
</view>
</view>
<view class="broadcast railcenter">
<text class="first">东方航空MU5130</text>
<text>波音737(中)</text>
<text class="last">有餐食</text>
<image src="../../images/backred.png"></image>
</view>
</view>
<!--退改签规则弹出框-->
<!--<view class="quitrule" hidden="{{rulehide}}">
<image src="../../images/rule.png"></image>
</view>
<view class="hiderule" hidden="{{rulehide}}" >
<image src="../../images/del.png" bindtap="hiderule" ></image>
<view class="title">
退改签规则
</view>
<view class="ticket">
<text class="adult">成人票</text>
<view class="ticketnote">
<label>退票费</label><text >只退机建和燃油</text>
<label>改期费</label><text>不可改期</text>
<label>签证</label><text>不可签转</text>
</view>
<view class="special">
<label>特殊说明</label><text>仅允许通过身份证购买机票,乘机人年龄需在100周岁(含)以下。</text>
</view>
</view>
<view class="childticket">
<text class="adult">儿童票</text>
<text class="phone">退改签规则以东方航空最新规定为准,可资讯客服电话(95530)</text>
</view>
</view>-->
<!--活动及购票须知弹窗-->
<view class="quitrule" hidden="{{activityhide}}">
<image src="../../images/rule.png"></image>
</view>
<view class="hiderule" hidden="{{activityhide}}" >
<image src="../../images/del.png" bindtap="hideactivity" ></image>
<view class="title">
活动及购票须知
</view>
<view class="ticket">
<text class="adult buy">购票须知</text>
</view>
<view class="childticket">
<text class="phone bag">您可免费携带10公斤且体积不超过20*30*40CM
的非托运行李,无免费托运行李额</text>
</view>
</view>
<!--价格明细底部弹窗-->
<view class="modal detailmodal" hidden="{{detail}}" bindtap="pricedetail">
</view>
<view class="travelsite" hidden="{{detail}}">
<view class="siteleft">去程</view>
<view class="siteright">
<text class="type top">成人票</text><text class="part top">2人</text><text class="sum top">¥1050</text>
<text class="type">机建/燃油</text><text class="part">2人</text><text class="sum">¥0/¥100</text>
<text class="type">航空综合险</text><text class="part">2份</text><text class="sum">¥60</text>
<text class="type">安心保险</text><text class="part">4份</text><text class="sum">¥80</text>
<text class="type">愈重行李</text><text class="part">20kg</text><text class="sum">¥60</text>
<text class="type">延误险</text><text class="part">2份</text><text class="sum">¥58</text>
</view>
</view>
</view>
<!--添加乘机人-->
<view class="{{addhidden?'hid':'aa'}}">
<view class="wrap">
<!--信息完善-->
<block wx:for="{{array}}" wx:if="{{!item.lack}}" wx:key="item.id">
<view class="sum">
<view class="sum-left" ><image src="{{item.src}}" class="ch-img" data-index="{{item.idx}}" bindtap="checktap"></image></view>
<view class="user sum-right">
<image src="../../images/us.png" class="user-left"></image>
<view class="user-right">
<view>{{item.name}}</view>
<!-- <view >{{item.surname}}</view>
<view >{{item.givenname}}</view>-->
<view >身份证:{{item.idcard}}</view>
<!-- <view >护照:{{item.idcard}}</view>
<view >出生证明:{{item.idcard}}</view>-->
</view>
<navigator url="../redact/redact?id={{item.id}}" class="redack"><image src="../../images/xk.png" class="red-img"></image></navigator>
</view>
</view>
</block>
<!--信息不完善-->
<block wx:for="{{array}}" wx:if="{{item.lack}}" wx:key="item.id">
<view class="sum">
<view class="sum-left"><image src="{{item.src}}" class="ch-img" data-index="{{item.idx}}" bindtap="checktap" ></image></view>
<view class="{{index==array.length-1?'user noborder':'user'}}">
<image src="../../images/us.png" class="user-left"></image>
<view class="user-right">
<view>{{item.name}}</view>
<view >缺少{{item.lack}}</view>
</view>
<navigator class="complete" url="../redact/redact?id={{item.id}}">完善</navigator>
</view>
</view>
</block>
</view>
<button class="addperson" bindtap="adduser">添加乘机人</button>
<navigator url="../login/login">登录</navigator>
</view>
|
二、wxss样式页面代码如下:
.containerSmall {
width: 100%;
margin: 0 auto;
overflow: hidden;
}
.hid {
display: none;
}
.head {
height: 3.81rem;
background: #59A5F0;
width: 100%;
position: fixed;
padding-left: 1.12rem;
padding-right: 0.96rem;
z-index: 999;
box-sizing: border-box;
}
.line {
color: #FFFFFF;
font-size: 31.6rpx;
font-weight: bold;
}
.bord {
height: 2.133rem;
line-height: 1.0665rem;
}
.state {
color: #C5DFF9;
height: 1.653rem;
}
.gostate {
font-size: 25.78rpx;
height: 1.653rem;
line-height: 1.653rem;
}
.gostate .txtstate_02 {
margin-right: 0.933rem;
margin-left: 0.933rem;
height: 1.653rem;
}
.gostate .txtstate_04 {
margin-left: 0.933rem;
height: 1.653rem;
}
.cir {
width: 29rpx;
height: 29rpx;
padding: 0 5rpx;
}
.ordergood {
/*height: 100%;*/
background: #F0EFF5;
position: absolute;
top: 119rpx;
width: 100%;
}
.banner {
width: 100%;
height: 202rpx;
border-bottom: 0.026667rem solid #C7C7C7;
/*border-top: 1px solid #C7C7C7;*/
margin-top: 0rpx;
padding-top: 15rpx;
background: #fff;
margin-bottom: 56rpx;
}
.layout {
width: 713rpx;
margin-left: 35rpx;
}
.airpeople {
height: 100rpx;
border-bottom: 0.026667rem solid #C7C7C7;
line-height: 100rpx;
}
.airp {
display: block;
float: left;
color: #536277;
font-size: 0.9em;
font-weight: bold;
}
.addp {
float: right;
}
.add {
width: 68rpx;
height: 68rpx;
margin-right: 35rpx;
margin-top: 15rpx;
}
.person {
height: 73rpx;
padding-top: 20rpx;
}
.del {
width: 51rpx;
height: 51rpx;
float: left;
margin-right: 20rpx;
margin-top: 10rpx;
}
.per {
width: 47rpx;
height: 44rpx;
float: left;
margin-right: 10rpx;
margin-top: 10rpx;
}
.message {
float: left;
width: 582rpx;
}
.permessage {
display: block;
font-size: 0.9em;
font-weight: bold;
color: #536277;
}
.arow {
width: 17rpx;
height: 29rpx;
float: right;
margin-right: 20rpx;
margin-top: -30rpx;
}
label {
width: 242rpx;
}
input {
height: 100rpx;
}
.insure {
height: 126rpx;
}
.airsure {
float: left;
width: 351rpx;
}
.airinsure {
display: block;
float: left;
color: #536277;
font-size: 0.9em;
font-weight: bold;
margin-right: 10rpx;
}
.cir1 {
width: 32rpx;
height: 32rpx;
float: left;
}
.whole {
margin-top: 15rpx;
}
.rule {
float: left;
font-size: 0.75em;
color: #929FB1;
font-weight: bold;
margin-top: 15rpx;
}
.body-view {
float: right;
margin-top: -40rpx;
margin-right: 35rpx;
}
/*相关条款样式*/
.read {
margin-top: -20rpx;
height: 82rpx;
}
.choose {
float: left;
height: 82rpx;
}
.check {
width: 45rpx;
height: 45rpx;
margin-right: 10rpx;
}
.checked {
width: 45rpx;
height: 45rpx;
margin-right: 10rpx;
}
.txt {
color: #929FB1;
font-size: 0.75em;
font-weight: bold;
height: 82rpx;
margin-top: 10rpx;
}
.txt navigator {
color: #59A5F0;
text-decoration: underline;
display: inline-block;
}
/*底部样式*/
.foot {
height: 108rpx;
position: fixed;
bottom: 0;
}
.price {
height: 108rpx;
background: #59A5F0;
width: 456rpx;
float: left;
line-height: 108rpx;
}
.money {
font-size: 1.5em;
display: block;
color: #fff;
float: left;
margin-left: 30rpx;
margin-right: 25rpx;
}
.detail text {
color: #fff;
margin-right: 10rpx;
}
.detail image {
width: 19rpx;
height: 11rpx;
margin-bottom: 8rpx;
}
.btn {
width: 294rpx;
height: 108rpx;
float: left;
}
.next {
width: 294rpx;
height: 108rpx;
float: left;
line-height: 108rpx;
text-align: center;
background: #FF9A16;
border-radius: 0;
}
.next text {
color: #fff;
font-weight: bold;
margin-left: 20rpx;
}
.next image {
margin-left: 30rpx;
width: 25rpx;
height: 30rpx;
}
/*模态框样式*/
.modal {
position: absolute;
background-color: #0F0F1E;
z-index: 1002;
left: 0;
opacity: 0.6;
width: 100%;
height: 100%;
}
.goselect {
width: 702rpx;
height: 234rpx;
z-index: 10000;
background: #fff;
color: black;
position: absolute;
top: 287rpx;
left: 23rpx;
border-radius: 10rpx;
}
.railpath {
z-index: 2100;
color: #000;
font-weight: bold;
height: 164rpx;
border-bottom: 0.026667rem dashed#D6D6D6;
}
.railcenter {
width: 650rpx;
margin: 0 auto;
}
.timedate {
height: 100rpx;
padding-top: 23rpx;
}
.location {
height: 47rpx;
display: flex;
/*margin-top: -15rpx;*/
}
.location text {
flex: 1;
color: #9BA8BA;
font-size: 0.9em;
}
.locateright {
text-align: right;
}
.backselect {
width: 702rpx;
height: 234rpx;
z-index: 2000;
background: #fff;
color: black;
position: absolute;
top: 544rpx;
left: 23rpx;
border-radius: 10rpx;
}
.begintime {
float: left;
width: 150rpx;
/*margin-right: 10rpx;*/
}
.time {
color: #444;
font-size: 1.5em;
}
.datedetail {
display: block;
color: #9BA8BA;
font-size: 0.8em;
}
.timelength {
float: left;
width: 320rpx;
margin: 0 10rpx;
}
.timelength text {
color: #ACD2F7;
font-size: 0.8em;
margin-left: 90rpx;
}
.timelength image {
width: 331rpx;
height: 42rpx;
/*margin: 0 10rpx;*/
}
.endtime {
float: left;
width: 157rpx;
text-align: center;
}
.broadcast {
height: 68rpx;
line-height: 68rpx;
}
.broadcast text {
background: url("../../images/airline.png") no-repeat right;
font-size: 0.9em;
margin-right: 10rpx;
color: #9BA8BA;
}
.broadcast .first {
padding-right: 15rpx;
}
.broadcast text.last {
background: none;
}
.broadcast image {
width: 47rpx;
height: 47rpx;
margin-bottom: -10rpx;
}
/*退改签规则弹出框*/
.quitrule {
position: absolute;
z-index: 1002;
width: 100%;
height: 100%;
}
.quitrule image {
display: block;
width: 100%;
height: 100%;
}
.hiderule {
width: 100%;
height: 100%;
z-index: 10000;
position: absolute;
}
.hiderule image {
display: block;
width: 37rpx;
height: 37rpx;
float: right;
margin-top: 35rpx;
margin-right: 33rpx;
}
.title {
width: 100%;
height: 88rpx;
color: #fff;
font-size: 1.2em;
font-weight: bold;
text-align: center;
margin-top: 82rpx;
line-height: 88rpx;
border-bottom: 7rpx solid #D6D6D6;
}
/*票价信息*/
.adult {
display: block;
width: 602rpx;
height: 82rpx;
margin: 0 auto;
border-bottom: 0.026667rem solid #D6D6D6;
color: #fff;
font-size: 1em;
font-weight: bold;
line-height: 82rpx;
padding-left: 94rpx;
}
.ticketnote {
width: 100%;
height: 304rpx;
}
.ticketnote label {
display: block;
width: 150rpx;
height: 84rpx;
float: left;
margin-left: 111rpx;
color: #fff;
line-height: 84rpx;
}
.ticketnote text {
display: block;
width: 485rpx;
height: 84rpx;
border-bottom: 0.026667rem solid #D6D6D6;
float: left;
color: #fff;
line-height: 84rpx;
}
.special {
width: 100%;
height: 117rpx;
border-bottom: 7rpx solid #D6D6D6;
}
.special label {
width: 190rpx;
height: 84rpx;
float: left;
margin-left: 70rpx;
color: #fff;
}
.special text {
display: block;
width: 445rpx;
height: 84rpx;
float: left;
color: #dedede;
font-size: 0.8em;
padding-right: 40rpx;
}
.phone {
display: block;
width: 450rpx;
height: 117rpx;
margin-left: 252rpx;
color: #dedede;
font-size: 0.8em;
padding-top: 30rpx;
}
/*活动须知*/
.bag {
margin-left: 78rpx;
}
.ticket .buy {
padding-left: 20rpx;
}
/*底部价格明细弹窗*/
.detailmodal {
position: absolute;
bottom: 108rpx;
}
.travelsite {
width: 100%;
height: 355rpx;
position: absolute;
bottom: 108rpx;
z-index: 10003;
}
.siteleft {
color: #fff;
font-weight: bold;
width: 117rpx;
height: 355rpx;
border-right: 0.026667rem dashed #fff;
line-height: 355rpx;
text-align: center;
background: #536277;
float: left;
font-size: 1em;
}
.siteright {
width: 632rpx;
height: 355rpx;
float: left;
background: #627083;
opacity: 0.8;
}
.siteright text {
float: left;
display: block;
color: #fff;
font-size: 0.9em;
}
.type {
margin-left: 32rpx;
width: 234rpx;
height: 43rpx;
}
.top {
margin-top: 43rpx;
}
.part {
width: 170rpx;
height: 43rpx;
}
.sum {
width: 196rpx;
height: 43rpx;
}
form {
width: 100%;
height: auto;
}
/*添加乘机人*/
/**index.wxss**/
/*page{ background-color: #F0EFF5;}*/
.main {
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
padding: 58rpx 0;
box-sizing: border-box;
}
.wrap {
width: 100%;
border-top: 0.026667rem solid #C7C7C9;
border-bottom: 0.026667rem solid #C7C7C9;
background: #FFFFFF;
}
.sum {
height: 100rpx;
margin: 0 auto;
overflow: hidden;
}
.sum-left {
float: left;
width: 105rpx;
height: 98rpx;
}
.user {
border-bottom: 0.026667rem solid #C7C7C9;
width: 647rpx;
float: left;
height: 98rpx;
font-size: 0.75em;
overflow: hidden;
}
.noborder {
border: none;
}
.user-left {
float: left;
}
.user-right {
float: left;
margin: 13rpx 0 0 10rpx;
}
.redack {
width: 140rpx;
height: 98rpx;
float: right;
}
.ch-img,
.user-left {
width: 46rpx;
height: 46rpx;
margin-top: 26rpx;
}
.ch-img {
margin-left: 35rpx;
}
.red-img {
width: 58rpx;
height: 60rpx;
margin-top: 20rpx;
margin-left: 35rpx;
}
.addperson {
background: #59A5F0;
color: #FFFFFF;
width: 680rpx;
height: 82rpx;
line-height: 82rpx;
margin-top: 35rpx;
}
.complete {
float: right;
width: 142rpx;
height: 75rpx;
border: 0.026667rem solid #59A5F0;
border-radius: 40rpx;
line-height: 75rpx;
text-align: center;
color: #59A5F0;
margin: 10rpx 35rpx 0 0;
}
.hid {
display: none;
}
|
Page({
data:{
addhidden:true,
// aaa:false,
modalhidden:true,
tip:"../../images/check.png",
ttp:"../../images/checked.png",
mallhide:false,
//退改签
//rulehide:true,
hide:true,
activityhide:true,
detail:true,
//明细显示隐藏
showtravel:true,
hidetravel:false
},
//添加乘机人
addp:function(e){
this.setData({
addhidden:false
})
},
//开关函数
switch1Change: function (e){
// console.log('switch1 发生 change 事件,携带值为', e.detail.value)
if(e.detail.value==false){
console.log("你没有选中");
//显示模态框
wx.showModal({
title: '确定不享受保险保障吗?',
// content: '',
showCancel:true,
cancelColor:"#59A5F0",
confirmColor:"#59A5F0",
success: function(res) {
if (!res.confirm) {
//console.log('用户点击确定')
}
}
})
}
},
// 遮罩层
showMask:function(e){
// console.log(e)
this.setData({
modalhidden:false
})
},
hiddenMask:function(e){
this.setData({
modalhidden:true
})
},
//退改签规则
// showrule:function(e){
// this.setData({
// rulehide:false,
// })
// },
// hiderule:function(e){
// this.setData({
// rulehide:true,
// })
// },
// 活动弹窗
showactivity:function(e){
console.log(e)
this.setData({
activityhide:false
})
},
// backshowactivity:function(e){
// this.setData({
// activityhide:false
// })
// },
hideactivity:function(e){
this.setData({
activityhide:true
})
},
//价格明细底部弹窗
showdetail:function(e){
this.setData({
detail:false,
showtravel:false,
hidetravel:true
})
},
pricedetail:function(e){
this.setData({
detail:true,
showtravel:true,
hidetravel:false
})
},
//选择
app:function(e){
console.log(e)
this.setData({
mallhide:true,
hide:false,
tip:"../../images/checked.png"
})
},
appjs:function(e){
this.setData({
mallhide:false,
hide:true,
tip:"../../images/check.png"
})
},
//表单验证
formBindsubmit:function(e){
// console.log(e.detail.value.userName.length)
if(e.detail.value.userName.length==0){
wx.showModal({
title: '温馨提示',
content: '姓名不能为空',
showCancel:false,
confirmColor:"#59A5F0"
})
}else if(e.detail.value.phone.length==0){
wx.showModal({
title: '温馨提示',
content: '手机号不能为空',
showCancel:false,
confirmColor:"#59A5F0"
})
}else if(e.detail.value.phone.length!=11){
wx.showModal({
title: '温馨提示',
content: "电话号码长度是11位",
showCancel:false,
confirmColor:"#59A5F0"
})
}else if(!(/^1[34578]d{9}$/.test(e.detail.value.phone))){
console.log("手机号码有误,请重填")
wx.showModal({
title: '温馨提示',
content: '手机号码输入不正确',
showCancel:false,
confirmColor:"#59A5F0"
})
}else{
wx.navigateTo({
url: '../payment/payment'
})
}
},
addp:function(){
wx.redirectTo({
url: '../hotelDetails/hotelDetails',
})
}
})
|
模板简介:该模板名称为【微信小程序旅游订机票订单页面demo制作设计教程】,大小是,文档格式为.,推荐使用打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【小程序教程】栏目查找您需要的精美模板。