Commit bcc079cb authored by xieyishang's avatar xieyishang

sss

parent 42f49cef
...@@ -312,9 +312,23 @@ ...@@ -312,9 +312,23 @@
"style" : { "style" : {
"navigationBarTitleText": "添加酒店" "navigationBarTitleText": "添加酒店"
} }
},
{
"path" : "pages/hotelOrder/hotelOrder",
"style" : {
//酒店订单管理
"navigationBarTitleText": "订单管理"
}
},
//商家查看的酒店订单详情
{
"path" : "pages/hotelOrderDetaile/hotelOrderDetaile",
"style" : {
//酒店订单管理
"navigationBarTitleText": "订单详情"
}
} }
], ],
"globalStyle": { "globalStyle": {
"navigationBarTextStyle": "black", "navigationBarTextStyle": "black",
......
//酒店管理订单页面
.hotelOrder{
min-height: 100vh;
background: #F2F3F3;
padding-top: 100upx;
}
.basetopTab{
position: fixed;
width: 100%;
top: 0;
/* #ifdef H5 */
top: 88upx;
/* #endif */
left: 0;
z-index: 99;
}
.HotelorderList{
margin-top: 20upx;
.HotelOrderItem{
background: #FFFFFF;
padding: 36upx 24upx;
margin-bottom: 20upx;
//主要信息
.infosbox{
.imgs{
width:119upx;
height:120upx;
border-radius:8upx;
margin-right: 27upx;
}
.infosbox_right{
.titlebox{
//标题状态
margin-bottom: 15upx;
.titles{
font-size:30upx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(0,0,0,1);
}
.orderStatus{
font-size:28upx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(255,102,0,1);
}
}
//日期
.ordertime{
margin-bottom: 10upx;
font-size:26upx;
color:rgba(0,0,0,1);
.liens{
margin: 0 10upx;
}
.endssum{
}
}
.userTel{
font-size:26upx;
color:rgba(75,74,74,1);
}
}
}
.amountprice{
font-size: 30upx;
}
.footbodyorder{
margin-top: 40upx;
.footbodyorder_l{
font-size:30upx;
.wenzi{
color:rgba(51,51,51,1);
}
.shuzi{
color:#FF6900;
font-weight: bold;
}
.tkmsg{
color:#FF6900;
}
}
.footbodyorder_r{
.btns{
width:152upx;
height:62upx;
line-height: 62upx;
text-align: center;
border:1px solid rgba(204,204,204,1);
border-radius:4upx;
font-size:26upx;
color:rgba(51,51,51,1);
margin-right: 20upx;
}
.iusbg{
border:0;
background: #FF6900;
color:#ffffff;
}
.isend{
margin-right: 0;
}
}
}
}
}
\ No newline at end of file
<template>
<!-- 酒店订单 酒店商家查看到的 -->
<!-- 订单京津冀 -->
<view class="hotelOrder yocode">
<view class="basetopTab flex ali-c" >
<view v-for="(item,index) in navlist" :key="index" class="basetabitem flex1 flexc" @tap="taggletabs(item.status_id)">
<view class="title" :class="{active:tabactive==item.status_id}">{{item.status_name}}</view>
</view>
</view>
<!-- 订单列表 -->
<view class="HotelorderList">
<view class="HotelOrderItem" v-for="(item,index) in orderList" :key="index">
<view class="infosbox flex ali-c ">
<image class="imgs" :src="staticUrl+item.photo" mode=""></image>
<view class="infosbox_right flex1">
<view class="titlebox flex ali-c jus-b">
<view class="titles">{{item.title}}</view>
<text class="orderStatus">{{item.order_status}}</text>
<!-- <text class="orderStatus" v-if="item.order_status==0">待付款</text>
<text class="orderStatus" v-else-if="item.order_status==1">待处理</text>
<text class="orderStatus" v-else-if="item.order_status==2">已完成</text> -->
</view>
<view class="ordertime flex ali-c jus-b">
<view class="flex ali-c">
<text>{{item.stime}} </text>
<text class="liens">-</text>
<text>{{item.ltime}}</text>
</view>
<text class="endssum">{{item.day}}</text>
</view>
<view class="userTel">
<text class="tels">客户电话 {{item.mobile}}</text>
<text>入住时间 {{item.last_time}}</text>
</view>
</view>
</view>
<view class="ali-c jus-e amountprice">
合计:¥{{item.amount}}
</view>
<!-- 订单信息end -->
<view class="footbodyorder flex ali-c jus-b">
<!-- 退款 -->
<view class="footbodyorder_l">
<!-- <text class="tkmsg">新的退款申请,请及时处理</text> -->
已付: <text style="color: #FF6900;">¥{{item.amount}}</text>
</view>
<!-- 退款 -->
<view class="footbodyorder_r flex ali-c">
<view class="btns iusbg isend ml-20" :data-orderid="item.order_id" @tap="orderDetails">查看订单</view>
<!-- <view class="btns iusbg isend ml-20" v-if='item.order_status==1' :data-orderid="item.order_id" @tap="method">确认人住</view> -->
<!-- <navigator url="/pages/myStore/HotelRefundExamine?id=11" class="btns iusbg isend">立即处理</navigator> -->
<!-- <view class="ali-c" v-if="tabactive==0"> -->
<!-- </view> -->
<!-- <view class="ali-c" v-if="tabactive==2"> -->
<!-- <view class="btns iusbg isend ml-20" :data-orderid="item.order_id" @tap="orderDetails">查看订单</view> -->
<!-- </view> -->
</view>
</view>
</view>
<empty v-if="orderList.length==0"></empty>
</view>
</view>
</template>
<script>
// import { shopHotel,complete} from "@/utils/api/shop.js";
import empty from "@/components/empty/empty.vue";
import {hotelStatus,hotelOrder} from "@/utils/api/hotel.js";
export default {
components:{
empty,
},
data(){
return{
tabactive:"all",//全部0 售后2
page:0,
orderList:[],
isallshow:false,
navlist:[],//tab nav
}
},
computed: {
staticUrl () {//静态资源地址
return this.$store.state.staticUrl;
},
staticUrl1(){
return this.$store.state.staticUrl1;
},
uploadurl(){
return this.$store.state.uploadurl;
}
},
onLoad(){
this.shopHotelfun();
this.gethotelStatus();
},
onReachBottom(){
console.log("11");
if(!this.isallshow){
this.shopHotelfun();
}
},
methods:{
//获取酒店订单状态
async gethotelStatus(){
let res = await hotelStatus({
});
if(res.code==0){
this.navlist = res.data;
}else{
this.$api.msg(res.msg);
}
},
//确认核销 确认入驻接口
method(e){
var that = this;
var orderid = e.currentTarget.dataset.orderid;
uni.showModal({
title: '确认核销',
content: '您确定客户入住吗?',
showCancel: true,
cancelText:"",
cancelColor:'skyblue',
confirmText:"",
confirmColor: 'skyblue',
success: (res)=> {
if (res.cancel) {
} else {
complete(orderid).then(res=>{
if(res.code==-2){
uni.showToast({
title: res.msg,
})
}
if(res.code==0){
this.$api.msg("操作成功");
setTimeout(()=>{
this.orderList = [];
this.page = 0;
this.isallshow = false;
this.shopHotelfun();
},1500)
}
})
}
},
})
},
//进入详情
orderDetails(e){
var orderid = e.currentTarget.dataset.orderid;
uni.navigateTo({
url: '/pages/hotelOrderDetaile/hotelOrderDetaile?order_id='+orderid+'&shop=shop'
})
},
//获取酒店订单列表
async shopHotelfun(){
this.page++;
let res = await hotelOrder({
status:this.tabactive,
page:this.page
});
if(res.data.length!=0){
this.orderList = [...this.orderList,...res.data];
}else{
this.$api.msg("没有更多了哦~");
this.isallshow = true;
}
},
taggletabs(ids){
if(ids!=this.tabactive){
this.tabactive = ids;
this.orderList = [];
this.page = 0;
this.isallshow = false;
this.shopHotelfun();
}
}
}
}
</script>
<style lang="scss">
@import "./hotelOrder.scss"
</style>
page{
background: #F5F2F2;
padding-bottom: 120upx;
}
.orderDetailsHead{
height: 300upx;
background: #FF6900;
padding: 24upx;
.heleftss{
.title{
font-size:36upx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(255,255,255,1);
}
.time{
color:#fff;
font-size: 24upx;
}
}
.helerigh{
width:190upx;
height:77upx;
background:rgba(255,255,255,1);
border-radius:4upx;
.text{
font-size:30upx;
color:rgba(255,81,18,1);
margin-right: 20upx;
}
.ings{
width:15upx;
height:25upx;
}
}
}
.tabsliens{
height: 88upx;
line-height: 88upx;
background: #fff;
border-top:1px solid #F5F1F1;
.tabsliensItem{
height: 88upx;
line-height: 88upx;
.imgs{
width: 34upx;
height: 34upx;
margin-right: 20upx;
}
.text{
font-size:30upx;
color:rgba(0,0,0,1);
}
}
.tabsliensItem:nth-child(1){
border-right: 1px solid #F5F1F1;
}
}
//支付方式和价格
.paytypes{
height: 88upx;
line-height: 88upx;
padding: 0 24upx;
background: #fff;
margin-top: 20upx;
.text{
font-size:30upx;
color:rgba(0,0,0,1);
}
.prices{
font-size:30upx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(255,105,0,1);
}
}
//输入框
.inputxboxs{
margin-top: 20upx;
background: #ffffff;
padding: 0 24upx;
.titletop{
height: 85upx;
line-height: 85upx;
font-size:30upx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(0,0,0,1);
border-bottom:1upx solid rgba(238,238,238,1);
}
.clllinputbox{
border-bottom:1upx solid rgba(238,238,238,1);
height: 85upx;
line-height: 85upx;
.titles{
font-size:30upx;
color:rgba(0,0,0,1);
width: 200upx;
}
.childtext{
font-size:30upx;
color:rgba(0,0,0,1);
}
.jiantousi{
width:12upx;
height:22upx;
}
}
.ruzhuren{
border-bottom:1upx solid rgba(238,238,238,1);
.rztitle{
width: 200upx;
font-size:30upx;
color:rgba(0,0,0,1);
}
.ruzhuren_r{
.itemsfinput{
height: 85upx;
line-height: 85upx;
.inputs{
width: 100%;
height: 85upx;
line-height: 85upx;
border-bottom: 1px solid #f1f1f1;
font-size: 30upx;
}
// .inputs:nth-last-child(1){
// border:0;
// }
}
.itemsfinput:nth-last-child(1) .inputs{
border:0;
}
}
}
.iteminputchbox{
height: 85upx;
line-height: 85upx;
border-bottom: 1px solid #EEEEEE;
.title{
font-size:30upx;
color:rgba(0,0,0,1);
width: 200upx;
}
.inputs{
font-size:30upx;
}
}
.iteminputchbox.onebor{
border:0;
}
}
.footsysy{
height:96upx;
width: 100vw;
padding: 0 24upx;
position: fixed;
bottom: 0;
left: 0;
background:rgba(255,255,255,1);
.btns{
width:230upx;
height:80upx;
line-height: 80upx;
text-align: center;
border:1upx solid rgba(210,210,210,1);
border-radius:10upx;
color:#000000;
font-size: 34upx;
}
.isbg{
margin-left: 20upx;
border:0;
color:#FFFFFF;
background: #FF6900;
}
}
.msgsbox{
font-size: 24upx;
font-weight: 500;
color: rgba(0,0,0,1);
}
.countprices{
.twopaytypes{
margin-top: 0 !important;
}
}
\ No newline at end of file
<template>
<!-- 商家看到的 酒店订单详情 -->
<!-- 商家订单 -->
<view class="orderdetails yocode" >
<!-- 头部 -->
<view class="orderDetailsHead flex jus-b ali-c" v-if="orderinfos.order_status==1">
<view class="heleftss">
<!-- <view class="title">亲您已成功预定房间</view>
<view class="time">请尽快到店核销订单,祝您入住愉快</view> -->
<view class="title" v-if="orderinfos.order_status==0" >待付款</view>
<view class="title" v-if="orderinfos.order_status==1" >待处理</view>
<view class="title" v-if="orderinfos.order_status==2" >已完成</view>
</view>
</view>
<!-- 头部end -->
<view class="HotelOrder">
<view class="orderItems">
<view class="orderinfos flex ali-c jus-b">
<image class="orderimgs" :src="staticUrl+orderinfos.photo" mode=""></image>
<view class="ordermingxi flex1">
<view class="titlebox flex ali-c jus-b">
<view class="title">{{orderinfos.title}}</view>
</view>
<!-- 时间 -->
<view class="orderTiems flex ali-c jus-b">
<view class="flex ali-c">
<text class="rili">{{orderinfos.stime}}</text>
<text class="text">- </text>
<text class="rili">{{orderinfos.ltime}}</text>
</view>
<text class="endsum">{{orderinfos.day}}</text>
</view>
<view class="Hotelcode">
<view class="text" v-if="orderinfos.is_zc==0">{{room.typename}}丨不含早丨Wi-Fi</view>
<view class="text" v-if="orderinfos.is_zc==1">{{room.typename}}丨含早丨Wi-Fi</view>
</view>
</view>
</view>
<view class="msgsbox mt-10">订单确认后,不可取消/变更,如未入住,酒店将扣除全额房费房间整晚保留,请及时入住。</view>
</view>
<!-- 联系商家 和地图导航 -->
<view class="tabsliens flex ali-c">
<!-- <view class="tabsliensItem flex1 flexc" @tap="togbs" v-if="hotel.lat && hotel.lng" >
<image class="imgs" src="/static/news/fujinL@2x.png" mode=""></image>
<text class="text">地图导航</text>
</view> -->
<!-- v-else -->
<view class="tabsliensItem flex1 flexc" @tap="toptkefu" >
<image class="imgs" src="/static/news/fujinL@2x001.png" mode=""></image>
<text class="text">平台客服</text>
</view>
<view class="tabsliensItem flex1 flexc" @tap="tostoreTel">
<image class="imgs" src="/static/news/telicon001.png" mode=""></image>
<text class="text">联系客户</text>
</view>
</view>
</view>
<view class="countprices">
<view class="paytypes flex jus-b">
<text class="text">总金额</text>
<view class="prices">¥{{orderinfos.price*orderinfos.day*orderinfos.num}}</view>
</view>
<view class="paytypes flex jus-b">
<text class="text">单价</text>
<view class="prices">¥{{orderinfos.price*orderinfos.day}}</view>
</view>
<view class="paytypes flex jus-b twopaytypes">
<text class="text">优惠金额 <text style="color: #ff6900;"></text></text>
<view class="prices">{{orderinfos.coupon_price/100}}</view>
</view>
<view class="paytypes flex jus-b twopaytypes">
<text class="text">优惠后金额</text>
<view class="prices">¥{{orderinfos.amount}}</view>
</view>
</view>
<!-- 输入框 入住信息 -->
<view class="inputxboxs">
<view class="titletop">入住信息</view>
<view class="clllinputbox flex ali-c">
<view class="titles">房间数</view>
<text class="childtext flex1">{{orderinfos.num}}</text>
<image class="jiantousi" src="/static/news/youjiant.png" mode=""></image>
</view>
<!-- 入住人 -->
<view class="ruzhuren flex ali-c">
<view class="rztitle">
入住人
</view>
<view class="ruzhuren_r flex1">
<view class="itemsfinput" v-for="(item,index) in orderinfos.name" :key="index">
<view class="inputs">{{item}}</view>
</view>
</view>
</view>
<!-- 入住人end -->
<view class="iteminputchbox flex ali-c">
<view class="title">联系电话</view>
<view class="inputs">{{orderinfos.mobile}}</view>
</view>
<view class="iteminputchbox onebor flex ali-c">
<view class="title">到店时间</view>
<view class="inputs">{{orderinfos.last_time}}</view>
</view>
</view>
</view>
</template>
<script>
import {hotelOrderDetails} from "@/utils/api/hotel.js";
export default {
components:{
},
data() {
return {
order_id:"",//订单id
hotel:{},
room:{},
order:{},
//密码弹窗
payFlag: false,
showmoney:0,//显示弹窗输入支付密码的金额
msg:"酒店余额支付",
paymentPwd: '' ,//可以写默认值
money:0,
orderData:{},
daojishi:0,//倒计时
hdate:0,//小时
Mdate:0,//分
Sdate:0,//秒
djshikaig:false,
orderinfos:{},//订单信息
};
},
computed: {
staticUrl () {//静态资源地址
return this.$store.state.staticUrl;
},
CONFIG(){
return this.$store.state.CONFIG;
}
},
onLoad(opdata) {
this.order_id = opdata.order_id;
this.order_details();
},
methods:{
async order_details(){
let res = await hotelOrderDetails({
order_id:this.order_id,
});
console.log(res);
if(res.code==0){
let orderdata = res.data;
orderdata.name = orderdata.name.split("|#|");
this.orderinfos = orderdata;//res.data;
}else{
this.$api.msg(res.msg);
}
},
//地图导航
togbs(){
uni.getLocation({
type: 'gcj02', //返回可以用于uni.openLocation的经纬度
success: (res)=> {
const latitude = res.latitude;
const longitude = res.longitude;
uni.openLocation({
latitude: parseFloat(this.hotel.lat),
longitude: parseFloat(this.hotel.lng),
success: ()=> {
console.log('success');
}
});
}
});
},
//平台ke'fu客服
toptkefu(){
uni.makePhoneCall({
phoneNumber: "15907083784",//this.CONFIG.site.tel, 先写死 客服部的电话
});
},
//联系客户
tostoreTel(){
uni.makePhoneCall({
phoneNumber: this.orderinfos.mobile //仅为示例
});
},
},
}
</script>
<style lang="scss">
@import "./hotelOrderDetaile.scss"
</style>
...@@ -163,6 +163,17 @@ ...@@ -163,6 +163,17 @@
</navigator> </navigator>
</view> </view>
<!-- 酒店的订单 酒店订单管理-->
<view class="jiu_01" v-if="shop_type=='hotel'">
<!-- 酒店的订单 -->
<navigator url="/pages/hotelOrder/hotelOrder">
<view>
<image class="img" src="/static/icon/8.png" mode=""></image>
</view>
<view>订单管理</view>
</navigator>
</view>
<view class="jiu_01 "> <view class="jiu_01 ">
<navigator url="/pages/kehu/kehu"> <navigator url="/pages/kehu/kehu">
......
...@@ -354,3 +354,160 @@ $uni-color-error: #dd524d; ...@@ -354,3 +354,160 @@ $uni-color-error: #dd524d;
//店铺信息编辑 表单end //店铺信息编辑 表单end
//tab 切换
$basehe:98upx;
$bordercodes:rgba(242,242,242,1);
.basetopTab{
height:$basehe;
line-height: $basehe;
background:rgba(255,255,255,1);
border-top:1px solid $bordercodes;
.basetabitem{
position: relative;
height: $basehe;
line-height: $basehe;
.title{
display: inline-block;
height: $basehe;
font-size:30upx;
color:#000000;
}
.title.active{
color:rgba(255,102,0,1);
position: relative;
}
.title.active:after{
content: "";
position: absolute;
bottom: 0;
left: 50%;
margin-left: -29upx;
width:58upx;
height:4upx;
background:rgba(255,105,0,1);
border-radius:1upx;
}
}
// .basetabitem:nth-child(1):after{
// content: "";
// width:1px;
// height:$basehe;
// background:$bordercodes;
// position: absolute;
// top:0;
// right: 0;
// }
}
//tab 切换
//酒店的订单
//酒店订单
.HotelOrder{
margin-top: 20upx;
.orderItems{
background: #FFFFFF;
padding: 36upx 24upx;
// 订单详细信息
.orderinfos{
.orderimgs{
width:120upx;
height:120upx;
border-radius:8upx;
margin-right: 26upx;
}
//明细
.ordermingxi{
//标题
.titlebox{
margin-bottom: 15upx;
.title{
font-size:30upx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(0,0,0,1);
}
.orderStatus{
font-size:28upx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(255,102,0,1);
}
}
//时间
.orderTiems{
margin-bottom: 10upx;
font-size:26upx;
color:rgba(0,0,0,1);
.text{
margin: 0 10upx;
}
.endsum{
margin-right: 0;
}
}
//房间号
.Hotelcode{
font-size:26upx;
color:rgba(75,74,74,1);
.text{
margin-right: 30upx;
}
}
}
}
//合计
.prices{
margin-top: 28upx;
text-align: right;
font-size:30upx;
color:rgba(51,51,51,1);
.shuzi{
font-weight: bold;
}
}
//按钮
.orderfootinfo{
margin-top: 40upx;
.times{
font-size:30upx;
color:rgba(51,51,51,1);
.shuzi{
color: #FF6900;
}
}
.btnsubbox{
.btns{
width:152upx;
height:62upx;
line-height: 62upx;
text-align: center;
border:1upx solid rgba(204,204,204,1);
border-radius:4upx;
font-size:26upx;
color:rgba(51,51,51,1);
margin-right: 20upx;
}
.btns.bgs{
background:rgba(255,102,0,1);
border:0;
color:#FFFFFF;
}
.endsbtn{
margin-right: 0;
}
}
}
}
}
//酒店订单end
...@@ -41,3 +41,36 @@ export function roomInfo(data) ...@@ -41,3 +41,36 @@ export function roomInfo(data)
{ {
return request.post("hotel/roomInfo",data,{ noAuth : false}); return request.post("hotel/roomInfo",data,{ noAuth : false});
} }
//酒店订单状态
export function hotelStatus(data)
{
return request.post("order/hotelStatus",data,{ noAuth : false});
}
//酒店订单列表
export function hotelOrder(data)
{
return request.post("order/hotelOrder",data,{ noAuth : false});
}
//酒店订单详情
export function hotelOrderDetails(data)
{
return request.post("order/hotelOrderDetails",data,{ noAuth : false});
}
//酒店订单同意退房 同意 ====》还没错、对接
export function hotelConsentRefund(data)
{
return request.post("order/hotelConsentRefund",data,{ noAuth : false});
}
//酒店订单拒绝退房 觉得 ====》还没错、对接
export function hotelRefuseRefund(data)
{
return request.post("order/hotelRefuseRefund",data,{ noAuth : false});
}
...@@ -21,7 +21,7 @@ export default function request(api, method, data, {noAuth = false, noVerify = f ...@@ -21,7 +21,7 @@ export default function request(api, method, data, {noAuth = false, noVerify = f
// title: '加载中...' // title: '加载中...'
// }); // });
console.info(isurltwo,"isurltwo"); // console.info(isurltwo,"isurltwo");
let Url = SiteBaseUrl, header = HEADER; let Url = SiteBaseUrl, header = HEADER;
...@@ -29,9 +29,9 @@ export default function request(api, method, data, {noAuth = false, noVerify = f ...@@ -29,9 +29,9 @@ export default function request(api, method, data, {noAuth = false, noVerify = f
// Url = SiteBaseUrltwo; // Url = SiteBaseUrltwo;
// } // }
console.info(Url,"Url",noAuth,"noAuth"); // console.info(Url,"Url",noAuth,"noAuth");
console.info("token",store.state.token); // console.info("token",store.state.token);
if (!noAuth) { if (!noAuth) {
//debugger; //debugger;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment