民宿订单详情

lu_quan_dev
masong 11 months ago
parent 8b2e933124
commit a9f9262834
  1. 4
      common/config.js
  2. 6
      pages.json
  3. 7
      pages/personcenter/personcenter.vue
  4. 20
      subPageC/bookHomestay/bookHomestay.vue
  5. 26
      subPageC/orderHomestay/order.vue
  6. 190
      subPageC/orderHomestay/orderDetail.vue
  7. 162
      subPageC/orderHomestay/orderList.vue

@ -185,4 +185,8 @@ module.exports = {
getPhone: PWPATH+"/app-api/wechatshop/auth/getWeChatUserMobile",//获取手机号
weChatLogin: PWPATH+"/app-api/wechatshop/auth/weChatLogin",//登陆获取token
refreshToken: PWPATH +"/admin-api/system/auth/refresh-token",//登陆获取token
// 民宿客栈
getHomestayOrderDetail: PWPATH +"/admin-api/homestay/HotelOrder/selectUserOrderOne", // 获取民宿订单详情信息
getHomestayOrderList: PWPATH + "/admin-api/homestay/HotelOrder/selectPageUser", // 获取用户全部民宿订单列表
}

@ -500,15 +500,15 @@
}
},
{
"path": "orderHomestay/order",
"path": "orderHomestay/orderList",
"style": {
"navigationBarTitleText": "订单列表"
}
},
{
"path": "order/orderDetail",
"path": "orderHomestay/orderDetail",
"style": {
"navigationBarTitleText": "订单列表"
"navigationBarTitleText": "订单详情"
}
}
]

@ -45,10 +45,10 @@
<view class="right"><u-icon name="arrow-right" size="13"></u-icon></view>
</view>
<view class="left rights" @click="goPage('hotelOrder')">
<view class="left rights" @click="goPage('homestayOrder')">
<image src="/static/animg/personCenter/hotelDd.png"></image>
<view class="top">酒店订单</view>
<view class="top">住宿订单</view>
<view class="right"><u-icon name="arrow-right" size="13"></u-icon></view>
</view>
@ -160,6 +160,9 @@ export default {
case 'ticketOrder':
this.onTokenJump('/subPageC/order/order', 'navigateTo')
break;
case 'homestayOrder':
this.onTokenJump('/subPageC/orderHomestay/order', 'navigateTo')
break;
case 'yijian':
this.onTokenJump('/subPageB/suggest/sug_list?type=2', 'navigateTo')
break;

@ -118,13 +118,23 @@
"idCardNumber": "130682991"
}]
};
console.log(data)
uni.navigateTo({
url: "/subPageC/orderHomestay/order?data="
});
this.$Request.post(this.$config.createHotelOrder, data, 'json', null, false, null).then((res) => {
console.log("asdf",res)
if(res.code ==0){
uni.navigateTo({
url: "/subPageC/orderHomestay/orderDetail?id="+res.data.id
});
}else if(res.code == 500){
uni.showToast({
title: res.data,
icon: 'none',
duration: 2000
})
}else{
}
});

@ -1,26 +0,0 @@
<template>
<view>
<view class="v-card small container-fluid m-t-24">
<view></view>
</view>
</view>
</template>
<script>
export default {
data() {
return {}
},
onLoad: function(options) {
this.data = JSON.parse(decodeURIComponent(options.data));
this.detailInfo();
},
methods: {
detailInfo() {}
}
}
</script>
<style>
</style>

