c8bd032f by 杨炀

no message

1 parent 5a7ee012
This file is too large to display.
......@@ -171,7 +171,15 @@ export function getBaseInfoByActiveId(id) {
method: 'get'
})
}
export function checkRoomPayByUserId(id) {
return request({
url: `/ota/norder/checkRoomPayByUserId`,
method: 'get',
params: {
extId: id
}
})
}
export function submitInvoice(form) {
return request({
url: `/ota/invoice`,
......
......@@ -80,20 +80,22 @@
<img class="kf" src="@/assets/logo/btn01.png"/>
<div class="text-center mt10 gradient-text">在线客服</div>
</div>
<div @click="goHelp">
<img class="kf" src="@/assets/logo/btn02.png"/>
<div class="text-center mt10 gradient-text">帮助中心</div>
<div @click="goHelpZH">
<a target="_blank" href="/file/操作指引.zip">
<img class="kf" src="@/assets/logo/btn02.png"/>
<div class="text-center mt10 gradient-text">操作指引</div>
</a>
</div>
</div>
<div class="mlb" v-else>
<div target="_blank" href="#"
onclick="javascript:window.open('https://ykf-weixin01.7moor.com/wapchat.html?accessId=707daf80-02c6-11ef-9a4d-85cd5dacc5bf&fromUrl=&urlTitle=&language=EN','_blank','height=700px,width=700px,top=100,left=150,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')" title="Live Chat">
<img class="kf" src="@/assets/logo/btn01.png"/>
<div class="text-center gradient-text">Live Chat</div>
<div class="text-center gradient-text">LIVE CHAT</div>
</div>
<div @click="goHelp">
<img class="kf" src="@/assets/logo/btn02.png"/>
<div class="text-center gradient-text">Demo Video</div>
<div class="text-center gradient-text">GUIDELINE</div>
</div>
</div>
</div>
......@@ -108,10 +110,13 @@ const goHelp = () => {
router.push({
path: `/news/list/20000100`,
query:{
kindName: language.value==0?'帮助中心':'Demo Video'
kindName: language.value==0?'操作指引':'GUIDELINE'
}
})
}
const goHelpZH = () => {
}
</script>
<style lang="scss" scoped>
......
......@@ -54,8 +54,8 @@
<span :class="language==1?'active':''" @click="changeLanguage(1)">EN</span>
</div>
<div class="ml20 forPc" >
<el-button v-if="!isLogin" style="border-radius: 20px;" class="loginBtn">
<span @click="goLogin">{{ language==0?'登录':'LOGIN' }}</span>
<el-button v-if="!isLogin" @click="goLogin" style="border-radius: 20px;" class="loginBtn">
<span>{{ language==0?'登录':'LOGIN' }}</span>
<!-- | &nbsp;<span @click="goRegister">注册</span>-->
</el-button>
......
<template>
<div>
<div class="banner">
<img src="@/assets/booking/cl_text.png">
<img v-if="language==0" src="@/assets/booking/cl_text_c.png">
<img v-else src="@/assets/booking/cl_text_e.png">
</div>
<div class="box">
<div class="searchBar">
......@@ -72,7 +73,7 @@
</el-col>
<el-col :span="3">
<el-button class="btn-lineG w100" round type="primary" @click="goOrder(h,r)">{{ language==0?'我要预':'Select' }}</el-button>
<el-button class="btn-lineG w100" round type="primary" @click="goOrder(h,r)">{{ language==0?'我要预':'Select' }}</el-button>
</el-col>
</el-row>
</div>
......
......@@ -22,8 +22,8 @@
<div class="roomType">{{ car.carType }}</div>
<div class="tagbox">
<span class="tag">{{ car.carColor }}</span>
<span class="tag" v-show="car.checkOut==1">可送车</span>
<span class="tag" v-show="car.checkIn==1">可接车</span>
<span class="tag" v-show="car.checkOut==1">{{ language == 0 ?'可送车':'Can send car' }}</span>
<span class="tag" v-show="car.checkIn==1">{{ language == 0 ?'可接车':'Can pick up' }}</span>
</div>
<div class="room">
<span>{{ language == 0 ? '座位数' : 'Seats' }}: {{ car.carSeat }}</span>
......@@ -38,7 +38,7 @@
<div class="leftboderTT">{{ language == 0 ? '预约信息' : 'Reservation information' }}</div>
<div class="border-rr mt20 pd20">
<el-form :model="form" :label-width="language == 0 ?'120':'150'" :rules="rules" ref="formRef">
<el-form :model="form" :label-width="language == 0 ?'120':'200'" :rules="rules" ref="formRef">
<el-form-item :label="language==0?'车辆数量':'cars'" required prop="num">
<el-input-number v-model="form.num" :min="1" @change="changecarNum"/>
</el-form-item>
......@@ -53,9 +53,9 @@
</el-form-item>
<div v-show="form.useType?.indexOf('0')> -1">
<h3 class="afterLine">接站信息</h3>
<h3 class="afterLine">{{ language==0?'接站信息':'Pick up information' }}</h3>
<el-form-item :label="language==0?'用车日期':'Date'" required>
<el-date-picker v-model="date1"
<el-date-picker v-model="date1" :disabled-date="disabledDate"
type="date"
:placeholder="language==0?'选择日期':'Select date'" format="YYYY-MM-DD"
value-format="YYYY-MM-DD"/>
......@@ -73,16 +73,16 @@
<el-form-item :label="language==0?'联系电话':'Phone'" required>
<el-input type="text" v-model="form.pickUpBo.phone"/>
</el-form-item>
<el-form-item label="人数" required>
<el-form-item :label="language==0?'人数':'Person Count'" required>
<el-input type="text" v-model="form.pickUpBo.count"/>
</el-form-item>
<el-form-item label="航班/火车班次" required>
<el-form-item :label="language==0?'航班/火车班次:':'Flight/Train No'" required>
<el-input type="text" v-model="form.pickUpBo.no"/>
</el-form-item>
<el-form-item label="接机/接站地点" required>
<el-form-item :label="language==0?'接机/接站地点':'Pick up/Drop off Address'" required>
<el-input type="text" v-model="form.pickUpBo.noAddress"/>
</el-form-item>
<el-form-item label="送达地点" required>
<el-form-item :label="language==0?'送达地点':'Delivery Address'" required>
<el-input type="text" v-model="form.pickUpBo.deliveryAddress"/>
</el-form-item>
<el-form-item :label="language==0?'备注':'Remarks'">
......@@ -90,9 +90,9 @@
</el-form-item>
</div>
<div v-show="form.useType?.indexOf('1')> -1">
<h3 class="afterLine">送站信息</h3>
<h3 class="afterLine">{{ language==0?'送站信息':'Drop off information' }}</h3>
<el-form-item :label="language==0?'用车日期':'Date'" required>
<el-date-picker v-model="date2"
<el-date-picker v-model="date2" :disabled-date="disabledDate"
type="date"
:placeholder="language==0?'选择日期':'Select date'" format="YYYY-MM-DD"
value-format="YYYY-MM-DD"/>
......@@ -171,7 +171,7 @@
import {useRouter, useRoute} from "vue-router";
import {ref, reactive, onMounted} from "vue";
import {useStorage} from "@vueuse/core/index";
import {checkResidueRoom, newsSubmitOrderHotel, submitOrderCar} from "@/apiPc/booking"
import {checkResidueRoom, getBaseInfoByActiveId, newsSubmitOrderHotel, submitOrderCar} from "@/apiPc/booking"
import dayjs from 'dayjs'
import {ElMessage, ElMessageBox} from "element-plus";
import useUserStore from "@/store/modules/user";
......@@ -203,6 +203,7 @@ const rzUserArr = ref([])
const money = ref(0)
const choseRooms = ref([])
const rules = ref({})
const lform = ref({})
onMounted(() => {
......@@ -210,6 +211,7 @@ onMounted(() => {
car.value = JSON.parse(decodeURIComponent(route.query.car))
money.value = 0
console.log(item.value, car.value)
initDays()
})
function changeUseType(e) {
......@@ -240,6 +242,20 @@ function bindTimeChange(e) {
function bindTimeChange2(e) {
revTime2.value = e
}
function initDays() {
getBaseInfoByActiveId(route.params.cptId).then(res=>{
lform.value = res.data
}).catch(err=>{
console.log(err)
})
}
function disabledDate(date) {
// const today = dayjs().format('YYYY-MM-DD')
if (form.value.carStart) {
return date.getTime() > dayjs(form.value.carStart).valueOf()
}
return true
}
function submit() {
if (!user) {
useUserStore().setReLogin()
......
<template>
<div>
<div class="banner">
<img src="@/assets/booking/cy_text.png">
<img v-if="language==0" src="@/assets/booking/cy_text_c.png">
<img v-else src="@/assets/booking/cy_text_e.png">
</div>
<div class="box">
<div class="searchBar">
......
......@@ -25,7 +25,7 @@
<el-form-item :label="language==0?'订餐周期':'Check-in date'" required>
<el-date-picker @change="getDaysBetween"
v-model="rzRange"
type="daterange"
type="daterange" :disabled-date="disabledDate"
:placeholder="language==0?'选择日期':'Select date'" format="YYYY-MM-DD"
value-format="YYYY-MM-DD"/>
<!-- :picker-options="pickerOptions"-->
......@@ -34,10 +34,10 @@
<el-form-item :label="language==0?'联系人':'Contacts'" required>
<el-input v-model="form.contacts"/>
</el-form-item>
<el-form-item :label="language==0?'联系电话':'Contact phone'" required prop="phone">
<el-form-item :label="language==0?'联系电话':'Contact phone'" required>
<el-input v-model="form.phone"/>
</el-form-item>
<el-form-item :label="language==0?'送餐时间':'Delivery time'" required prop="phone">
<el-form-item :label="language==0?'送餐时间':'Delivery time'">
<div style="line-height: 36px;">{{food.psStart}} - {{food.psEnd}}</div>
</el-form-item>
<el-form-item :label="language==0?'配送地址':'Delivery address'">
......@@ -45,8 +45,8 @@
</el-form-item>
<el-form-item :label="language==0?'说明':'Instructions'">
<div class="tip" v-if="language==0">
*如预多天的餐饮,将分多天进行配送。<br/>
*每日送餐时间只配送当日预的餐饮。
*如预多天的餐饮,将分多天进行配送。<br/>
*每日送餐时间只配送当日预的餐饮。
</div>
<div class="tip" v-else>1.If you have ordered food for multiple days, it will be delivered in multiple days.
<br/>
......@@ -98,7 +98,7 @@
import {useRouter, useRoute} from "vue-router";
import {ref, reactive, onMounted} from "vue";
import {useStorage} from "@vueuse/core/index";
import {checkResidueRoom, newsSubmitOrderHotel, submitOrderFood} from "@/apiPc/booking"
import {checkResidueRoom, getBaseInfoByActiveId, newsSubmitOrderHotel, submitOrderFood} from "@/apiPc/booking"
import dayjs from 'dayjs'
import {ElMessage,ElMessageBox} from "element-plus";
import useUserStore from "@/store/modules/user";
......@@ -119,6 +119,7 @@ const rzUserArr = ref([])
const money = ref(0)
const choseDays = ref([])
const rules = ref({})
const lform = ref({})
let usedays = 0
onMounted(() => {
......@@ -131,13 +132,29 @@ onMounted(() => {
form.value.total = food.value.foodPriceEn
}
console.log(food.value,restaurant.value)
initDays()
const today = dayjs()
canOrderStart.value = today
if (food.value.hqNewStart < canOrderStart.value) {
food.value.hqNewStart = canOrderStart.value
}
})
function initDays() {
getBaseInfoByActiveId(route.params.cptId).then(res=>{
lform.value = res.data
}).catch(err=>{
console.log(err)
})
}
function disabledDate(date) {
//判读今天大与form.value.hqStart
if (lform.value.foodStart) {
const today = dayjs().format('YYYY-MM-DD')
if (lform.value.foodStart < today) {
return !((date.getTime() >= dayjs(today).valueOf())&&(date.getTime() <= dayjs(lform.value.foodEnd).valueOf()))
} else {
return !((date.getTime() >= dayjs(lform.value.foodStart).valueOf())&&(date.getTime() <= dayjs(lform.value.foodEnd).valueOf()))
}
}
return true
}
function changeNum() {
let moneyAll = 0
if(language.value == 0){
......@@ -196,6 +213,18 @@ function submit() {
useUserStore().setReLogin()
return
}
if(rzRange.value.length==0){
ElMessage.warning(language.value == 0 ? '请选择订餐时间' : 'Please select the meal time')
return
}
if(!form.value.contacts){
ElMessage.warning(language.value == 0 ? '请输入联系人' : 'Please enter the contact')
return
}
if(!form.value.phone){
ElMessage.warning(language.value == 0 ? '请输入手机号' : 'Please enter the phone number')
return
}
if(rzRange.value.length>0){
form.value.dcStart = rzRange.value[0]
form.value.dcEnd = rzRange.value[1]
......
<template>
<div>
<div class="banner">
<img src="@/assets/booking/jd_text.png">
<img v-if="language==0" src="@/assets/booking/jd_text_c.png">
<img v-else src="@/assets/booking/jd_text_e.png">
</div>
<div class="box">
<div class="searchBar">
......@@ -14,29 +15,34 @@
<div class="box" v-loading="loading">
<el-row :gutter="20">
<el-col :lg="12" :md="24" :sm="24" xs="24" :xl="12" v-for="(h,index) in list" class="mb20">
<el-col :lg="24" :md="24" :sm="24" :xs="24" :xl="24" v-for="(h,index) in list" class="mb20">
<el-card @click="goDetail(h)">
<!-- 酒店列表-->
<el-row class="hotel" align="middle" :gutter="20">
<el-col :span="12">
<img class="w100" :src="fillImgUrl(h.photos?.split(',')[0])"/>
<el-col :span="6">
<div class="imgbox">
<img class="w100" :src="fillImgUrl(h.photos?.split(',')[0])"/>
</div>
</el-col>
<el-col :span="12">
<h3 class="esp flex">{{h.name}}
<div class="starBox ml10">
<img v-for="i in Number(h.starLevel||0)" src="@/assets/booking/star.png">
</div>
</h3>
<div class="tagbox">
<span v-for="(t,index) in h.label?.split(',')" v-show="index<3">{{t}}</span>
<h3 class="esp">{{h.name}}</h3>
<div class="starBox">
<img v-for="i in Number(h.starLevel||0)" src="@/assets/booking/star.png">
</div>
<div class="tagbox esp">
<span v-for="(t,index) in h.label?.split(',')" v-show="index<4">{{t}}</span>
<a v-show="h.label?.split(',').length>4">{{ language==0?'更多':'MORE' }} ></a>
</div>
<p class="esp addr">
<p class="esp addr mt20">
<el-icon size="16" style="position: relative;top: 2px" color="#929AA0"><LocationFilled /></el-icon>
{{h.address}}
</p>
<div class="price">¥<span>{{ h.price }}</span><i v-if="language==0"></i></div>
<el-button class="btn-lineG w200px" round type="primary" >{{ language==0?'立即预约':'Select' }}</el-button>
</el-col>
<el-col :span="4" class="text-right">
<div class="price">{{ language==0?'¥':'€' }}<span>{{ h.price }}</span>
<i v-if="language==0"></i>
</div>
<el-button class="btn-lineG w200px" round type="primary" >{{ language==0?'立即预订':'Select' }}</el-button>
</el-col>
</el-row>
</el-card>
......@@ -54,8 +60,11 @@
import * as booking from "@/apiPc/booking"
import {useRouter,useRoute} from "vue-router";
import {useStorage} from "@vueuse/core/index";
import useUserStore from "@/store/modules/user";
const router = useRouter()
const route = useRoute()
const user = useUserStore().user
const useStore = useUserStore
const language= useStorage('language',0)
const query = ref({
name:''
......@@ -78,6 +87,10 @@
})
}
function goDetail(item) {
if(!user){
useStore().setVisitor()
return
}
router.push({
name:'hotelDetail',
params:{
......@@ -98,7 +111,7 @@
.addr{font-size: 14px;color: #929AA0;font-weight: 400;margin: 0 0 10px;}
.price{margin: 0 0 8px;
color: #FF8124;font-size: 18px;
span{font-size: 24px;margin: 0 8px;font-family: 'DINAlternate-Bold';font-weight: 600;}
span{font-size: 36px;margin: 0 8px;font-family: 'DINAlternate-Bold';font-weight: 600;}
i{font-style: normal;color: #929AA0;}
}
}
......@@ -113,8 +126,14 @@
.no-border{border: none;background: #F5F7F9;
:deep(.el-input__wrapper){border: none;box-shadow: none;background: #F5F7F9;}
}
.imgbox {width: 100%;height: 100%;position: relative;
img{width: 100%;height: 100%;}
.starBox{position: absolute;bottom: 0;right: 0;background: rgba(0,0,0,0.4);padding: 10px 15px 3px;}
}
.po-r-b{}
.starBox{
img{display: inline-block;margin-right: 4px}
border-radius: 14px 0 0 0;
img{display: inline-block;margin-right: 4px;width: 24px;}
}
.tagbox{margin: 10px 0;
a{color: #AFB5B9;font-size: 12px;}
......
......@@ -63,7 +63,7 @@
</ul>
</div>
<div>
<div v-for="(r,index) in roomList" :key="index" class="room">
<div v-for="(r,index) in roomList" :key="index" class="room" v-show="language==0?r.roomPrice>0:r.roomPriceEn>0">
<el-row :gutter="30" align="middle">
<el-col :span="4">
<div class="roomImg">
......@@ -93,7 +93,7 @@
<div>{{ language==0?'在线付':'Online' }}</div>
</div>
<el-button v-else class="btn-lineG w100" round type="primary" @click="goOrder(r)">Select</el-button>
<el-button v-else class="btn-lineG w100" round type="primary" @click="goOrder(r)">Select</el-button>
<!-- <div class="text-center text-primary mt10 fontsize14 pointer" v-if="language == 0">-->
<!-- 剩余 {{(r.roomCount - (r.useCount||0)).toFixed()}} 间-->
<!-- </div>-->
......@@ -115,11 +115,13 @@
import {useRouter} from "vue-router";
import {ref, reactive, onMounted} from "vue";
import {useRoute} from "vue-router";
import {getHotelById, getHotelRooms} from "@/apiPc/booking"
import {getHotelById, getHotelRooms,checkRoomPayByUserId} from "@/apiPc/booking"
import {useStorage} from "@vueuse/core/index";
import useUserStore from "@/store/modules/user";
import {ElMessageBox} from "element-plus";
const user = useUserStore().user
const useStore = useUserStore
const language = useStorage('language', 0)
const router = useRouter()
const route = useRoute()
......@@ -193,6 +195,33 @@ function initMap() {
}
function goOrder(room) {
checkRoomPayByUserId(room.hotelId).then(res=>{
if(res.data == -100){
ElMessageBox.confirm(
language.value == 0 ?'你有未支付的酒店订单,是否前往个人中心查看':'You already have an unpaid hotel order, do you want to go to the personal center to check it?',
language.value==0?'提示':'Warning',
{
confirmButtonText: language.value==1?'Go My Reservation ':'前往我的预订',
// cancelButtonText: language.value==1?'Continue to book':'继续预订',
type: 'warning',
}
).then((res) => {
console.log(res)
router.push({
name:'myReservation'
})
})
// .catch((res) => {
// console.log(res)
// goNext(room)
// })
return
}
goNext(room)
})
}
function goNext(room) {
router.push({
name:'hotelOrder',
params:{
......
......@@ -27,13 +27,16 @@
<div class="leftboderTT">{{ language == 0 ? '预约信息' : 'Reservation information' }}</div>
<div class="border-rr mt20 pd20">
<el-form :model="form" :label-width="language == 0 ?'100':'150'" :rules="rules" ref="formRef">
<el-form :model="form" :label-width="language == 0 ?'100':'160'" :rules="rules" ref="formRef">
<el-form-item :label="language==0?'入住日期':'Check-in date'" required>
<el-date-picker @change="getDaysBetween"
v-model="rzRange"
type="daterange" :disabled-date="disabledDateRZ"
:placeholder="language==0?'选择日期':'Select date'" format="YYYY-MM-DD"
value-format="YYYY-MM-DD"/>
<div class="tip" v-if="lform.hqStart">{{ language==0?'可订日期':'Available date' }}{{ lform.hqStart.slice(0, 10) }} ~ {{ lform.hqEnd.slice(0, 10) }}</div>
<!-- :picker-options="pickerOptions"-->
</el-form-item>
<el-form-item :label="language==0?'房间数':'Rooms'" required prop="roomNum">
......@@ -43,7 +46,7 @@
<span v-else>{{ canOrderNum }} Remaining rooms</span>
</div>
</el-form-item>
<el-form-item v-for="(n,index) in form.roomNum" :key="index" :label="language==0?'Name':'入住人'`${index+1}`" required>
<el-form-item v-for="(n,index) in form.roomNum" :key="index" :label="language==1?`Name${index+1}`:`入住人${index+1}`" required>
<el-input v-model="rzUserArr[index]" :placeholder="language==0?'每间填一位住客姓名':'Each room fill in one name of the guest'"/>
</el-form-item>
<el-form-item :label="language==0?'预计到店':'Expected check-in'" required>
......@@ -63,13 +66,13 @@
<div v-if="room.addBedFlag=='1'">
<el-form-item :label="language==0?'是否加床':'Extra bed'" required>
<el-radio-group v-model="form.isAddbed">
<el-radio-group v-model="form.isAddbed" @change="changeAddBed">
<el-radio value="1">{{ language == 0 ? '是' : 'Yes' }}</el-radio>
<el-radio value="0">{{ language == 0 ? '否' : 'No' }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.isAddbed=='1'" :label="language==0?'加床张数':'Extra bed num'" required>
<el-input-number v-model="form.addNum" :min="0" :max="1" @change="changeBed"/>
<el-input-number v-model="form.addNum" :min="0" :max="form.roomNum" @change="changeBed"/>
<div class="tip" v-if="form.isAddbed=='1'">*
<span v-if="language == 0">一个房间最多加一张床</span>
......@@ -91,13 +94,13 @@
language == 0 ? '¥' : '€'
}}{{ (room.roomPriceEn * form.roomNum * choseRooms.length).toFixed(2) }}</span>
</label>
<div class="ccitem" v-for="(c, index) in choseRooms" :key="index">
<div class="ccitem" v-for="(c, index) in choseRooms" :key="index" v-show="form.roomNum>0">
{{ c }}
<span v-if="language==0">{{ form.roomNum }}*{{ language == 0 ? '¥' : '€' }}{{ room.roomPrice }}</span>
<span v-else>{{ form.roomNum }}*{{ language == 0 ? '¥' : '€' }}{{ room.roomPriceEn }}</span>
</div>
<label v-if="form.isAddbed=='1'">{{ language == 0 ? '加床费' : 'Extra bed fee' }}
<label v-if="form.isAddbed=='1'&&form.addNum>0">{{ language == 0 ? '加床费' : 'Extra bed fee' }}
<span class="fr" v-if="language==0">{{
language == 0 ? '¥' : '€'
}}{{ (room.bedPrice * form.addNum * choseRooms.length).toFixed(2) }}</span>
......@@ -106,10 +109,9 @@
}}{{ (room.bedPriceEn * form.addNum * choseRooms.length).toFixed(2) }}</span>
</label>
<div v-if="form.isAddbed=='1'" class="ccitem" v-for="(c, index) in choseRooms" :key="index">
<div v-if="form.isAddbed=='1'&&form.addNum>0" class="ccitem" v-for="(c, index) in choseRooms" :key="index">
{{ c }}
<span v-if="language==0">{{ form.addNum }}*{{ language == 0 ? '¥' : '€' }}{{ room.bedPrice }}</span>
<span v-else>{{ form.addNum }}*{{ language == 0 ? '¥' : '€' }}{{ room.bedPriceEn }}</span>
<span>{{ form.addNum }}*{{ language == 0 ? '¥' : '€' }}{{ language == 0 ?room.bedPrice:room.bedPriceEn}}</span>
</div>
<label>{{ language == 0 ? '共计' : 'Total' }}<span
......@@ -128,7 +130,7 @@
</label>
</el-col>
<el-col :span="12" class="text-right">
<el-button type="primary" class="btn-lineG w200px" size="large" round @click="submit">确认付款</el-button>
<el-button type="primary" class="btn-lineG w200px" size="large" round @click="submit">{{ language == 0 ?'确认付款':'Book Now' }}</el-button>
</el-col>
</el-row>
</el-card>
......@@ -157,9 +159,9 @@ const lform = ref({})
const form = ref({
isAddbed: '0',
roomNum: 0,
addNum: 1,
addNum: 0,
ddDate:'14:00',
phone: user.phonenumber||'',
phone: user?.phonenumber||'',
})
const rzRange = ref([])
const rzUserArr = ref([])
......@@ -256,12 +258,20 @@ onMounted(() => {
console.log(room.value)
hotelName.value = route.query.hotelName
money.value = 0
const today = dayjs()
initDays()
})
function initDays() {
getBaseInfoByActiveId(route.params.cptId).then(res=>{
lform.value = res.data
// if(lform.value.hqStart){
// const today = dayjs()
// if(lform.value.hqStart.slice(0,10)<today.format('YYYY-MM-DD')){
// lform.value.hqStart = today.format('YYYY-MM-DD')
// }
// rzRange.value = [lform.value.hqStart.slice(0,10),lform.value.hqEnd.slice(0,10)]
// getDaysBetween(rzRange.value)
// }
// console.log(rzRange.value,lform.value.hqStart)
}).catch(err=>{
console.log(err)
})
......@@ -286,7 +296,12 @@ function changeRoomNum(e) {
rzUserArr.value.length = e
countMoney()
}
function changeAddBed(e) {
if(e=='0'){
form.value.addNum = 0
}
changeBed()
}
function changeBed() {
countMoney()
}
......@@ -308,7 +323,7 @@ function getDaysBetween(e) {
var d2 = Date.parse(e[1])
if (d1 == d2) {
usedays = 0
ElMessage.error('入住时间跨度需大于一天')
ElMessage.error(language == 0 ? '入住时间跨度需大于一天' :'The duration of the stay must be more than one day.')
// console.trace()
rzRange.value = []
return
......@@ -364,18 +379,27 @@ function submit() {
}
if (usedays == 0) {
ElMessage.error(language.value == 0 ? '入住时间跨度需大于一天' : 'Check-in time must be greater than one day')
ElMessage.warning(language.value == 0 ? '入住时间跨度需大于一天' : 'Check-in time must be greater than one day')
return
}
if(form.value.roomNum==0){
ElMessage.warning(language.value == 0 ? '请选择房间数量' : 'Please select the number of rooms')
return
}
if(!form.value.phone){
ElMessage.warning(language.value == 0 ? '请填写手机号' : 'Please fill in the phone number')
return
}
form.value.rzStart = rzRange.value[0]
form.value.rzEnd = rzRange.value[1]
let arr = []
for (var n of rzUserArr.value) {
if (n == '' || n == undefined) {
// '请填写入住人信息'
ElMessage.warning(language.value == 0 ? '请填写入住人信息' : 'Please fill in the check-in information')
return
} else {
......@@ -444,8 +468,10 @@ function submit() {
})
}
} else {
ElMessage.warning(language.value == 0 ? '无可预的房间' : 'No rooms available to book')
ElMessage.warning(language.value == 0 ? '无可预的房间' : 'No rooms available to book')
}
}).catch(err => {
ElMessage.warning(language.value == 0 ? '无可预订的房间' : 'No rooms available to book')
})
})
}
......
......@@ -13,13 +13,16 @@
<h3>{{ form.hotelName }}</h3>
<el-row>
<el-col>
{{ language == 0 ?'地址':'Address' }}{{ form.provinceName }} {{ form.cityName }} {{ form.areaName }} {{ form.address }}
{{ language == 0 ?'地址':'Address' }}
<span v-if="language == 0">{{ form.provinceName }} {{ form.cityName }} {{ form.areaName }} </span>
{{ form.address }}
</el-col>
<el-col>
{{ language == 0 ?'入住信息':'Check-in Information' }}{{ form.messageObj?.roomStayDate }}
</el-col>
<el-col>
{{ language == 0 ?'房间信息':'Room Information' }}{{ form.messageObj?.roomName }}{{ form.roomNum }}
{{ language == 0 ?'房间信息':'Room Information' }}{{ form.messageObj?.roomName }}{{ form.roomNum }}
{{ language == 0 ? '间':'rooms' }}
</el-col>
</el-row>
</div>
......@@ -128,19 +131,28 @@
<el-row justify="space-between" align="middle">
<el-col :lg="12">
<span>{{ language == 0 ? '支付时间' : 'Payment Time' }}{{form.payDate}}</span>
<div v-if="form.payDate">{{ language == 0 ? '支付时间' : 'Payment Time' }}{{form.payDate}}</div>
<div class="mt10" v-if="form.payDate">{{ language == 0 ? '支付方式':'Payment Method'}}
<span v-if="form.paymentType=='1'">{{language==0?'微信支付':'WePay'}}</span>
<span v-if="form.paymentType=='3'">PayPal</span>
</div>
</el-col>
<el-col :lg="12" v-if="Number(totalFee)>0" class="result">
<div class="priceb" v-if="form.viewStatus=='0'">{{ language == 0 ? '待支付金额' : 'Amount Due' }}<span
class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span></div>
<div class="priceb" v-if="form.viewStatus=='1'">{{ language == 0 ? '已支付金额' : 'Amount Due' }}<span
class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span></div>
<div class="priceb" v-if="form.viewStatus=='4'">{{ language == 0 ? '已退订' : 'Refunded' }}<span
class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span></div>
<div class="priceb" v-if="form.viewStatus=='2'">{{ language == 0 ? '已取消' : 'Canceled' }}<span
class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span></div>
<div class="priceb" v-if="form.viewStatus=='7'">{{ language == 0 ? '退款审核中' : '退款审核中' }}<span
class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span></div>
<el-col :lg="12" class="result">
<div class="priceb" v-if="form.viewStatus=='0'">{{ language == 0 ? '待支付金额' : 'Amount Due' }}
<span class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span>
</div>
<div class="priceb" v-if="form.viewStatus=='1'||form.viewStatus=='5'">{{ language == 0 ? '已支付金额' : 'Amount Due' }}
<span class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span>
</div>
<div class="priceb" v-if="form.viewStatus=='4'">{{ language == 0 ? '已退订' : 'Refunded' }}
<span class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span>
</div>
<div class="priceb" v-if="form.viewStatus=='2'">{{ language == 0 ? '已取消' : 'Canceled' }}
<span class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span>
</div>
<div class="priceb" v-if="form.viewStatus=='7'">{{ language == 0 ? '退款审核中' : 'Refund in review' }}
<span class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span>
</div>
</el-col>
</el-row>
</div>
......@@ -331,7 +343,7 @@ onMounted(() => {
function getData() {
if(type.value=='car') {
booking.getCarBilldetailbyId({orderId: orderId.value}).then(res => {
return booking.getCarBilldetailbyId({orderId: orderId.value}).then(res => {
form.value = res.data
if(language.value==0){
totalFee.value = res.data.total
......@@ -344,7 +356,7 @@ function getData() {
})
}
if(type.value=='food') {
booking.getFoodBilldetailbyId({orderId: orderId.value}).then(res => {
return booking.getFoodBilldetailbyId({orderId: orderId.value}).then(res => {
if(language.value==0){
totalFee.value = res.data.total
} else {
......@@ -357,7 +369,7 @@ function getData() {
})
}
if(type.value=='hotel') {
booking.getRoomBilldetailbyId({orderId: orderId.value}).then(res => {
return booking.getRoomBilldetailbyId({orderId: orderId.value}).then(res => {
if(language.value==0){
totalFee.value = res.data.total
} else {
......
......@@ -28,6 +28,7 @@ const route = useRoute()
const router = useRouter()
const language= useStorage('language',0)
const orderId = ref(route.query.orderId)
const type = ref('')
const loading = ref(false)
onMounted(() => {
......@@ -36,6 +37,7 @@ onMounted(() => {
loading.value = true
callbackPalPay(code).then(res => {
loading.value = false
type.value = res.data.orderType
})
})
......@@ -43,7 +45,8 @@ function goBillDetail() {
router.push({
name: 'bookingPay',
query: {
orderId: route.query.orderId
orderId: route.query.orderId,
orderType: type.value
}
})
}
......
......@@ -2,7 +2,7 @@
<div>
<div class="box">
<el-card class="mt30">
票务预
票务预
</el-card>
</div>
......
......@@ -101,7 +101,7 @@ const menus = ref([
isActive: false
},
{
name: language.value==0?'我的预':'My Reservation',
name: language.value==0?'我的预':'My Reservation',
routeName: 'myReservation',
picUrl1: '/img/nav_29.png',
picUrl2: '/img/nav_29_dwn.png',
......@@ -131,7 +131,7 @@ const menus3 = ref([
isActive: false
},
{
name: language.value==0?'我的预':'My Reservation',
name: language.value==0?'我的预':'My Reservation',
routeName: 'myReservation',
picUrl1: '/img/nav_29.png',
picUrl2: '/img/nav_29_dwn.png',
......@@ -161,7 +161,7 @@ const menusPersonal = ref([
isActive: false
},
{
name: language.value==0?'我的预':'My Reservation',
name: language.value==0?'我的预':'My Reservation',
routeName: 'myReservation',
picUrl1: '/img/nav_29.png',
picUrl2: '/img/nav_29_dwn.png',
......
......@@ -5,9 +5,10 @@
<h3 class="leftboderTT">{{ language==0?'我的预订':'My reservation' }}
</h3>
<el-button class="fr" type="primary" plain @click="toInvoice">{{ language==0?'发票开具':'Invoice' }}</el-button>
<!-- <el-button class="fr" type="primary" plain @click="toInvoice">{{ language==0?'发票开具':'Invoice' }}</el-button>-->
</div>
<el-empty :image="`/img/order_no.png`" :image-size="228" v-if="list?.length == 0"/>
<div class="pd20">
<div v-for="b in list" class="item">
<div class="title">
......@@ -25,13 +26,15 @@
<span class="bg-blue" v-if="b.status == '1'">{{ language == 0 ?'支付成功':'successful' }}</span>
<span class="bg-warning" v-if="b.status == '2'">{{ language == 0 ? '已取消' : 'Canceled' }}</span>
<span class="bg-danger" v-if="b.status == '3'||b.status == '4'">{{ language == 0 ? '已退订' : 'Refunded' }}</span>
<span class="bg-danger" v-if="b.status == '7'">{{ language == 0 ? '退款审核中' : 'Refund in review' }}</span>
</div>
<el-row class="pd20 mt10" justify="space-between" align="middle">
<el-col :lg="10">
<div v-if="b.orderType == 0">
<h3 class="name">{{b.name}}</h3>
<p>{{b.messageObj?.roomStayDate}}</p>
<p v-if="language==0">{{b.messageObj?.roomStayDate}}</p>
<p v-else>{{b.messageObj?.roomStayDate.replace('共',' total ').replace('晚',' days')}}</p>
<p>{{b.messageObj?.roomInfo}}</p>
......@@ -39,9 +42,10 @@
<div v-if="b.orderType == 1">
<h3 class="name">{{b.name}}</h3>
<div v-for="(car,index) in b.messageObj.carsList" :key="index">
<p v-if="car.num>0">{{car.name}}{{car.num}}</p>
<p v-if="car.num>0">{{car.typeName}}{{car.name}}{{car.num}} {{ language==0?'辆':'Cars' }}</p>
</div>
<p>{{b.handleDate}}</p>
<!-- <p>{{b.messageObj}}</p>-->
<!-- <p>{{b.extJsonObj}}</p>-->
</div>
<div v-if="b.orderType == 2">
<h3 class="name">{{b.name}}</h3>
......@@ -50,6 +54,8 @@
{{n.name}}({{n.categoryName}}) * <span>{{n.num}} {{language==0?'份':'pcs'}}</span>
</p>
</div>
<p>{{language==0?'配送日期':'Delivery Date'}}{{b.extJsonObj.dcEnd }} ~ {{b.extJsonObj.dcEnd}}</p>
</div>
</el-col>
<el-col :lg="6">
......@@ -58,23 +64,22 @@
<p>{{b.messageObj?.roomInfo}}</p>
</div>
<div v-if="b.orderType == 1">
</div>
<div v-if="b.orderType == 2">
<div v-for="(n,index) in b.messageObj.foodsList" :key="index">
<p v-if="n.num > 0">
{{n.name}}({{n.categoryName}}) * <span>{{n.num}} {{language==0?'份':'pcs'}}</span>
</p>
</div>
</div>
</el-col>
<el-col :lg="4">
<el-col :lg="4" class="text-center">
<span class="text-warning"> {{ language==0?'¥':'€' }}
<span class="bigMoney">{{language==0?b.total:b.totalEn}}</span>
</span>
</el-col>
<el-col :lg="4">
<el-col :lg="4" >
<div class="text-right mb20 text-danger">
<el-countdown value-style="color:#E60012;font-size:16px;" v-if="b.status == '0'&&(b.surplus!='0,0'&&b.surplus!='0')" format="mm:ss"
:value="b.countdown" @finish="finish(b)"/>
</div>
<div class="text-right">
<el-button class="mb10" plain round type="primary" @click="goDetail(b)">
{{ language==0?'详情':'Detail' }}</el-button>
......@@ -96,20 +101,30 @@
import {onMounted} from "@vue/runtime-core";
import {useStorage} from "@vueuse/core/index";
import {newbilllist} from "@/apiPc/common";
import useUserStore from "@/store/modules/user";
const router = useRouter()
const language= useStorage('language',0)
const list = ref([])
const user = useUserStore().user
onMounted(()=>{
getList()
})
function finish(bill){
bill.status = '2'
// getList()
}
function getList() {
newbilllist().then(res=>{
newbilllist({createById:user.userId}).then(res=>{
list.value = res.rows
for (var b of list.value) {
b.messageObj = JSON.parse(b.message)
b.extJsonObj = JSON.parse(b.extJson) || {}
if(b.surplus&&b.status == '0'&&(b.surplus!='0,0'&&b.surplus!='0')){
b.countdown = Date.now() + Number((b.surplus.split(',')[0]*60 + b.surplus.split(',')[1])*10)
console.log(b.countdown)
}
}
list.value = [...list.value]
})
}
function goDetail(b) {
......@@ -126,7 +141,6 @@ function toInvoice(){
name: 'invoice'
})
}
</script>
<style scoped lang="scss">
......@@ -152,7 +166,9 @@ function toInvoice(){
}
}
.item{
p{margin: 10px 0;}
.name{font-size: 18px;
color: #000000;margin: 0 0 10px;}
p{margin: 8px 0 0;color: #707070;font-size: 14px;}
margin: 0 0 20px;border: 1px solid #E5E5E5;
border-radius: 10px;
......
......@@ -65,7 +65,8 @@ const {proxy} = getCurrentInstance()
import {useStorage} from "@vueuse/core/index";
import {ElMessage} from "element-plus";
import {getCurrentInstance} from "@vue/runtime-core";
import {onMounted} from "vue";
import {computed, onMounted, watch} from "vue";
import {getBaseInfoByActiveId} from "@/apiPc/booking";
const props = defineProps({
matchId: {
type: String,
......@@ -74,14 +75,39 @@ const props = defineProps({
}
})
const language= useStorage('language',0)
const form = ref({})
const matchId = computed(()=>props.matchId);
watch(matchId,(val)=>{
if(val && val!='0'){
getBaseInfoByActiveId(props.matchId).then(res=>{
form.value = res.data || null
}).catch(err=>{
console.log(err)
form.value = null
})
}
})
onMounted(()=>{
})
function building() {
ElMessage.warning(language.value==0?'感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。':'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.')
return
}
function popRemark(type){
if(!form.value){
building()
return
}
if((form.value.isJdView == 0&&type=='1') || (form.value.isCarView == 0&&type=='2') || (form.value.isFoodView == 0&&type=='3') || type=='0' || type=='4' || type=='5'){
building()
return
}
const params = {
matchId: props.matchId,
title: language.value == 0 ?'预说明':'Booking Instructions',
title: language.value == 0 ?'预说明':'Booking Instructions',
type: type
}
proxy.$refs['orderRemarkRef'].open(params)
......@@ -90,8 +116,7 @@ function goBooking(n) {
switch (n) {
case 0:
// 票务
ElMessage.warning(language.value==0?'暂无可预订的信息':'There is no information available for booking')
return
building()
router.push({path: `/booking/ticket/${props.matchId}`})
break;
case 1:
......@@ -108,15 +133,13 @@ function goBooking(n) {
break;
case 4:
//化妆
ElMessage.warning(language.value==0?'暂无可预订的信息':'Building!')
return
building()
router.push({path: `/booking/makeup/${props.matchId}`})
break;
case 5:
//拍照
ElMessage.warning(language.value==0?'暂无可预订的信息':'Building!')
return
building()
router.push({path: `/booking/photography/${props.matchId}`})
break;
......
......@@ -51,11 +51,11 @@ function ok() {
// type
show.value = false
if(!user){
useUserStore().setVisitor()
} else {
// if(!user){
// useUserStore().setVisitor()
// } else {
emit('submit', type)
}
// }
}
</script>
......
......@@ -3,13 +3,11 @@
<div class="pd20">
<el-table :data="list" border>
<el-table-column :label="language==0?'组别编号':'Event Code'" prop="code" align="center"></el-table-column>
<el-table-column :label="language==0?'组别名称':'Event'" prop="name" align="center"></el-table-column>
<el-table-column :label="language==0?'舞种':'Dance Type'" align="center">
<template #default="scope">
<span v-if="scope.row.danceTypeDetailStr">{{ scope.row.danceTypeDetailStr }}</span>
<span v-else>{{ scope.row.danceType }}</span>
</template>
<el-table-column :label="language==0?'组别名称':'Event'" min-width="150" prop="name" align="center"></el-table-column>
<el-table-column :label="language==0?'舞种':'DISCIPLINE'" width="110" prop="danceType" align="center">
</el-table-column>
<el-table-column :label="language==0?'舞种明细':'Dance Detail'" width="120" prop="danceTypeDetailStr" align="center"></el-table-column>
<el-table-column :label="language==0?'参赛性别':'Sex'" align="center">
<template #default="scope">
<span v-if="scope.row.playTypeStr">{{ scope.row.playTypeStr }}</span>
......
......@@ -103,23 +103,29 @@ const props = defineProps({
const form = ref({})
onMounted(()=>{
getBaseInfoByActiveId(props.matchId).then(res=>{
form.value = res.data || {}
form.value = res.data || null
}).catch(err=>{
form.value = null
console.log(err)
})
})
function building() {
ElMessage.warning(language.value==0?'暂无可预订的信息':'There is no information available for booking')
ElMessage.warning(language.value==0?'感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。':'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.')
return
}
function popRemark(type){
// if((form.value.isJdView == 0&&type=='1') || (form.value.isCarView == 0&&type=='2') || (form.value.isFoodView == 0&&type=='3') || type=='0' || type=='4' || type=='5'){
// building()
// return
// }
if(!form.value){
building()
return
}
if((form.value.isJdView == 0&&type=='1') || (form.value.isCarView == 0&&type=='2') || (form.value.isFoodView == 0&&type=='3') || type=='0' || type=='4' || type=='5'){
building()
return
}
const params = {
matchId: props.matchId,
title: language.value == 0 ?'预说明':'Booking Instructions',
title: language.value == 0 ?'预说明':'Booking Instructions',
type: type
}
proxy.$refs['orderRemarkRef'].open(params)
......@@ -128,8 +134,7 @@ function goBooking(n) {
switch (n) {
case 0:
// 票务
ElMessage.warning(language.value==0?'暂无可预订的信息':'There is no information available for booking')
return
building()
router.push({path: `/booking/ticket/${props.matchId}`})
break;
case 1:
......@@ -146,16 +151,12 @@ function goBooking(n) {
break;
case 4:
//化妆
ElMessage.warning(language.value==0?'暂无可预订的信息':'There is no information available for booking')
return
building()
router.push({path: `/booking/makeup/${props.matchId}`})
break;
case 5:
//拍照
ElMessage.warning(language.value==0?'暂无可预订的信息':'There is no information available for booking')
return
building()
router.push({path: `/booking/photography/${props.matchId}`})
break;
}
......
<template>
<el-dialog v-model="show" :title="language==0?'游客登录':'Visitor Login'" close-icon="CircleClose"
<el-dialog v-model="show" :title="language==0?'快捷注册':'Quick Login'" close-icon="CircleClose"
width="600" :append-to-body="true" destroy-on-close @close="close">
<div class="pt30">
<el-form class="d-form" size="large" :label-width="language==0?120:150" style="max-width: 500px;margin: auto">
......
......@@ -109,7 +109,7 @@
<div class="text-center">
<!-- <el-button class="primary-kx" @click="goStep1">上一步</el-button>-->
<el-button v-if="user.utype=='3'" type="primary" round class="btn-lineG w200px" @click.prevent="upgrade" :loading="loading">
<el-button v-if="user&&user.utype=='3'" type="primary" round class="btn-lineG w200px" @click.prevent="upgrade" :loading="loading">
{{ language == 0 ? '升级账号' : 'Submit' }}
</el-button>
<el-button v-else type="primary" round class="btn-lineG w200px" @click.prevent="goStep3" :loading="loading">
......
......@@ -82,9 +82,9 @@ export default defineConfig(({ mode, command }) => {
rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '')
},
'/dev-api': {
target: 'http://192.168.1.118:8081/',
// target: 'http://192.168.1.118:8081/',
// target: 'https://dance.itechtop.cn/stage-api',
// target: 'https://wdsfwuxicenter.com/stage-api',
target: 'https://wdsfwuxicenter.com/stage-api',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api/, '')
}
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!