no message
Showing
14 changed files
with
951 additions
and
59 deletions
| ... | @@ -41,6 +41,20 @@ export function getRoomBilldetailbyId(params) { | ... | @@ -41,6 +41,20 @@ export function getRoomBilldetailbyId(params) { |
| 41 | params: params | 41 | params: params |
| 42 | }) | 42 | }) |
| 43 | } | 43 | } |
| 44 | export function getCarBilldetailbyId(params) { | ||
| 45 | return request({ | ||
| 46 | url: `/ota/norder/getOrderByOrderId`, | ||
| 47 | method: 'get', | ||
| 48 | params: params | ||
| 49 | }) | ||
| 50 | } | ||
| 51 | export function getFoodBilldetailbyId(params) { | ||
| 52 | return request({ | ||
| 53 | url: `/ota/orderFood/getFoodOrderInfoByOrder`, | ||
| 54 | method: 'get', | ||
| 55 | params: params | ||
| 56 | }) | ||
| 57 | } | ||
| 44 | export function getActivityCarList(params) { | 58 | export function getActivityCarList(params) { |
| 45 | return request({ | 59 | return request({ |
| 46 | url: `/ota/activityVehicle/wxList`, | 60 | url: `/ota/activityVehicle/wxList`, |
| ... | @@ -48,3 +62,45 @@ export function getActivityCarList(params) { | ... | @@ -48,3 +62,45 @@ export function getActivityCarList(params) { |
| 48 | params: params | 62 | params: params |
| 49 | }) | 63 | }) |
| 50 | } | 64 | } |
| 65 | export function submitOrderCar(data) { | ||
| 66 | return request({ | ||
| 67 | url: `/ota/norder/submitOrderCar`, | ||
| 68 | method: 'post', | ||
| 69 | data: data | ||
| 70 | }) | ||
| 71 | } | ||
| 72 | export function getActivityRestaurantList(params) { | ||
| 73 | return request({ | ||
| 74 | url: `/ota/activityRestaurant/list`, | ||
| 75 | method: 'get', | ||
| 76 | params: params | ||
| 77 | }) | ||
| 78 | } | ||
| 79 | export function getMenuById(params) { | ||
| 80 | return request({ | ||
| 81 | url: `/ota/activityFood/list`, | ||
| 82 | method: 'get', | ||
| 83 | params: params | ||
| 84 | }) | ||
| 85 | } | ||
| 86 | export function submitOrderFood(form) { | ||
| 87 | return request({ | ||
| 88 | url: `/ota/norder/submitOrderFood`, | ||
| 89 | method: 'post', | ||
| 90 | data: form | ||
| 91 | }) | ||
| 92 | } | ||
| 93 | export function createWePay(data) { | ||
| 94 | return request({ | ||
| 95 | url: `/ota/norder/wxPay`, | ||
| 96 | method: 'post', | ||
| 97 | data:data | ||
| 98 | }) | ||
| 99 | } | ||
| 100 | export function createPalPay(data) { | ||
| 101 | return request({ | ||
| 102 | url: `/ota/norder/palPay`, | ||
| 103 | method: 'post', | ||
| 104 | data:data | ||
| 105 | }) | ||
| 106 | } | ... | ... |
| ... | @@ -7,7 +7,7 @@ | ... | @@ -7,7 +7,7 @@ |
| 7 | .popo{position: absolute;left: 0;} | 7 | .popo{position: absolute;left: 0;} |
| 8 | .no-pointer { pointer-events: none } | 8 | .no-pointer { pointer-events: none } |
| 9 | .blur20 { filter: blur(20px) } | 9 | .blur20 { filter: blur(20px) } |
| 10 | 10 | .m0{margin: 0;} | |
| 11 | .flex{display: flex;} | 11 | .flex{display: flex;} |
| 12 | 12 | ||
| 13 | .text-gray{color: #999} | 13 | .text-gray{color: #999} |
| ... | @@ -262,7 +262,7 @@ img{display: block;} | ... | @@ -262,7 +262,7 @@ img{display: block;} |
| 262 | } | 262 | } |
| 263 | 263 | ||
| 264 | .text-warning { | 264 | .text-warning { |
| 265 | color: #f8ac59; | 265 | color: #FF8124; |
| 266 | } | 266 | } |
| 267 | 267 | ||
| 268 | .text-danger { | 268 | .text-danger { |
| ... | @@ -1488,3 +1488,19 @@ img{display: block;} | ... | @@ -1488,3 +1488,19 @@ img{display: block;} |
| 1488 | transform: translateY(5px) | 1488 | transform: translateY(5px) |
| 1489 | } | 1489 | } |
| 1490 | } | 1490 | } |
| 1491 | .w40px{width: 40px} | ||
| 1492 | .plr20{padding: 0 20px} | ||
| 1493 | .mlr20{margin: 0 20px} | ||
| 1494 | .jcc{justify-content: center!important;} | ||
| 1495 | .jcb{justify-content: space-between!important;} | ||
| 1496 | .aic{align-items: center;} | ||
| 1497 | .br10{border-radius: 10px;overflow: hidden} | ||
| 1498 | .w150px{width: 150px} | ||
| 1499 | h3.afterLine{ | ||
| 1500 | color: var(--el-color-primary);position: relative;font-size: 16px; | ||
| 1501 | &::after{ | ||
| 1502 | content: '';position: absolute;background: #DCDFE6; | ||
| 1503 | height: 1px;width: calc(100% - 4em - 20px);right: 0px; | ||
| 1504 | top:0;bottom: 0;margin: auto; | ||
| 1505 | } | ||
| 1506 | } | ... | ... |
| ... | @@ -386,6 +386,18 @@ export const constantRoutes = [ | ... | @@ -386,6 +386,18 @@ export const constantRoutes = [ |
| 386 | meta: { title: 'Dining Reservation' } | 386 | meta: { title: 'Dining Reservation' } |
| 387 | }, | 387 | }, |
| 388 | { | 388 | { |
| 389 | path: 'dinner/:cptId/:id', | ||
| 390 | component: () => import('@/viewsPc/booking/dinnerDetail'), | ||
| 391 | name: 'dinnerDetail', | ||
| 392 | meta: { title: 'Dining Reservation' } | ||
| 393 | }, | ||
| 394 | { | ||
| 395 | path: 'dinner/:cptId/:id/:foodId', | ||
| 396 | component: () => import('@/viewsPc/booking/foodOrder'), | ||
| 397 | name: 'dinnerOrder', | ||
| 398 | meta: { title: 'Dinner Reservation' } | ||
| 399 | }, | ||
| 400 | { | ||
| 389 | path: 'makeUp/:cptId', | 401 | path: 'makeUp/:cptId', |
| 390 | component: () => import('@/viewsPc/booking/makeUp'), | 402 | component: () => import('@/viewsPc/booking/makeUp'), |
| 391 | name: 'makeUp', | 403 | name: 'makeUp', |
| ... | @@ -402,6 +414,12 @@ export const constantRoutes = [ | ... | @@ -402,6 +414,12 @@ export const constantRoutes = [ |
| 402 | component: () => import('@/viewsPc/booking/pay'), | 414 | component: () => import('@/viewsPc/booking/pay'), |
| 403 | name: 'bookingPay', | 415 | name: 'bookingPay', |
| 404 | meta: { title: 'pay' } | 416 | meta: { title: 'pay' } |
| 417 | }, | ||
| 418 | { | ||
| 419 | path: 'payOk', | ||
| 420 | component: () => import('@/viewsPc/booking/payOk'), | ||
| 421 | name: 'bookingPayOk', | ||
| 422 | meta: { title: 'payOk' } | ||
| 405 | } | 423 | } |
| 406 | ] | 424 | ] |
| 407 | }, | 425 | }, | ... | ... |
| ... | @@ -56,7 +56,19 @@ | ... | @@ -56,7 +56,19 @@ |
| 56 | </el-row> | 56 | </el-row> |
| 57 | </el-col> | 57 | </el-col> |
| 58 | <el-col :span="3"> | 58 | <el-col :span="3"> |
| 59 | <div class="price">{{ language==0?'¥':'€' }}<span>{{language==0?r.inPrice:r.inPriceEn}}</span>起</div> | 59 | <div class="price" v-if="language==0">¥ |
| 60 | <span v-if="r.outPrice&&r.inPrice">{{Number(r.inPrice) > Number(r.outPrice)?r.outPrice:r.inPrice}}</span> | ||
| 61 | <span v-else-if="r.inPrice>0">{{r.inPrice}}</span> | ||
| 62 | <span v-else>{{r.outPrice}}</span> | ||
| 63 | 起 | ||
| 64 | </div> | ||
| 65 | <div class="price" v-else> | ||
| 66 | € | ||
| 67 | <span v-if="r.outPriceEn&&r.inPriceEn">{{(Number(r.inPriceEn)||0) > Number(r.outPriceEn)?r.outPriceEn:r.inPriceEn}}</span> | ||
| 68 | <span v-else-if="r.inPriceEn>0">{{r.inPriceEn}}</span> | ||
| 69 | <span v-else>{{r.outPriceEn}}</span> | ||
| 70 | </div> | ||
| 71 | |||
| 60 | </el-col> | 72 | </el-col> |
| 61 | <el-col :span="3"> | 73 | <el-col :span="3"> |
| 62 | <el-button class="btn-lineG w100" round type="primary" @click="goOrder(h,r)">{{ language==0?'我要预定':'Select' }}</el-button> | 74 | <el-button class="btn-lineG w100" round type="primary" @click="goOrder(h,r)">{{ language==0?'我要预定':'Select' }}</el-button> |
| ... | @@ -64,7 +76,7 @@ | ... | @@ -64,7 +76,7 @@ |
| 64 | </el-row> | 76 | </el-row> |
| 65 | </div> | 77 | </div> |
| 66 | 78 | ||
| 67 | <el-empty v-if="list.length == 0" :image="`/img/order_no.png`" :image-size="228" description=""/> | 79 | <el-empty v-if="h.carVoList.length == 0" :image="`/img/order_no.png`" :image-size="228" description=""/> |
| 68 | </div> | 80 | </div> |
| 69 | 81 | ||
| 70 | </el-collapse-item> | 82 | </el-collapse-item> |
| ... | @@ -83,7 +95,8 @@ import {onMounted} from "@vue/runtime-core" | ... | @@ -83,7 +95,8 @@ import {onMounted} from "@vue/runtime-core" |
| 83 | import * as booking from "@/apiPc/booking" | 95 | import * as booking from "@/apiPc/booking" |
| 84 | import {useRouter,useRoute} from "vue-router"; | 96 | import {useRouter,useRoute} from "vue-router"; |
| 85 | import {useStorage} from "@vueuse/core/index"; | 97 | import {useStorage} from "@vueuse/core/index"; |
| 86 | import {getActivityCarList} from "@/apiPc/booking"; | 98 | import useUserStore from "@/store/modules/user"; |
| 99 | const user = useUserStore().user | ||
| 87 | const router = useRouter() | 100 | const router = useRouter() |
| 88 | const route = useRoute() | 101 | const route = useRoute() |
| 89 | const language= useStorage('language',0) | 102 | const language= useStorage('language',0) |
| ... | @@ -109,6 +122,10 @@ function getList() { | ... | @@ -109,6 +122,10 @@ function getList() { |
| 109 | }) | 122 | }) |
| 110 | } | 123 | } |
| 111 | function goOrder(item,car) { | 124 | function goOrder(item,car) { |
| 125 | if(!user){ | ||
| 126 | useUserStore().setReLogin() | ||
| 127 | return | ||
| 128 | } | ||
| 112 | router.push({ | 129 | router.push({ |
| 113 | name:'carOrder', | 130 | name:'carOrder', |
| 114 | params:{ | 131 | params:{ |
| ... | @@ -123,8 +140,7 @@ function goOrder(item,car) { | ... | @@ -123,8 +140,7 @@ function goOrder(item,car) { |
| 123 | </script> | 140 | </script> |
| 124 | 141 | ||
| 125 | <style scoped lang="scss"> | 142 | <style scoped lang="scss"> |
| 126 | .w40px{width: 40px} | 143 | |
| 127 | .plr20{padding: 0 20px} | ||
| 128 | .hotel{margin-bottom: 20px;cursor: pointer; | 144 | .hotel{margin-bottom: 20px;cursor: pointer; |
| 129 | .index{display: flex;font-weight: 500;padding-left: 20px; | 145 | .index{display: flex;font-weight: 500;padding-left: 20px; |
| 130 | font-size: 18px;align-items: center; | 146 | font-size: 18px;align-items: center; | ... | ... |
This diff is collapsed.
Click to expand it.
| ... | @@ -5,9 +5,9 @@ | ... | @@ -5,9 +5,9 @@ |
| 5 | </div> | 5 | </div> |
| 6 | <div class="box"> | 6 | <div class="box"> |
| 7 | <div class="searchBar"> | 7 | <div class="searchBar"> |
| 8 | <el-input placeholder="请输入关键字搜索" v-model="query.name" class="no-border"> | 8 | <el-input :placeholder="language==0?'请输入关键字搜索':'Search'" v-model="query.name" class="no-border"> |
| 9 | </el-input> | 9 | </el-input> |
| 10 | <el-button size="large" type="primary" class="btn-lineG" icon="search">搜索</el-button> | 10 | <el-button size="large" type="primary" class="btn-lineG" icon="search">{{ language==0?'搜索':'Search' }}</el-button> |
| 11 | </div> | 11 | </div> |
| 12 | </div> | 12 | </div> |
| 13 | 13 | ||
| ... | @@ -15,19 +15,19 @@ | ... | @@ -15,19 +15,19 @@ |
| 15 | <el-row :gutter="20"> | 15 | <el-row :gutter="20"> |
| 16 | <el-col :span="12" v-for="(h,index) in list" class="mb20"> | 16 | <el-col :span="12" v-for="(h,index) in list" class="mb20"> |
| 17 | <el-card> | 17 | <el-card> |
| 18 | <!-- 酒店列表--> | 18 | <el-row class="hotel" align="middle" :gutter="20"> |
| 19 | <el-row class="hotel" align="middle"> | ||
| 20 | <el-col :span="12"> | 19 | <el-col :span="12"> |
| 21 | <img/> | 20 | <img class="w100" :src="fillImgUrl(h.photos?.split(',')[0])"/> |
| 22 | </el-col> | 21 | </el-col> |
| 23 | <el-col :span="12"> | 22 | <el-col :span="12"> |
| 24 | <h3>{{h.name}}</h3> | 23 | <h3 class="esp m0">{{h.name}}</h3> |
| 25 | <p> | 24 | <p class="esp_2 addr"> |
| 26 | <el-icon><LocationFilled /></el-icon> | 25 | <el-icon color="#929AA0"><LocationFilled /></el-icon> |
| 27 | {{h.address}} | 26 | {{h.addName}} |
| 28 | </p> | 27 | </p> |
| 29 | <div class="price">¥<span>450</span><i>起</i></div> | 28 | <div class="price mb20" v-if="language==0"><i class="text-warning">¥</i><span class="text-warning">{{ h.price }}</span>起</div> |
| 30 | <el-button class="btn-lineG" round type="primary" size="large">立即预约 ⇀</el-button> | 29 | <div class="price mb20" v-else><i class="text-warning">€</i><span class="text-warning">{{ h.price }}</span>start</div> |
| 30 | <el-button class="btn-lineG" round type="primary" size="large" @click="goDetail(h)">{{ language==0?'立即预约':'Select' }} ⇀</el-button> | ||
| 31 | 31 | ||
| 32 | </el-col> | 32 | </el-col> |
| 33 | </el-row> | 33 | </el-row> |
| ... | @@ -43,6 +43,11 @@ | ... | @@ -43,6 +43,11 @@ |
| 43 | <script setup> | 43 | <script setup> |
| 44 | import {onMounted} from "@vue/runtime-core" | 44 | import {onMounted} from "@vue/runtime-core" |
| 45 | import * as booking from "@/apiPc/booking" | 45 | import * as booking from "@/apiPc/booking" |
| 46 | const router = useRouter() | ||
| 47 | const language = useStorage('language', 0) | ||
| 48 | import {getActivityRestaurantList} from "@/apiPc/booking"; | ||
| 49 | import {useRouter} from "vue-router"; | ||
| 50 | import {useStorage} from "@vueuse/core/index"; | ||
| 46 | const query = ref({ | 51 | const query = ref({ |
| 47 | name:'' | 52 | name:'' |
| 48 | }) | 53 | }) |
| ... | @@ -52,10 +57,22 @@ onMounted(()=>{ | ... | @@ -52,10 +57,22 @@ onMounted(()=>{ |
| 52 | }) | 57 | }) |
| 53 | 58 | ||
| 54 | function getList() { | 59 | function getList() { |
| 55 | booking.getHotelList(query.value).then(res=>{ | 60 | booking.getActivityRestaurantList(query.value).then(res=>{ |
| 56 | list.value = res.rows | 61 | list.value = res.rows |
| 57 | }) | 62 | }) |
| 58 | } | 63 | } |
| 64 | function goDetail(n) { | ||
| 65 | router.push({ | ||
| 66 | name:'dinnerDetail', | ||
| 67 | params:{ | ||
| 68 | id:n.id, | ||
| 69 | }, | ||
| 70 | query:{ | ||
| 71 | detail:encodeURIComponent(JSON.stringify(n)) | ||
| 72 | } | ||
| 73 | |||
| 74 | }) | ||
| 75 | } | ||
| 59 | </script> | 76 | </script> |
| 60 | 77 | ||
| 61 | <style scoped lang="scss"> | 78 | <style scoped lang="scss"> |
| ... | @@ -71,4 +88,13 @@ function getList() { | ... | @@ -71,4 +88,13 @@ function getList() { |
| 71 | .no-border{border: none;background: #F5F7F9; | 88 | .no-border{border: none;background: #F5F7F9; |
| 72 | :deep(.el-input__wrapper){border: none;box-shadow: none;background: #F5F7F9;} | 89 | :deep(.el-input__wrapper){border: none;box-shadow: none;background: #F5F7F9;} |
| 73 | } | 90 | } |
| 91 | .addr{font-weight: 400; | ||
| 92 | font-size: 16px; | ||
| 93 | color: #929AA0;} | ||
| 94 | .price{font-weight: 400; | ||
| 95 | font-size: 18px; | ||
| 96 | color: #929AA0; | ||
| 97 | i{font-size: 24px;font-style: normal;} | ||
| 98 | span{font-weight: 600;font-size: 36px;font-family: "DIN Alternate";margin:0 6px;} | ||
| 99 | } | ||
| 74 | </style> | 100 | </style> | ... | ... |
src/viewsPc/booking/dinnerDetail.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <div class="box"> | ||
| 4 | <el-card class="mt30" v-loading="loading"> | ||
| 5 | <el-row v-if="form" class="hotel" align="middle" :gutter="20"> | ||
| 6 | <!-- <el-col :span="6">--> | ||
| 7 | <!-- <img class="w100" :src="fillImgUrl(form.photos?.split(',')[0])"/>--> | ||
| 8 | <!-- </el-col>--> | ||
| 9 | <el-col :span="16"> | ||
| 10 | <h3 class="esp flex">{{ form?.name }} | ||
| 11 | </h3> | ||
| 12 | |||
| 13 | |||
| 14 | <p class="esp addr"> | ||
| 15 | <el-icon size="16" style="position: relative;top: 2px" color="#929AA0"> | ||
| 16 | <LocationFilled/> | ||
| 17 | </el-icon> | ||
| 18 | {{ form?.addName }} | ||
| 19 | </p> | ||
| 20 | </el-col> | ||
| 21 | </el-row> | ||
| 22 | <el-empty v-else :image="`/img/order_no.png`" :image-size="228" description=""/> | ||
| 23 | </el-card> | ||
| 24 | |||
| 25 | <div class="mt30"> | ||
| 26 | <el-row :gutter="20"> | ||
| 27 | <el-col v-for="(p,index) in form?.photos?.split(',')" :span="index==0?12:6"> | ||
| 28 | <div class="imgbox hotelImg"> | ||
| 29 | <img :src="fillImgUrl(p)"> | ||
| 30 | </div> | ||
| 31 | </el-col> | ||
| 32 | </el-row> | ||
| 33 | </div> | ||
| 34 | |||
| 35 | <el-card class="mt30 mb60"> | ||
| 36 | <div class="lineHead"> | ||
| 37 | <ul> | ||
| 38 | <li>{{ language == 0 ? '餐饮选择' : 'Available Set meal' }}</li> | ||
| 39 | </ul> | ||
| 40 | </div> | ||
| 41 | <div> | ||
| 42 | <div v-for="(r,index) in roomList" :key="index" class="room"> | ||
| 43 | <el-row :gutter="30" align="middle"> | ||
| 44 | <el-col :span="4"> | ||
| 45 | <div class="roomImg"> | ||
| 46 | <el-image fit="cover" :preview-src-list="r.photosList" :src="fillImgUrl(r.photos?.split(',')[0])"/> | ||
| 47 | </div> | ||
| 48 | </el-col> | ||
| 49 | <el-col :span="14"> | ||
| 50 | <h3 class="name">{{ r.name }}<span class="text-primary">({{ r.categoryName }})</span></h3> | ||
| 51 | <el-row :gutter="10"> | ||
| 52 | <el-col :span="24"> | ||
| 53 | <p>{{ language==0?'配送时间':'Delivery time' }}:{{ r.psStart }}~{{ r.psEnd }}</p> | ||
| 54 | <p>{{ language==0?'配送地址':'Delivery address' }}:{{ r.address }}</p> | ||
| 55 | </el-col> | ||
| 56 | </el-row> | ||
| 57 | </el-col> | ||
| 58 | <el-col :span="3"> | ||
| 59 | <div class="price">{{ | ||
| 60 | language == 0 ? '¥' : '€' | ||
| 61 | }}<span>{{ language == 0 ? r.foodPrice : r.foodPriceEn }}</span></div> | ||
| 62 | </el-col> | ||
| 63 | <el-col :span="3"> | ||
| 64 | <el-button class="btn-lineG w100" round type="primary" @click="goOrder(r)"> | ||
| 65 | {{ language == 0 ? '我要预订' : 'Select' }} | ||
| 66 | </el-button> | ||
| 67 | </el-col> | ||
| 68 | </el-row> | ||
| 69 | </div> | ||
| 70 | |||
| 71 | <el-empty v-if="roomList.length == 0" :image="`/img/order_no.png`" :image-size="228" description=""/> | ||
| 72 | </div> | ||
| 73 | </el-card> | ||
| 74 | </div> | ||
| 75 | </div> | ||
| 76 | </template> | ||
| 77 | |||
| 78 | <script setup> | ||
| 79 | import {useRouter} from "vue-router"; | ||
| 80 | import {ref, reactive, onMounted} from "vue"; | ||
| 81 | import {useRoute} from "vue-router"; | ||
| 82 | import {getHotelById, getMenuById} from "@/apiPc/booking" | ||
| 83 | |||
| 84 | import {useStorage} from "@vueuse/core/index"; | ||
| 85 | import useUserStore from "@/store/modules/user"; | ||
| 86 | import {fillImgUrl} from "@/utils/ruoyi"; | ||
| 87 | |||
| 88 | const user = useUserStore().user | ||
| 89 | const language = useStorage('language', 0) | ||
| 90 | const router = useRouter() | ||
| 91 | const route = useRoute() | ||
| 92 | const form = ref({}) | ||
| 93 | const query = ref({ | ||
| 94 | larId: route.query.id | ||
| 95 | }) | ||
| 96 | const loading = ref(false) | ||
| 97 | const roomList = ref([]) | ||
| 98 | const map = ref(null) | ||
| 99 | onMounted(() => { | ||
| 100 | form.value = JSON.parse(decodeURIComponent(route.query.detail)) | ||
| 101 | getData() | ||
| 102 | }) | ||
| 103 | |||
| 104 | function getData() { | ||
| 105 | loading.value = true | ||
| 106 | query.value.hotelId = route.query.id | ||
| 107 | getMenuById(query.value).then(res => { | ||
| 108 | loading.value = false | ||
| 109 | roomList.value = res.rows | ||
| 110 | for (let m of roomList.value) { | ||
| 111 | var arr = [] | ||
| 112 | m.photosList = [] | ||
| 113 | arr = m.photos?.split(',') | ||
| 114 | for (var a of arr){ | ||
| 115 | m.photosList.push(fillImgUrl(a)) | ||
| 116 | } | ||
| 117 | m.num = 0 | ||
| 118 | if (m.category == 0) { | ||
| 119 | m.categoryName = language.value == 0 ? '早餐' : 'Breakfast' | ||
| 120 | } else if (m.category == 1) { | ||
| 121 | m.categoryName = language.value == 0 ? '午餐' : 'Lunch' | ||
| 122 | } else { | ||
| 123 | m.categoryName = language.value == 0 ? '晚餐' : 'Dinner' | ||
| 124 | } | ||
| 125 | } | ||
| 126 | }) | ||
| 127 | } | ||
| 128 | |||
| 129 | function goOrder(n) { | ||
| 130 | if (!user) { | ||
| 131 | useUserStore().setReLogin() | ||
| 132 | return | ||
| 133 | } | ||
| 134 | router.push({ | ||
| 135 | name: 'dinnerOrder', | ||
| 136 | params: { | ||
| 137 | foodId: n.id | ||
| 138 | }, | ||
| 139 | query: { | ||
| 140 | food: encodeURIComponent(JSON.stringify(n)), | ||
| 141 | restaurant: encodeURIComponent(JSON.stringify(form.value)), | ||
| 142 | } | ||
| 143 | }) | ||
| 144 | } | ||
| 145 | </script> | ||
| 146 | |||
| 147 | <style scoped lang="scss"> | ||
| 148 | .room { | ||
| 149 | background: #FAFBFD; | ||
| 150 | margin: 20px 0 0; | ||
| 151 | padding: 20px; | ||
| 152 | border: 1px solid #E5E5E5; | ||
| 153 | |||
| 154 | .name { | ||
| 155 | font-size: 20px; | ||
| 156 | margin: 0 0 10px; | ||
| 157 | |||
| 158 | span { | ||
| 159 | font-weight: 400; | ||
| 160 | padding: 0 10px; | ||
| 161 | font-size: 16px; | ||
| 162 | } | ||
| 163 | } | ||
| 164 | |||
| 165 | .roomImg { | ||
| 166 | aspect-ratio: 16/9; | ||
| 167 | border-radius: 10px; | ||
| 168 | overflow: hidden; | ||
| 169 | |||
| 170 | img { | ||
| 171 | width: 100%; | ||
| 172 | object-fit: cover; | ||
| 173 | object-position: center; | ||
| 174 | height: 100%; | ||
| 175 | } | ||
| 176 | } | ||
| 177 | |||
| 178 | .price { | ||
| 179 | color: #FF8124; | ||
| 180 | font-size: 24px; | ||
| 181 | |||
| 182 | span { | ||
| 183 | font-size: 36px; | ||
| 184 | font-family: "DIN Alternate" | ||
| 185 | } | ||
| 186 | } | ||
| 187 | |||
| 188 | .bg-lineg { | ||
| 189 | margin: auto; | ||
| 190 | border-radius: 10px; | ||
| 191 | text-align: center; | ||
| 192 | padding: 7px 2px 2px; | ||
| 193 | font-size: 24px; | ||
| 194 | width: 66px; | ||
| 195 | cursor: pointer; | ||
| 196 | |||
| 197 | div { | ||
| 198 | background: #fff; | ||
| 199 | font-size: 13px; | ||
| 200 | border-radius: 20px; | ||
| 201 | padding: 0 10px; | ||
| 202 | color: #453DEA; | ||
| 203 | font-weight: 500; | ||
| 204 | } | ||
| 205 | } | ||
| 206 | } | ||
| 207 | |||
| 208 | .hotel { | ||
| 209 | h3 { | ||
| 210 | margin: 0 0 20px; | ||
| 211 | } | ||
| 212 | |||
| 213 | img.w100 { | ||
| 214 | object-fit: cover; | ||
| 215 | aspect-ratio: 16/9 | ||
| 216 | } | ||
| 217 | |||
| 218 | .addr { | ||
| 219 | font-size: 16px; | ||
| 220 | color: #929AA0; | ||
| 221 | font-weight: 400; | ||
| 222 | } | ||
| 223 | |||
| 224 | .price { | ||
| 225 | margin: 0 0 25px; | ||
| 226 | color: #FF8124; | ||
| 227 | font-size: 18px; | ||
| 228 | |||
| 229 | span { | ||
| 230 | font-size: 24px; | ||
| 231 | margin: 0 8px; | ||
| 232 | font-family: 'DINAlternate-Bold'; | ||
| 233 | font-weight: 600; | ||
| 234 | } | ||
| 235 | |||
| 236 | i { | ||
| 237 | font-style: normal; | ||
| 238 | color: #929AA0; | ||
| 239 | } | ||
| 240 | } | ||
| 241 | } | ||
| 242 | |||
| 243 | .starBox { | ||
| 244 | img { | ||
| 245 | display: inline-block; | ||
| 246 | margin-right: 4px | ||
| 247 | } | ||
| 248 | } | ||
| 249 | |||
| 250 | .tagbox { | ||
| 251 | margin: 15px 0; | ||
| 252 | |||
| 253 | a { | ||
| 254 | color: #AFB5B9; | ||
| 255 | font-size: 12px; | ||
| 256 | } | ||
| 257 | |||
| 258 | span { | ||
| 259 | border-radius: 13px; | ||
| 260 | font-size: 12px; | ||
| 261 | padding: 4px 10px; | ||
| 262 | margin-right: 10px; | ||
| 263 | font-weight: 400; | ||
| 264 | } | ||
| 265 | |||
| 266 | span:nth-child(4n) { | ||
| 267 | background: rgba(50, 177, 108, 0.2); | ||
| 268 | color: rgba(50, 177, 108, 1); | ||
| 269 | } | ||
| 270 | |||
| 271 | span:nth-child(4n+1) { | ||
| 272 | background: rgba(243, 152, 0, 0.2); | ||
| 273 | color: rgba(243, 152, 0, 1); | ||
| 274 | } | ||
| 275 | |||
| 276 | span:nth-child(4n+2) { | ||
| 277 | background: rgba(0, 160, 233, 0.2); | ||
| 278 | color: rgba(0, 160, 233, 1); | ||
| 279 | } | ||
| 280 | |||
| 281 | span:nth-child(4n+3) { | ||
| 282 | background: rgba(247, 64, 166, 0.2); | ||
| 283 | color: rgba(247, 64, 166, 1); | ||
| 284 | } | ||
| 285 | } | ||
| 286 | |||
| 287 | .mapBox { | ||
| 288 | position: relative; | ||
| 289 | overflow: hidden; | ||
| 290 | height: 200px; | ||
| 291 | |||
| 292 | #map { | ||
| 293 | position: relative; | ||
| 294 | left: -70px; | ||
| 295 | width: calc(100% + 160px); | ||
| 296 | } | ||
| 297 | } | ||
| 298 | |||
| 299 | .hotelImg { | ||
| 300 | border-radius: 10px; | ||
| 301 | overflow: hidden; | ||
| 302 | aspect-ratio: 16/9; | ||
| 303 | |||
| 304 | img { | ||
| 305 | object-fit: cover; | ||
| 306 | object-position: center; | ||
| 307 | width: 100%; | ||
| 308 | height: 100%; | ||
| 309 | } | ||
| 310 | } | ||
| 311 | </style> |
src/viewsPc/booking/foodOrder.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <div class="box"> | ||
| 4 | <el-card :body-style="{ padding: '0px' }" class="mt20"> | ||
| 5 | <div slot="header"> | ||
| 6 | <div class="bg-lineg">{{ language == 0 ? '餐饮预约下单' : 'Food booking order' }}</div> | ||
| 7 | </div> | ||
| 8 | <!-- {{room}}--> | ||
| 9 | <el-row class="pd20" :gutter="20"> | ||
| 10 | <el-col :span="14"> | ||
| 11 | <div class="border-info"> | ||
| 12 | <h3>{{ restaurant.name }}</h3> | ||
| 13 | <div class="room"> | ||
| 14 | <span>{{ restaurant.address }}</span> | ||
| 15 | </div> | ||
| 16 | </div> | ||
| 17 | |||
| 18 | <div class="leftboderTT">{{ language == 0 ? '预约信息' : 'Reservation information' }}</div> | ||
| 19 | <div class="border-rr mt20 pd20"> | ||
| 20 | |||
| 21 | <el-form :model="form" :label-width="language == 0 ?'100':'150'" :rules="rules" ref="formRef"> | ||
| 22 | <el-form-item :label="food.name" required prop="num"> | ||
| 23 | <el-input-number v-model="form.num" :min="1" @change="changeNum"/> | ||
| 24 | </el-form-item> | ||
| 25 | <el-form-item :label="language==0?'订餐周期':'Check-in date'" required> | ||
| 26 | <el-date-picker @change="getDaysBetween" | ||
| 27 | v-model="rzRange" | ||
| 28 | type="daterange" | ||
| 29 | :placeholder="language==0?'选择日期':'Select date'" format="YYYY-MM-DD" | ||
| 30 | value-format="YYYY-MM-DD"/> | ||
| 31 | <!-- :picker-options="pickerOptions"--> | ||
| 32 | </el-form-item> | ||
| 33 | |||
| 34 | <el-form-item :label="`联系人`" required> | ||
| 35 | <el-input v-model="form.contacts"/> | ||
| 36 | </el-form-item> | ||
| 37 | <el-form-item :label="language==0?'联系电话':'Contact phone'" required prop="phone"> | ||
| 38 | <el-input v-model="form.phone"/> | ||
| 39 | </el-form-item> | ||
| 40 | <el-form-item :label="language==0?'送餐时间':'Contact phone'" required prop="phone"> | ||
| 41 | <div style="line-height: 36px;">{{food.psStart}} - {{food.psEnd}}</div> | ||
| 42 | </el-form-item> | ||
| 43 | <el-form-item label="配送地址"> | ||
| 44 | <div style="line-height: 36px;">{{food.address}}</div> | ||
| 45 | </el-form-item> | ||
| 46 | <el-form-item> | ||
| 47 | <div class="tip"> | ||
| 48 | *如预定多天的餐饮,将分多天进行配送。<br/> | ||
| 49 | *每日送餐时间只配送当日预定的餐饮。 | ||
| 50 | </div> | ||
| 51 | </el-form-item> | ||
| 52 | <el-form-item :label="language==0?'备注':'Remarks'"> | ||
| 53 | <el-input type="textarea" rows="3" v-model="form.remarks"/> | ||
| 54 | </el-form-item> | ||
| 55 | </el-form> | ||
| 56 | </div> | ||
| 57 | </el-col> | ||
| 58 | <el-col :span="10"> | ||
| 59 | <div class="leftboderTT">{{ language == 0 ? '订单明细' : 'Order details' }}</div> | ||
| 60 | <div class="border-rr mt20 pd20 ccitemBox"> | ||
| 61 | <label> {{food.name }}</label> | ||
| 62 | <div class="ccitem" v-for="(c, index) in choseDays" :key="index"> | ||
| 63 | {{ c }} | ||
| 64 | <span>{{ form.num }}*{{ language == 0 ? '¥' : '€' }}{{ language == 0 ?food.foodPrice:food.foodPriceEn }}</span> | ||
| 65 | </div> | ||
| 66 | |||
| 67 | <label>{{ language == 0 ? '共计' : 'Total' }}<span | ||
| 68 | class="fr bigMoney">{{ language == 0 ? '¥' : '€' }}{{ form.total }}</span></label> | ||
| 69 | |||
| 70 | </div> | ||
| 71 | </el-col> | ||
| 72 | </el-row> | ||
| 73 | </el-card> | ||
| 74 | |||
| 75 | <el-card class="mt30"> | ||
| 76 | <el-row justify="space-between" align="middle"> | ||
| 77 | <el-col :span="12"> | ||
| 78 | <label>{{ language == 0 ? '共计金额' : 'Total' }}: | ||
| 79 | <span class=" text-warning"> {{ language == 0 ? '¥' : '€' }}<span class="bigMoney">{{ form.total }}</span></span> | ||
| 80 | </label> | ||
| 81 | </el-col> | ||
| 82 | <el-col :span="12" class="text-right"> | ||
| 83 | <el-button type="primary" class="btn-lineG" @click="submit">确认付款</el-button> | ||
| 84 | </el-col> | ||
| 85 | </el-row> | ||
| 86 | </el-card> | ||
| 87 | <div style="height: 60px;"></div> | ||
| 88 | |||
| 89 | </div> | ||
| 90 | </div> | ||
| 91 | </template> | ||
| 92 | |||
| 93 | <script setup> | ||
| 94 | import {useRouter, useRoute} from "vue-router"; | ||
| 95 | import {ref, reactive, onMounted} from "vue"; | ||
| 96 | import {useStorage} from "@vueuse/core/index"; | ||
| 97 | import {checkResidueRoom, newsSubmitOrderHotel, submitOrderFood} from "@/apiPc/booking" | ||
| 98 | import dayjs from 'dayjs' | ||
| 99 | import {ElMessage,ElMessageBox} from "element-plus"; | ||
| 100 | import useUserStore from "@/store/modules/user"; | ||
| 101 | const user = useUserStore().user | ||
| 102 | const language = useStorage('language', 0) | ||
| 103 | const router = useRouter() | ||
| 104 | const route = useRoute() | ||
| 105 | const food = ref({}) | ||
| 106 | const restaurant = ref({}) | ||
| 107 | const canOrderStart = ref('') | ||
| 108 | const canOrderNum = ref(0) | ||
| 109 | const form = ref({ | ||
| 110 | num: 1, | ||
| 111 | phone: user.phonenumber||'', | ||
| 112 | }) | ||
| 113 | const rzRange = ref([]) | ||
| 114 | const rzUserArr = ref([]) | ||
| 115 | const money = ref(0) | ||
| 116 | const choseDays = ref([]) | ||
| 117 | const rules = ref({}) | ||
| 118 | |||
| 119 | let usedays = 0 | ||
| 120 | onMounted(() => { | ||
| 121 | food.value = JSON.parse(decodeURIComponent(route.query.food)) | ||
| 122 | restaurant.value = JSON.parse(decodeURIComponent(route.query.restaurant)) | ||
| 123 | if(language.value == 0){ | ||
| 124 | form.value.total = food.value.foodPrice | ||
| 125 | } else { | ||
| 126 | form.value.total = food.value.foodPriceEn | ||
| 127 | } | ||
| 128 | console.log(food.value,restaurant.value) | ||
| 129 | const today = dayjs() | ||
| 130 | canOrderStart.value = today | ||
| 131 | if (food.value.hqNewStart < canOrderStart.value) { | ||
| 132 | food.value.hqNewStart = canOrderStart.value | ||
| 133 | } | ||
| 134 | }) | ||
| 135 | |||
| 136 | function changeNum() { | ||
| 137 | let moneyAll = 0 | ||
| 138 | if(language.value == 0){ | ||
| 139 | moneyAll = food.value.foodPrice * form.value.num * usedays | ||
| 140 | } else { | ||
| 141 | moneyAll = food.value.foodPriceEn * form.value.num * usedays | ||
| 142 | } | ||
| 143 | form.value.total = moneyAll.toFixed(2) | ||
| 144 | } | ||
| 145 | function getDaysBetween(e) { | ||
| 146 | var d1 = Date.parse(rzRange.value[0]) | ||
| 147 | var d2 = Date.parse(rzRange.value[1]) | ||
| 148 | if (d1 > d2) { | ||
| 149 | usedays = 1 | ||
| 150 | return | ||
| 151 | } | ||
| 152 | if (d1 == d2) { | ||
| 153 | usedays = 1 | ||
| 154 | } else { | ||
| 155 | var days = (d2 - d1) / (1 * 24 * 60 * 60 * 1000); | ||
| 156 | usedays = days + 1 | ||
| 157 | } | ||
| 158 | |||
| 159 | changeNum() | ||
| 160 | |||
| 161 | var startTime = getDate(rzRange.value[0]); | ||
| 162 | var endTime = getDate(rzRange.value[1]); | ||
| 163 | var dateArr = []; | ||
| 164 | while ((endTime.getTime() - startTime.getTime()) > 0) { | ||
| 165 | var year = startTime.getFullYear(); | ||
| 166 | var month = (startTime.getMonth() + 1).toString().length === 1 ? "0" + (parseInt(startTime.getMonth() | ||
| 167 | .toString(), 10) + 1) : (startTime.getMonth() + 1); | ||
| 168 | var day = startTime.getDate().toString().length === 1 ? "0" + startTime.getDate() : startTime.getDate(); | ||
| 169 | dateArr.push(year + "-" + month + "-" + day); | ||
| 170 | startTime.setDate(startTime.getDate() + 1); | ||
| 171 | } | ||
| 172 | dateArr.push(rzRange.value[1]) | ||
| 173 | choseDays.value = dateArr; | ||
| 174 | } | ||
| 175 | |||
| 176 | function getDate(datestr) { | ||
| 177 | var temp = datestr.split("-"); | ||
| 178 | if (temp[1] === '01') { | ||
| 179 | temp[0] = parseInt(temp[0], 10) - 1; | ||
| 180 | temp[1] = '12'; | ||
| 181 | } else { | ||
| 182 | temp[1] = parseInt(temp[1], 10) - 1; | ||
| 183 | } | ||
| 184 | //new Date()的月份入参实际都是当前值-1 | ||
| 185 | var date = new Date(temp[0], temp[1], temp[2]); | ||
| 186 | return date | ||
| 187 | } | ||
| 188 | |||
| 189 | function submit() { | ||
| 190 | if(!user){ | ||
| 191 | useUserStore().setReLogin() | ||
| 192 | return | ||
| 193 | } | ||
| 194 | if(rzRange.value.length>0){ | ||
| 195 | form.value.dcStart = rzRange.value[0] | ||
| 196 | form.value.dcEnd = rzRange.value[1] | ||
| 197 | } | ||
| 198 | |||
| 199 | form.value.foodsList = [] | ||
| 200 | var obj = { | ||
| 201 | arfId: food.value.id, | ||
| 202 | name: food.value.name, | ||
| 203 | categoryName: food.value.categoryName, | ||
| 204 | category: food.value.category, | ||
| 205 | num: form.value.num, | ||
| 206 | price:food.value.foodPrice | ||
| 207 | } | ||
| 208 | form.value.foodsList.push(obj) | ||
| 209 | form.value.activeId = restaurant.value.activityId | ||
| 210 | form.value.larId = restaurant.value.id | ||
| 211 | // 提交确认 | ||
| 212 | ElMessageBox.confirm(language.value == 0 ? '确认提交订单吗?' : 'Confirm to submit the order?', { | ||
| 213 | confirmButtonText: language.value == 0 ? '确定' : 'Confirm', | ||
| 214 | cancelButtonText: language.value == 0 ? '取消' : 'Cancel', | ||
| 215 | type: 'warning' | ||
| 216 | }).then(() => { | ||
| 217 | submitOrderFood(form.value).then(res => { | ||
| 218 | if (res.data) { | ||
| 219 | if (res.data.total == -100) { | ||
| 220 | ElMessage.warning(language.value == 0 ? '挤爆了,请稍后下单' : 'Too many people, please order later') | ||
| 221 | } else { | ||
| 222 | //去付钱 | ||
| 223 | router.push({ | ||
| 224 | name: 'bookingPay', | ||
| 225 | query: { | ||
| 226 | orderId:res.data.orderId, | ||
| 227 | money:res.data.total, | ||
| 228 | type:'food' | ||
| 229 | } | ||
| 230 | }) | ||
| 231 | } | ||
| 232 | } else { | ||
| 233 | ElMessage.warning(language.value == 0 ? '挤爆了,请稍后下单' : 'Too many people, please order later') | ||
| 234 | } | ||
| 235 | }) | ||
| 236 | }) | ||
| 237 | } | ||
| 238 | |||
| 239 | </script> | ||
| 240 | |||
| 241 | <style scoped lang="scss"> | ||
| 242 | .bigMoney { | ||
| 243 | font-size: 36px !important; | ||
| 244 | font-family: 'DIN Alternate'; | ||
| 245 | font-weight: bold; | ||
| 246 | } | ||
| 247 | |||
| 248 | .bg-lineg { | ||
| 249 | height: 40px; | ||
| 250 | line-height: 40px; | ||
| 251 | font-size: 18px; | ||
| 252 | text-align: center; | ||
| 253 | } | ||
| 254 | |||
| 255 | .leftboderTT { | ||
| 256 | font-weight: 600; | ||
| 257 | font-size: 16px; | ||
| 258 | color: #453DEA; | ||
| 259 | } | ||
| 260 | |||
| 261 | .border-rr { | ||
| 262 | border-radius: 5px; | ||
| 263 | border: 1px solid #DCDFE6; | ||
| 264 | } | ||
| 265 | |||
| 266 | .room { | ||
| 267 | font-weight: 400; | ||
| 268 | font-size: 14px; | ||
| 269 | color: #929AA0; | ||
| 270 | } | ||
| 271 | |||
| 272 | .ccitemBox { | ||
| 273 | overflow: auto; | ||
| 274 | |||
| 275 | label { | ||
| 276 | margin: 10px 0; | ||
| 277 | display: block; | ||
| 278 | min-height: 30px; | ||
| 279 | |||
| 280 | span { | ||
| 281 | color: #FF8124; | ||
| 282 | font-family: DIN Alternate; | ||
| 283 | font-size: 24px; | ||
| 284 | } | ||
| 285 | } | ||
| 286 | } | ||
| 287 | |||
| 288 | .ccitem { | ||
| 289 | display: flex; | ||
| 290 | justify-content: space-between; | ||
| 291 | font-size: 15px; | ||
| 292 | color: #666; | ||
| 293 | margin: 5px 0 10px; | ||
| 294 | |||
| 295 | label { | ||
| 296 | font-size: 16px; | ||
| 297 | color: #000; | ||
| 298 | } | ||
| 299 | |||
| 300 | span { | ||
| 301 | font-size: 13px; | ||
| 302 | } | ||
| 303 | } | ||
| 304 | |||
| 305 | .red { | ||
| 306 | color: #FF8124; | ||
| 307 | } | ||
| 308 | .tip{font-size: 14px;color: #666;padding: 0 10px;} | ||
| 309 | </style> |
| ... | @@ -93,8 +93,8 @@ | ... | @@ -93,8 +93,8 @@ |
| 93 | </label> | 93 | </label> |
| 94 | <div class="ccitem" v-for="(c, index) in choseRooms" :key="index"> | 94 | <div class="ccitem" v-for="(c, index) in choseRooms" :key="index"> |
| 95 | {{ c }} | 95 | {{ c }} |
| 96 | <text v-if="language==0">{{ form.roomNum }}*{{ language == 0 ? '¥' : '€' }}{{ room.roomPrice }}</text> | 96 | <span v-if="language==0">{{ form.roomNum }}*{{ language == 0 ? '¥' : '€' }}{{ room.roomPrice }}</span> |
| 97 | <text v-else>{{ form.roomNum }}*{{ language == 0 ? '¥' : '€' }}{{ room.roomPriceEn }}</text> | 97 | <span v-else>{{ form.roomNum }}*{{ language == 0 ? '¥' : '€' }}{{ room.roomPriceEn }}</span> |
| 98 | </div> | 98 | </div> |
| 99 | 99 | ||
| 100 | <label v-if="form.isAddbed=='1'">{{ language == 0 ? '加床费' : 'Extra bed fee' }} | 100 | <label v-if="form.isAddbed=='1'">{{ language == 0 ? '加床费' : 'Extra bed fee' }} |
| ... | @@ -108,11 +108,11 @@ | ... | @@ -108,11 +108,11 @@ |
| 108 | 108 | ||
| 109 | <div v-if="form.isAddbed=='1'" class="ccitem" v-for="(c, index) in choseRooms" :key="index"> | 109 | <div v-if="form.isAddbed=='1'" class="ccitem" v-for="(c, index) in choseRooms" :key="index"> |
| 110 | {{ c }} | 110 | {{ c }} |
| 111 | <text v-if="language==0">{{ form.addNum }}*{{ language == 0 ? '¥' : '€' }}{{ room.bedPrice }}</text> | 111 | <span v-if="language==0">{{ form.addNum }}*{{ language == 0 ? '¥' : '€' }}{{ room.bedPrice }}</span> |
| 112 | <text v-else>{{ form.addNum }}*{{ language == 0 ? '¥' : '€' }}{{ room.bedPriceEn }}</text> | 112 | <span v-else>{{ form.addNum }}*{{ language == 0 ? '¥' : '€' }}{{ room.bedPriceEn }}</span> |
| 113 | </div> | 113 | </div> |
| 114 | 114 | ||
| 115 | <label class="bigMoney">{{ language == 0 ? '共计' : 'Total' }}<span | 115 | <label>{{ language == 0 ? '共计' : 'Total' }}<span |
| 116 | class="fr bigMoney">{{ language == 0 ? '¥' : '€' }}{{ money }}</span></label> | 116 | class="fr bigMoney">{{ language == 0 ? '¥' : '€' }}{{ money }}</span></label> |
| 117 | 117 | ||
| 118 | </div> | 118 | </div> |
| ... | @@ -124,7 +124,7 @@ | ... | @@ -124,7 +124,7 @@ |
| 124 | <el-row justify="space-between" align="middle"> | 124 | <el-row justify="space-between" align="middle"> |
| 125 | <el-col :span="12"> | 125 | <el-col :span="12"> |
| 126 | <label>{{ language == 0 ? '共计金额' : 'Total' }}: | 126 | <label>{{ language == 0 ? '共计金额' : 'Total' }}: |
| 127 | {{ language == 0 ? '¥' : '€' }}<span class="bigMoney">{{ money }}</span> | 127 | <span class=" text-warning"> {{ language == 0 ? '¥' : '€' }}<span class="bigMoney">{{ money }}</span></span> |
| 128 | </label> | 128 | </label> |
| 129 | </el-col> | 129 | </el-col> |
| 130 | <el-col :span="12" class="text-right"> | 130 | <el-col :span="12" class="text-right"> |
| ... | @@ -392,7 +392,8 @@ function submit() { | ... | @@ -392,7 +392,8 @@ function submit() { |
| 392 | name: 'bookingPay', | 392 | name: 'bookingPay', |
| 393 | query: { | 393 | query: { |
| 394 | orderId:res.data.orderId, | 394 | orderId:res.data.orderId, |
| 395 | money:res.data.total | 395 | money:res.data.total, |
| 396 | type:'hotel' | ||
| 396 | } | 397 | } |
| 397 | }) | 398 | }) |
| 398 | } | 399 | } | ... | ... |
| ... | @@ -7,12 +7,13 @@ | ... | @@ -7,12 +7,13 @@ |
| 7 | </div> | 7 | </div> |
| 8 | <div v-if="isLogin"> | 8 | <div v-if="isLogin"> |
| 9 | <div class="pd20"> | 9 | <div class="pd20"> |
| 10 | <div class="leftboderTT">{{ language == 0 ? '酒店信息' : 'Hotel Infomation' }}</div> | 10 | <div v-if="type == 'hotel'"> |
| 11 | <div class="leftboderTT">{{ language == 0 ? '酒店信息' : 'Hotel Information' }}</div> | ||
| 11 | <div class="border-info mt20"> | 12 | <div class="border-info mt20"> |
| 12 | <h3>{{ form.hotelName }}</h3> | 13 | <h3>{{ form.hotelName }}</h3> |
| 13 | <el-row> | 14 | <el-row> |
| 14 | <el-col> | 15 | <el-col> |
| 15 | 地址:{{ form.provinceName }} {{ form.cityName }} {{ form.areaName }} {{ form.address }} | 16 | {{ language == 0 ?'地址':'Address' }}:{{ form.provinceName }} {{ form.cityName }} {{ form.areaName }} {{ form.address }} |
| 16 | </el-col> | 17 | </el-col> |
| 17 | <el-col> | 18 | <el-col> |
| 18 | 入住信息:{{ form.messageObj?.roomStayDate }} | 19 | 入住信息:{{ form.messageObj?.roomStayDate }} |
| ... | @@ -22,31 +23,71 @@ | ... | @@ -22,31 +23,71 @@ |
| 22 | </el-col> | 23 | </el-col> |
| 23 | </el-row> | 24 | </el-row> |
| 24 | </div> | 25 | </div> |
| 26 | </div> | ||
| 27 | |||
| 28 | <div v-if="type == 'car'"> | ||
| 29 | <div class="leftboderTT">{{ language == 0 ? '车辆信息' : 'Car Information' }}</div> | ||
| 25 | 30 | ||
| 26 | <div class="leftboderTT">{{ language == 0 ? '预订信息' : 'Hotel Infomation' }}</div> | 31 | </div> |
| 32 | <div v-if="type == 'food'"> | ||
| 33 | <div class="leftboderTT">{{ language == 0 ? '饭店信息' : 'Restaurant Information' }}</div> | ||
| 27 | <div class="border-info mt20"> | 34 | <div class="border-info mt20"> |
| 28 | <el-row> | 35 | <h3>{{ form.name }}</h3> |
| 36 | <p>{{ language == 0 ?'地址':'Address' }}:{{form.address}}</p> | ||
| 37 | </div> | ||
| 38 | </div> | ||
| 39 | |||
| 40 | |||
| 41 | <div class="leftboderTT">{{ language == 0 ? '预订信息' : 'Booking information' }}</div> | ||
| 42 | |||
| 43 | <div class="border-info mt20"> | ||
| 44 | <el-row v-if="type == 'hotel'"> | ||
| 29 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | 45 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> |
| 30 | <div>入住人:{{ form.rzUsers }}</div> | 46 | <div>入住人:{{ form.rzUsers }}</div> |
| 31 | </el-col> | 47 | </el-col> |
| 32 | <el-col :lg="8" :md="12" :sm="12" :xs="24">联系方式:{{ form.phone }}</el-col> | 48 | <el-col :lg="8" :md="12" :sm="12" :xs="24">联系方式:{{ form.phone }}</el-col> |
| 33 | <el-col :lg="8" :md="12" :sm="12" :xs="24"></el-col> | 49 | <el-col :lg="8" :md="12" :sm="12" :xs="24"></el-col> |
| 34 | </el-row> | 50 | </el-row> |
| 35 | 51 | <el-row v-if="type == 'car'"> | |
| 52 | <el-col :lg="12" :md="12" :sm="12" :xs="24"> | ||
| 53 | 接站信息 | ||
| 54 | </el-col> | ||
| 55 | <el-col :lg="12" :md="12" :sm="12" :xs="24"> | ||
| 56 | 送站信息 | ||
| 57 | </el-col> | ||
| 58 | </el-row> | ||
| 59 | <el-row v-if="type == 'food'"> | ||
| 60 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 61 | <div v-for="f in form.messageObj?.foodsList"> | ||
| 62 | <span v-if="f.category==0">{{language==0?'早餐':'Breakfast'}}</span> | ||
| 63 | <span v-if="f.category==1">{{language==0?'午餐':'Lunch'}}</span> | ||
| 64 | <span v-if="f.category==2">{{language==0?'晚餐':'Dinner'}}</span> | ||
| 65 | : {{f.name}} * {{f.num}} {{language==0?'份':'box'}} | ||
| 66 | </div> | ||
| 67 | </el-col> | ||
| 68 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 69 | <div>{{ language==0?'送餐时间':'Delivery Time' }}:{{ form.deliveryTime }}</div> | ||
| 70 | </el-col> | ||
| 71 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 72 | <div class="mb10">{{ language==0?'送餐地址':'Delivery Address' }}:{{ form.address }}</div> | ||
| 73 | </el-col> | ||
| 74 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 75 | <div>{{ language==0?'联系人':'Contact Person' }}:{{ form.contacts }}</div> | ||
| 76 | </el-col> | ||
| 77 | <el-col :lg="8" :md="12" :sm="12" :xs="24">{{ language==0?'联系方式':'Contact Phone' }}:{{ form.phone }}</el-col> | ||
| 78 | </el-row> | ||
| 36 | </div> | 79 | </div> |
| 37 | 80 | ||
| 38 | <el-row justify="end"> | 81 | <el-row justify="end"> |
| 39 | <el-col :lg="12" :xs="24"> | 82 | <el-col :lg="12" :xs="24"> |
| 40 | <div class="text-right"> | 83 | <div class="text-right"> |
| 41 | <div class="item"><label>{{ language == 0 ? '费用总计' : 'Total Cost' }}:</label> | 84 | <div class="item"><label>{{ language == 0 ? '费用总计' : 'Total Cost' }}:</label> |
| 42 | <span class="size26 wePrice">{{ language == 0 ? '¥' : '€' }}{{ form.total }}</span> | 85 | <span class="size26 wePrice text-warning">{{ language == 0 ? '¥' : '€' }}{{ form.total }}</span> |
| 43 | </div> | 86 | </div> |
| 44 | </div> | 87 | </div> |
| 45 | </el-col> | 88 | </el-col> |
| 46 | </el-row> | 89 | </el-row> |
| 47 | </div> | 90 | </div> |
| 48 | |||
| 49 | |||
| 50 | </div> | 91 | </div> |
| 51 | <div v-else class="pd20 skeletonBox"> | 92 | <div v-else class="pd20 skeletonBox"> |
| 52 | <el-skeleton :rows="8"/> | 93 | <el-skeleton :rows="8"/> |
| ... | @@ -78,7 +119,7 @@ | ... | @@ -78,7 +119,7 @@ |
| 78 | <div class="leftboderTT">{{ language == 0 ? '选择支付方式' : 'Choose payment method' }}</div> | 119 | <div class="leftboderTT">{{ language == 0 ? '选择支付方式' : 'Choose payment method' }}</div> |
| 79 | <div class="mt20"> | 120 | <div class="mt20"> |
| 80 | <el-radio-group v-model="payType"> | 121 | <el-radio-group v-model="payType"> |
| 81 | <el-radio label="2" v-if="language==0" border> | 122 | <el-radio value="2" v-if="language==0" border> |
| 82 | <!-- 微信--> | 123 | <!-- 微信--> |
| 83 | <svg t="1709002960407" class="icon" viewBox="0 0 3152 1024" version="1.1" | 124 | <svg t="1709002960407" class="icon" viewBox="0 0 3152 1024" version="1.1" |
| 84 | xmlns="http://www.w3.org/2000/svg" p-id="24747" width="94" height="40"> | 125 | xmlns="http://www.w3.org/2000/svg" p-id="24747" width="94" height="40"> |
| ... | @@ -90,8 +131,8 @@ | ... | @@ -90,8 +131,8 @@ |
| 90 | fill="#595757" p-id="24749"></path> | 131 | fill="#595757" p-id="24749"></path> |
| 91 | </svg> | 132 | </svg> |
| 92 | </el-radio> | 133 | </el-radio> |
| 93 | <el-radio label="3" v-if="language==1" border> | 134 | <el-radio value="3" v-if="language==1" border> |
| 94 | <!-- paypal--> | 135 | <!--paypal--> |
| 95 | <svg t="1709002828937" class="icon" viewBox="0 0 4220 1024" version="1.1" | 136 | <svg t="1709002828937" class="icon" viewBox="0 0 4220 1024" version="1.1" |
| 96 | xmlns="http://www.w3.org/2000/svg" p-id="22654" width="94" height="40"> | 137 | xmlns="http://www.w3.org/2000/svg" p-id="22654" width="94" height="40"> |
| 97 | <path | 138 | <path |
| ... | @@ -149,10 +190,10 @@ | ... | @@ -149,10 +190,10 @@ |
| 149 | <el-button v-if="!hideconfirmbtn" type="primary" @click="goPay" round class="btn-lineG w200px"> | 190 | <el-button v-if="!hideconfirmbtn" type="primary" @click="goPay" round class="btn-lineG w200px"> |
| 150 | {{ language == 0 ? '确定' : 'Submit' }} | 191 | {{ language == 0 ? '确定' : 'Submit' }} |
| 151 | </el-button> | 192 | </el-button> |
| 152 | <el-button round @click="unsubscribe" v-if="form.viewStatus == '5'"> 退订</el-button> | 193 | <el-button round @click="unsubscribe" v-if="form.viewStatus == '5'">{{ language==0?'退订':'Unsubscribe' }}</el-button> |
| 153 | <el-button link class="underline" @click="cancel" v-if="form.viewStatus == '0'" disabled> 取消订单</el-button> | 194 | <el-button link class="underline" @click="cancel" v-if="form.viewStatus == '0'" disabled> |
| 154 | 195 | {{ language==0?'取消订单':'Cancel Order' }} | |
| 155 | 196 | </el-button> | |
| 156 | </el-col> | 197 | </el-col> |
| 157 | </el-row> | 198 | </el-row> |
| 158 | </div> | 199 | </div> |
| ... | @@ -167,12 +208,8 @@ | ... | @@ -167,12 +208,8 @@ |
| 167 | </div> | 208 | </div> |
| 168 | </div> | 209 | </div> |
| 169 | </el-card> | 210 | </el-card> |
| 170 | |||
| 171 | |||
| 172 | |||
| 173 | </div> | 211 | </div> |
| 174 | 212 | ||
| 175 | |||
| 176 | <div class="box" v-if="errorBox"> | 213 | <div class="box" v-if="errorBox"> |
| 177 | <el-result | 214 | <el-result |
| 178 | icon="error" | 215 | icon="error" |
| ... | @@ -195,7 +232,6 @@ import {getCurrentInstance, ref} from 'vue' | ... | @@ -195,7 +232,6 @@ import {getCurrentInstance, ref} from 'vue' |
| 195 | import {onMounted} from "@vue/runtime-core" | 232 | import {onMounted} from "@vue/runtime-core" |
| 196 | import {useRoute, useRouter} from "vue-router" | 233 | import {useRoute, useRouter} from "vue-router" |
| 197 | import * as booking from "@/apiPc/booking" | 234 | import * as booking from "@/apiPc/booking" |
| 198 | import * as match from "@/apiPc/match" | ||
| 199 | import MatchInfoRow from "@/viewsPc/match/components/matchInfo-row"; | 235 | import MatchInfoRow from "@/viewsPc/match/components/matchInfo-row"; |
| 200 | 236 | ||
| 201 | const {proxy} = getCurrentInstance() | 237 | const {proxy} = getCurrentInstance() |
| ... | @@ -212,19 +248,20 @@ import useUserStore from "@/store/modules/user"; | ... | @@ -212,19 +248,20 @@ import useUserStore from "@/store/modules/user"; |
| 212 | import FileUpload from "@/components/FileUpload"; | 248 | import FileUpload from "@/components/FileUpload"; |
| 213 | import {useStorage} from "@vueuse/core/index"; | 249 | import {useStorage} from "@vueuse/core/index"; |
| 214 | import {ElMessage} from "element-plus"; | 250 | import {ElMessage} from "element-plus"; |
| 251 | import {getCarBilldetailbyId, getFoodBilldetailbyId} from "@/apiPc/booking"; | ||
| 215 | 252 | ||
| 216 | const isLogin = ref(false) | 253 | const isLogin = ref(false) |
| 217 | const language = useStorage('language', 0) | 254 | const language = useStorage('language', 0) |
| 218 | const totalFee = ref('') | 255 | const totalFee = ref('') |
| 219 | const wePayCodeUrl = ref('') | 256 | const wePayCodeUrl = ref('') |
| 220 | const form = ref({}) | 257 | const form = ref({}) |
| 258 | const type = ref('') | ||
| 221 | const errorBox = ref(false) | 259 | const errorBox = ref(false) |
| 222 | const hideconfirmbtn = ref(false) | 260 | const hideconfirmbtn = ref(false) |
| 223 | 261 | ||
| 224 | const user = useUserStore().user | 262 | const user = useUserStore().user |
| 225 | console.log(route.query.orderId) | 263 | console.log(route.query.orderId) |
| 226 | // 1763462073870237698 | 264 | // 1763462073870237698 |
| 227 | getData() | ||
| 228 | if (useUserStore().user) { | 265 | if (useUserStore().user) { |
| 229 | isLogin.value = true | 266 | isLogin.value = true |
| 230 | } | 267 | } |
| ... | @@ -234,10 +271,48 @@ onMounted(() => { | ... | @@ -234,10 +271,48 @@ onMounted(() => { |
| 234 | } else { | 271 | } else { |
| 235 | payType.value = '3' | 272 | payType.value = '3' |
| 236 | } | 273 | } |
| 274 | if(route.query.type){ | ||
| 275 | type.value = route.query.type | ||
| 276 | } | ||
| 277 | if(route.query.orderType){ | ||
| 278 | switch (route.query.orderType){ | ||
| 279 | case '0': | ||
| 280 | type.value = 'hotel' | ||
| 281 | break | ||
| 282 | case '1': | ||
| 283 | type.value = 'car' | ||
| 284 | break | ||
| 285 | case '2': | ||
| 286 | type.value = 'food' | ||
| 287 | break | ||
| 288 | } | ||
| 289 | } | ||
| 290 | getData() | ||
| 237 | }) | 291 | }) |
| 238 | 292 | ||
| 239 | function getData() { | 293 | function getData() { |
| 240 | return booking.getRoomBilldetailbyId({orderId: orderId.value}).then(res => { | 294 | if(type.value=='car') { |
| 295 | booking.getCarBilldetailbyId({orderId: orderId.value}).then(res => { | ||
| 296 | totalFee.value = res.data.total | ||
| 297 | form.value = res.data | ||
| 298 | form.value.messageObj = JSON.parse(form.value.message) | ||
| 299 | form.value.extJsonObj = JSON.parse(form.value.extJson) | ||
| 300 | }).catch(err => { | ||
| 301 | console.log(err) | ||
| 302 | errorBox.value = true | ||
| 303 | }) | ||
| 304 | } | ||
| 305 | if(type.value=='food') { | ||
| 306 | booking.getFoodBilldetailbyId({orderId: orderId.value}).then(res => { | ||
| 307 | totalFee.value = res.data.total | ||
| 308 | form.value = res.data | ||
| 309 | form.value.messageObj = JSON.parse(form.value.message) | ||
| 310 | form.value.extJsonObj = JSON.parse(form.value.extJson) | ||
| 311 | console.log(form.value) | ||
| 312 | }) | ||
| 313 | } | ||
| 314 | if(type.value=='hotel') { | ||
| 315 | booking.getRoomBilldetailbyId({orderId: orderId.value}).then(res => { | ||
| 241 | totalFee.value = res.data.total | 316 | totalFee.value = res.data.total |
| 242 | form.value = res.data | 317 | form.value = res.data |
| 243 | form.value.messageObj = JSON.parse(form.value.message) | 318 | form.value.messageObj = JSON.parse(form.value.message) |
| ... | @@ -247,6 +322,8 @@ function getData() { | ... | @@ -247,6 +322,8 @@ function getData() { |
| 247 | console.log(err) | 322 | console.log(err) |
| 248 | errorBox.value = true | 323 | errorBox.value = true |
| 249 | }) | 324 | }) |
| 325 | } | ||
| 326 | |||
| 250 | } | 327 | } |
| 251 | 328 | ||
| 252 | function goHome() { | 329 | function goHome() { |
| ... | @@ -255,14 +332,14 @@ function goHome() { | ... | @@ -255,14 +332,14 @@ function goHome() { |
| 255 | 332 | ||
| 256 | function goPay() { | 333 | function goPay() { |
| 257 | if (payType.value == '2') { | 334 | if (payType.value == '2') { |
| 258 | match.createWePay({orderId: orderId.value}).then(res => { | 335 | booking.createWePay({orderId: orderId.value}).then(res => { |
| 259 | wePayCodeUrl.value = res.data | 336 | wePayCodeUrl.value = res.data |
| 260 | hideconfirmbtn.value = true | 337 | hideconfirmbtn.value = true |
| 261 | startforGetData() | 338 | startforGetData() |
| 262 | }) | 339 | }) |
| 263 | } | 340 | } |
| 264 | if (payType.value == '3') { | 341 | if (payType.value == '3') { |
| 265 | match.createPalPay({orderId: orderId.value}).then(res => { | 342 | booking.createPalPay({orderId: orderId.value}).then(res => { |
| 266 | if (res.data) { | 343 | if (res.data) { |
| 267 | location.href = res.data | 344 | location.href = res.data |
| 268 | } | 345 | } | ... | ... |
src/viewsPc/booking/payOk.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <div class="box"> | ||
| 4 | <el-card class="mb60 mt30" v-loading="loading"> | ||
| 5 | <div class="text-center mt30"> | ||
| 6 | <el-icon color="#32B16C" size="80"> | ||
| 7 | <SuccessFilled/> | ||
| 8 | </el-icon> | ||
| 9 | <p class="text-success mb20">{{ language == 0 ? '支付成功' : 'successfully!' }}</p> | ||
| 10 | |||
| 11 | <el-button type="primary" class="btn-lineG mb60" @click="goBillDetail" round> | ||
| 12 | {{ language == 0 ? '返回订单详情' : 'Return order details' }} | ||
| 13 | </el-button> | ||
| 14 | </div> | ||
| 15 | </el-card> | ||
| 16 | </div> | ||
| 17 | </div> | ||
| 18 | </template> | ||
| 19 | |||
| 20 | <script setup> | ||
| 21 | import {ref} from "vue"; | ||
| 22 | import {useRoute, useRouter} from "vue-router"; | ||
| 23 | import {onMounted} from "@vue/runtime-core"; | ||
| 24 | import {callbackPalPay} from "@/apiPc/match"; | ||
| 25 | import {useStorage} from "@vueuse/core/index"; | ||
| 26 | |||
| 27 | const route = useRoute() | ||
| 28 | const router = useRouter() | ||
| 29 | const language= useStorage('language',0) | ||
| 30 | const orderId = ref(route.query.orderId) | ||
| 31 | const loading = ref(false) | ||
| 32 | |||
| 33 | onMounted(() => { | ||
| 34 | var code = decodeURIComponent(orderId.value) | ||
| 35 | console.log(code) | ||
| 36 | loading.value = true | ||
| 37 | callbackPalPay(code).then(res => { | ||
| 38 | loading.value = false | ||
| 39 | }) | ||
| 40 | }) | ||
| 41 | |||
| 42 | function goBillDetail() { | ||
| 43 | router.push({ | ||
| 44 | name: 'bookingPay', | ||
| 45 | query: { | ||
| 46 | orderId: route.query.orderId | ||
| 47 | } | ||
| 48 | }) | ||
| 49 | } | ||
| 50 | </script> | ||
| 51 | |||
| 52 | <style scoped lang="scss"> | ||
| 53 | |||
| 54 | </style> |
| ... | @@ -12,8 +12,8 @@ | ... | @@ -12,8 +12,8 @@ |
| 12 | <div v-for="b in list" class="item"> | 12 | <div v-for="b in list" class="item"> |
| 13 | <div class="title"> | 13 | <div class="title"> |
| 14 | <label class="blueTag" v-if="b.orderType == 0"> {{ language==0?'酒店':'HOTEL' }} </label> | 14 | <label class="blueTag" v-if="b.orderType == 0"> {{ language==0?'酒店':'HOTEL' }} </label> |
| 15 | <label class="blueTag" v-if="b.orderType == 1"> {{ language==0?'车辆':'TRANSPORTATION' }} </label> | 15 | <label class="purpleTag" v-if="b.orderType == 1"> {{ language==0?'车辆':'TRANSPORTATION' }} </label> |
| 16 | <label class="blueTag" v-if="b.orderType == 2"> {{ language==0?'餐饮':'DINING' }} </label> | 16 | <label class="orangeTag" v-if="b.orderType == 2"> {{ language==0?'餐饮':'DINING' }} </label> |
| 17 | {{ language==0?'订单编号:':'No.' }} {{ b.id }} | 17 | {{ language==0?'订单编号:':'No.' }} {{ b.id }} |
| 18 | </div> | 18 | </div> |
| 19 | <div class="status-po"> | 19 | <div class="status-po"> |
| ... | @@ -31,6 +31,15 @@ | ... | @@ -31,6 +31,15 @@ |
| 31 | <p>{{b.messageObj?.roomName}}</p> | 31 | <p>{{b.messageObj?.roomName}}</p> |
| 32 | <p>{{b.messageObj?.roomInfo}}</p> | 32 | <p>{{b.messageObj?.roomInfo}}</p> |
| 33 | 33 | ||
| 34 | </div> | ||
| 35 | <div class="bbody" v-if="b.orderType == 1"> | ||
| 36 | <h3 class="name">{{b.name}}</h3> | ||
| 37 | <div v-for="(car,index) in b.messageObj.carsList" :key="index"> | ||
| 38 | <div v-if="car.num>0">{{car.name}}:{{car.num}} 辆</div> | ||
| 39 | </div> | ||
| 40 | <div>{{b.handleDate}}</div> | ||
| 41 | |||
| 42 | </div> | ||
| 34 | <el-row justify="space-between"> | 43 | <el-row justify="space-between"> |
| 35 | <el-col :lg="8"> | 44 | <el-col :lg="8"> |
| 36 | <span class="bigMoney"> {{ language==0?'¥':'€' }} {{b.total}}</span> | 45 | <span class="bigMoney"> {{ language==0?'¥':'€' }} {{b.total}}</span> |
| ... | @@ -47,8 +56,6 @@ | ... | @@ -47,8 +56,6 @@ |
| 47 | </el-col> | 56 | </el-col> |
| 48 | </el-row> | 57 | </el-row> |
| 49 | </div> | 58 | </div> |
| 50 | <!-- {{b}}--> | ||
| 51 | </div> | ||
| 52 | 59 | ||
| 53 | </div> | 60 | </div> |
| 54 | <div class="pd20"></div> | 61 | <div class="pd20"></div> |
| ... | @@ -79,7 +86,8 @@ function goDetail(b) { | ... | @@ -79,7 +86,8 @@ function goDetail(b) { |
| 79 | router.push({ | 86 | router.push({ |
| 80 | name: 'bookingPay', | 87 | name: 'bookingPay', |
| 81 | query: { | 88 | query: { |
| 82 | orderId: b.id | 89 | orderId: b.id, |
| 90 | orderType: b.orderType | ||
| 83 | } | 91 | } |
| 84 | }) | 92 | }) |
| 85 | } | 93 | } | ... | ... |
| ... | @@ -68,8 +68,8 @@ const props = defineProps({ | ... | @@ -68,8 +68,8 @@ const props = defineProps({ |
| 68 | }) | 68 | }) |
| 69 | const language= useStorage('language',0) | 69 | const language= useStorage('language',0) |
| 70 | function goBooking(n) { | 70 | function goBooking(n) { |
| 71 | ElMessage.warning(language.value==0?'建设中,敬请期待':'Building!') | 71 | // ElMessage.warning(language.value==0?'建设中,敬请期待':'Building!') |
| 72 | return | 72 | // return |
| 73 | switch (n) { | 73 | switch (n) { |
| 74 | case 0: | 74 | case 0: |
| 75 | // 票务 | 75 | // 票务 |
| ... | @@ -85,7 +85,7 @@ function goBooking(n) { | ... | @@ -85,7 +85,7 @@ function goBooking(n) { |
| 85 | break; | 85 | break; |
| 86 | case 3: | 86 | case 3: |
| 87 | //餐饮 | 87 | //餐饮 |
| 88 | router.push({path: `/booking/dining/${props.matchId}`}) | 88 | router.push({path: `/booking/dinner/${props.matchId}`}) |
| 89 | break; | 89 | break; |
| 90 | case 4: | 90 | case 4: |
| 91 | //化妆 | 91 | //化妆 | ... | ... |
| ... | @@ -114,7 +114,7 @@ function goBooking(n) { | ... | @@ -114,7 +114,7 @@ function goBooking(n) { |
| 114 | break; | 114 | break; |
| 115 | case 3: | 115 | case 3: |
| 116 | //餐饮 | 116 | //餐饮 |
| 117 | router.push({path: `/booking/dining/${props.matchId}`}) | 117 | router.push({path: `/booking/dinner/${props.matchId}`}) |
| 118 | break; | 118 | break; |
| 119 | case 4: | 119 | case 4: |
| 120 | //化妆 | 120 | //化妆 | ... | ... |
-
Please register or sign in to post a comment