@ -3,33 +3,36 @@
<view class="v-order-bg"></view>
<view class="v-order-detail-state">
<view class="order-top">
<view class="state">待付款</view>
<view class="tip">酒店房间有限请尽快支付超时后订单将自动取消</view>
<view class="time">25:25</view>
<view class="state">{{homestayOrderData.status}}</view>
<view class="tip">{{promptText(homestayOrderData.orderStatus)}}</view>
<view class="time" v-if="homestayOrderData.orderStatus == '0'">25:25</view>
</view>
<view class="row order-top-btn">
<view class="col-12">
<view class="pay-btn">去支付</view>
<view class=" order-top-btn">
<view class="">
<view class="pay-btn" v-if="homestayOrderData.orderStatus == '0'">去支付</view>
<view class="pay-btn" v-else @click="toHomeStayBookingPage(homestayOrderData.hotelId)">再次预订</view>
</view>
<view class="col-12">
<!-- <view class="col-12">
<view class="cancel-btn">取消订单</view>
</view>
</view>
<view v-if="false">
<view class="pay-btn">再次约定</view>
</view> -->
</view>
<view class="row describe">
<!-- <view v-if="homestayOrderData.orderStatus != '0' && homestayOrderData.orderStatus !='1'">
<view class="pay-btn">再次预订</view>
</view> -->
<view class="row describe" v-if="homestayOrderData.orderStatus == '7' || homestayOrderData.orderStatus == '8' ">
<view class="dec col">退款进度<text>退款成功</text></view>
<view class="btn">查看详情</view>
</view>
</view>
<view class="v-card container-fluid m-t--80">
<!-- <view class="v-card container-fluid m-t--80">
<view class="v-form-item row">
<view class="label">取消规则</view>
<view class="content">09月13日18:00可免费取消</view>
</view>
</view>
</view> -->
<view class="v-card container-fluid m-t-24">
<view class="v-form">
@ -37,10 +40,10 @@
<view class="col row">
<view class="label">在线支付</view>
<view class="content">
<text class="price">1520.00</text>
<text class="price">{{homestayOrderData.orderAmount}}</text>
</view>
</view>
<view class="detail-btn">详情</view>
<!-- <view class="detail-btn">详情</view> -->
</view>
<view class="v-form-line"></view>
<view class="v-form-item row">
@ -52,34 +55,40 @@
<view class="v-card container-fluid m-t-24">
<view class="v-order-info row">
<view class="info-image"></view>
<view class="info-image">
<!-- <image :src="homestayOrderData.hotelLogo" ></image> -->
</view>
<view class="info-content">
<view class="title">石家庄西部长青璞祯酒店</view>
<view class="address">鹿泉区白鹿乡梁庄村西部长青休博城</view>
<view class="title">{{homestayOrderData.hotelName}}</view>
<view class="address">{{homestayOrderData.addressInfo}}</view>
</view>
</view>
<view class="row v-order-info-btn">
<view class="btn col-12">地图导航</view>
<view class="btn col">咨询电话</view>
<view class="btn col-12" @click="navigation">地图导航</view>
<view class="btn col" @click="cell(homestayOrderData.serviceNumber)">咨询电话</view>
</view>
</view>
<view class="v-card container-fluid m-t-24">
<view class="v-form-date row flex-align-center">
<view class="start"><text class="date">9月12日</text></view>
<text class="mid">1</text>
<view class="end"><text class="date">09月12日</text></view>
<view class="v-form-date row flex-align-center" v-for="item in homestayOrderData.dateList">
<view class="start"><text class="date">{{item.checkTime}}</text></view>
<text class="mid">{{item.day}}</text>
<view class="end"><text class="date">{{item.checkOutTime}}</text></view>
</view>
<view class="v-form-name m-t-12">豪华大床房</view>
<view class="v-form-tip"><text>无早餐</text> <text>1张2米特大床</text> <text>2人入住</text> <text>45</text></view>
<view class="v-form-name m-t-12">{{homestayOrderData.houseName}}</view>
<view class="v-form-tip">
<!-- <text>无早餐</text> -->
<!-- <text>{{homestayOrderData.bedWide +'米宽'+homestayOrderData.hotelTypeName}}</text> -->
<text>最多入住{{homestayOrderData.guest}}</text>
<text>{{homestayOrderData.houseArea}}</text></view>
<view class="v-form bg m-t-24">
<view class="v-form-item row">
<view class="label">入住人</view>
<view class="content">张春荣</view>
<view class="content">{{homestayOrderData.bookerusername}}</view>
</view>
<view class="v-form-item row">
<view class="label">联系手机</view>
<view class="content">157144552</view>
<view class="content">{{homestayOrderData.bookerphone}}</view>
</view>
</view>
</view>
@ -89,11 +98,11 @@
<view class="v-form">
<view class="v-form-item row">
<view class="label">订单号</view>
<view class="content">567389478348534</view>
<view class="content">{{homestayOrderData.orderNumber}}</view>
</view>
<view class="v-form-item row">
<view class="label">下单时间</view>
<view class="content">2024-08-20 12:00:01</view>
<view class="content">{{homestayOrderData.orderTime}}</view>
</view>
</view>
</view>
@ -104,21 +113,130 @@
export default {
data() {
return {
title: 'Hello'
title: '订单详情',
homestayOrderData:{
'id': 1734877929,
'orderNumber': '',
'hotelId': 0,
'hotelName': '',
'addressInfo': '',
'orderAmount': 0,
'orderTime': '',
'payTime': null,
'price': null,
'status': '',
'orderStatus': '0',
'belongingPayOrderId': '',
'bedNum': 0,
'hotelLogo': '',
'houseName': '',
'serviceNumber': '',
'bedWide': 0,
'houseArea': 0,
'guest': 0,
'bedNumTwo': 0,
'hotelTypeName': '',
'bookerusername': '',
'bookerphone': '',
'cancelReason': null,
'dateList': [
{
'checkTime': '',
'checkOutTime': '',
'day': 0
}
],
'no': null
}
}
},
onLoad() {
onLoad(opetion) {
this.getHomestayOrderDetail(opetion.id)
},
methods: {
//
getHomestayOrderDetail(orderId){
let data ={
'id':orderId
}
this.$Request.get(this.$config.getHomestayOrderDetail, data, null, null, false, null).then((res) => {
console.log(res)
if(res.code == 0){
this.homestayOrderData = res.data
}else{
uni.showToast({
title: res.data,
icon: 'none',
duration: 2000
})
}
});
},
//
cell(val){
uni.makePhoneCall({
phoneNumber: val //
});
},
//
navigation(){
uni.openLocation({
latitude: Number(this.homestayOrderData.lat),
longitude: Number(this.homestayOrderData.lon),
name: this.homestayOrderData.hotelName,
address: this.homestayOrderData.addressInfo,
complete: function(result) {
console.log(result);
},
});
},
//
promptText: function(val) {
// 0 1 2 3 4 5 6 7 退 8退
switch (val) {
case "0":
return "酒店房间有限,请尽快支付,超时后订单将自动取消"
break;
case "1":
return "等待商家确认汇总,请及时关注订单状态"
break;
case "2":
return "订单超时未支付,请重新下单"
break;
case "3":
return "商家因满房原因暂时无法接单,建议您稍后重试或选择其他房型"
break;
case "4":
return "请按预订时间办理入住"
break;
case "5":
return ""
break;
case "6":
return ""
break;
case "7":
return "退款进度:发起退款申请"
break;
case "8":
return "退款进度:退款成功"
break;
}
},
//
toHomeStayBookingPage(hotelId){
uni.navigateTo({
url: "/subPageB/Homestay/homestaydetail/homestaydetail?guid="+hotelId
});
}
}
}
</script>
<style lang="scss">
/*每个页面公共css */
@import '../../static/common.scss';
@import '@/static/css/common.scss';
.v-order-detail {
padding-bottom: 24rpx;

@ -1,85 +1,149 @@
<template>
<view class="v-order-list">
<mescroll-body top="10" :topbar="true" :safearea="true" ref="mescrollRef" @init="mescrollInit" :down="downOption"
@down="downCallback" @up="upCallback">
<view class="v-order-list-item container-fluid m-b-24" v-for="(item,index) in orderList">
<view class="row box">
<view class="image"></view>
<view class="image">
<!-- <image class="slide-image" height="50" :src="item.hotelLogo" width="50"></image> -->
</view>
<view class="content col">
<view class="title">{{item.name}}</view>
<view class="date">{{item.startData}}{{item.endData}}</view>
<view class="price">总价¥{{item.price}}</view>
<view class="bottom" v-if="item.type=='0'">
<view class="btn">去支付</view>
<view class="btn">取消订单</view>
</view>
<view class="bottom" v-if="item.type=='1'">
<view class="btn">再次预定</view>
<view class="title">{{item.hotelName}}</view>
<view class="date">{{item.checkTime}}{{item.checkOutTime}}</view>
<view class="price">总价¥{{item.orderAmount}}</view>
<view class="bottom" >
<view class="btn" v-if="item.orderStatus=='0'">去支付</view>
<view class="btn" v-if="item.orderStatus !='0' && item.orderStatus !='1'" @click="toHomeStayBookingPage(item.hotelId)">再次预定</view>
<view class="btn" @click="toHomeStayDetailPage(item.id)">详情</view>
</view>
</view>
</view>
<view class="tip-bage"></view>
<view class="tip-state" v-if="item.type=='2'">等待商家确认中请及时关注订单状态</view>
<view class="state" :class="'type'+item.type">{{stateMessage(item.type)}}</view>
<view class="tip-state" v-if="item.orderStatus=='2'">等待商家确认中请及时关注订单状态</view>
<view class="state" :class="'type'+item.orderStatus">{{stateMessage(item.orderStatus)}}</view>
</view>
</mescroll-body>
</view>
</template>
<script>
import MescrollMixin from '@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js';
export default {
mixins: [MescrollMixin], // 使mixin (main.js)
data() {
return {
orderList: []
orderList: [],
list: [], //
downOption: {
auto: false //,downCallback; true
},
}
},
onLoad() {
this.getInitPage()
//TODO:
this.judgeLogin()
this.upCallback()
},
methods: {
getInitPage() {
this.orderList = [{
name: "2间,豪华大床房",
startData: "2024-09-12",
endData: "2024-09-13",
price: 1541,
type: "0"
},
{
name: "2间,豪华大床房",
startData: "2024-09-12",
endData: "2024-09-13",
price: 1541,
type: "1"
},
{
name: "2间,豪华大床房",
startData: "2024-09-12",
endData: "2024-09-13",
price: 1541,
type: "2"
},
{
name: "2间,豪华大床房",
startData: "2024-09-12",
endData: "2024-09-13",
price: 1541,
type: "3"
}
]
},
stateMessage: function(val) {
// 0 1 2 3 4 5 6 7 退 8退
switch (val) {
case "0":
return "待支付"
break;
case "1":
return "待确认"
return "已支付"
break;
case "2":
return "预订成功"
return "已取消"
break;
case "3":
return "已取消"
return "预订失败"
break;
case "4":
return "预订成功"
break;
case "5":
return "已入住"
break;
case "6":
return "已离店"
break;
case "7":
return "退款中"
break;
case "8":
return "已退款"
break;
}
},
/*上拉加载的回调: 其中page.num:当前页 从1开始, page.size:每页数据条数,默认10 */
upCallback(page) {
//
if (page) {
this.loadData(page.num);
} else {
this.loadData(1);
uni.pageScrollTo({
scrollTop: 0,
duration: 300 // ms
});
}
},
//
loadData(pageNo) {
let that = this
// TODO: appId openId
const userInfo = uni.getStorageSync("userInfo");
const extConfig = uni.getExtConfigSync ? uni.getExtConfigSync() : {};
console.log(uni.getExtConfigSync(), 'extConfigextConfigextConfig')
let appId = extConfig.app_id
let httpData = {
openid: userInfo.openid,
appid: appId,
pageNo: pageNo,
pageSize: 10
};
this.$Request
.get(this.$config.getHomestayOrderList, httpData, null, null, false, false)
.then((res) => { uni.stopPullDownRefresh();
const listWithShow = res.data.list
this.mescroll.endByPage(listWithShow.length, res.data.total / 10); // (, )
if (pageNo == 1) {
this.orderList = listWithShow;
} else {
this.orderList = this.orderList.concat(listWithShow);
}
that.$forceUpdate();
console.log(this.orderList);
// this.startCountdownForAllOrders(this.list);
uni.hideLoading();
})
.catch(() => {
//,
this.mescroll.endErr();
});
},
// 宿
toHomeStayDetailPage(id){
uni.navigateTo({
url: "/subPageC/orderHomestay/orderDetail?id="+id
});
},
//
toHomeStayBookingPage(hotelId){
uni.navigateTo({
url: "/subPageB/Homestay/homestaydetail/homestaydetail?guid="+hotelId
});
}
}
}
@ -87,7 +151,7 @@
<style lang="scss">
/*每个页面公共css */
@import '../../static/common.scss';
@import '@/static/css/common.scss';
.v-order-list {
padding: 0;

Loading…
Cancel
Save