Merge branch 'dev' into order
大师课申请
Showing
13 changed files
with
86 additions
and
38 deletions
| ... | @@ -217,6 +217,7 @@ onMounted(() => { | ... | @@ -217,6 +217,7 @@ onMounted(() => { |
| 217 | function changeUseType(e) { | 217 | function changeUseType(e) { |
| 218 | console.log(form.value.useType) | 218 | console.log(form.value.useType) |
| 219 | changecarNum() | 219 | changecarNum() |
| 220 | console.log(form.value) | ||
| 220 | } | 221 | } |
| 221 | 222 | ||
| 222 | function changecarNum(e) { | 223 | function changecarNum(e) { |
| ... | @@ -251,8 +252,9 @@ function initDays() { | ... | @@ -251,8 +252,9 @@ function initDays() { |
| 251 | } | 252 | } |
| 252 | function disabledDate(date) { | 253 | function disabledDate(date) { |
| 253 | // const today = dayjs().format('YYYY-MM-DD') | 254 | // const today = dayjs().format('YYYY-MM-DD') |
| 254 | if (form.value.carStart) { | 255 | if (lform.value.carStart) { |
| 255 | return date.getTime() > dayjs(form.value.carStart).valueOf() | 256 | return (date.getTime() < dayjs(lform.value.carStart).valueOf())||(date.getTime() > dayjs(lform.value.carEnd).valueOf()) |
| 257 | |||
| 256 | } | 258 | } |
| 257 | return true | 259 | return true |
| 258 | } | 260 | } | ... | ... |
| ... | @@ -83,11 +83,9 @@ | ... | @@ -83,11 +83,9 @@ |
| 83 | </template> | 83 | </template> |
| 84 | 84 | ||
| 85 | <script setup> | 85 | <script setup> |
| 86 | import {useRouter} from "vue-router"; | 86 | import {useRouter,useRoute} from "vue-router"; |
| 87 | import {ref, reactive, onMounted} from "vue"; | 87 | import {ref, onMounted} from "vue"; |
| 88 | import {useRoute} from "vue-router"; | 88 | import { getMenuById} from "@/apiPc/booking" |
| 89 | import {getHotelById, getMenuById} from "@/apiPc/booking" | ||
| 90 | |||
| 91 | import {useStorage} from "@vueuse/core/index"; | 89 | import {useStorage} from "@vueuse/core/index"; |
| 92 | import useUserStore from "@/store/modules/user"; | 90 | import useUserStore from "@/store/modules/user"; |
| 93 | import {fillImgUrl} from "@/utils/ruoyi"; | 91 | import {fillImgUrl} from "@/utils/ruoyi"; |
| ... | @@ -98,7 +96,7 @@ const router = useRouter() | ... | @@ -98,7 +96,7 @@ const router = useRouter() |
| 98 | const route = useRoute() | 96 | const route = useRoute() |
| 99 | const form = ref({}) | 97 | const form = ref({}) |
| 100 | const query = ref({ | 98 | const query = ref({ |
| 101 | larId: route.query.id | 99 | larId: route.params.id |
| 102 | }) | 100 | }) |
| 103 | const loading = ref(false) | 101 | const loading = ref(false) |
| 104 | const roomList = ref([]) | 102 | const roomList = ref([]) |
| ... | @@ -106,11 +104,13 @@ const map = ref(null) | ... | @@ -106,11 +104,13 @@ const map = ref(null) |
| 106 | onMounted(() => { | 104 | onMounted(() => { |
| 107 | form.value = JSON.parse(decodeURIComponent(route.query.detail)) | 105 | form.value = JSON.parse(decodeURIComponent(route.query.detail)) |
| 108 | getData() | 106 | getData() |
| 107 | |||
| 109 | }) | 108 | }) |
| 110 | 109 | ||
| 111 | function getData() { | 110 | function getData() { |
| 112 | loading.value = true | 111 | loading.value = true |
| 113 | query.value.hotelId = route.query.id | 112 | query.value.hotelId = route.query.id |
| 113 | console.log(query.value) | ||
| 114 | getMenuById(query.value).then(res => { | 114 | getMenuById(query.value).then(res => { |
| 115 | loading.value = false | 115 | loading.value = false |
| 116 | roomList.value = res.rows | 116 | roomList.value = res.rows | ... | ... |
| ... | @@ -242,6 +242,7 @@ function submit() { | ... | @@ -242,6 +242,7 @@ function submit() { |
| 242 | form.value.foodsList.push(obj) | 242 | form.value.foodsList.push(obj) |
| 243 | form.value.activeId = restaurant.value.activityId | 243 | form.value.activeId = restaurant.value.activityId |
| 244 | form.value.larId = restaurant.value.id | 244 | form.value.larId = restaurant.value.id |
| 245 | form.value.orderName=restaurant.value.name | ||
| 245 | // 提交确认 | 246 | // 提交确认 |
| 246 | ElMessageBox.confirm(language.value == 0 ? '确认提交订单吗?' : 'Confirm to submit the order?', { | 247 | ElMessageBox.confirm(language.value == 0 ? '确认提交订单吗?' : 'Confirm to submit the order?', { |
| 247 | confirmButtonText: language.value == 0 ? '确定' : 'Confirm', | 248 | confirmButtonText: language.value == 0 ? '确定' : 'Confirm', | ... | ... |
| ... | @@ -241,6 +241,9 @@ function initMap() { | ... | @@ -241,6 +241,9 @@ function initMap() { |
| 241 | } | 241 | } |
| 242 | 242 | ||
| 243 | function goOrder(room) { | 243 | function goOrder(room) { |
| 244 | ElMessageBox.confirm(language.value == 0 ? '你当前选择的入住时间为'+hotTime.value[0]+'至'+hotTime.value[1]+',是否确定?':'Your current check-in time is'+hotTime.value[0]+'~'+hotTime.value[1]+'Are you sure?',{type:'warning'}).then({ | ||
| 245 | |||
| 246 | }).then(()=>{ | ||
| 244 | checkRoomPayByUserId(room.hotelId).then(res=>{ | 247 | checkRoomPayByUserId(room.hotelId).then(res=>{ |
| 245 | if(res.data == -100){ | 248 | if(res.data == -100){ |
| 246 | ElMessageBox.confirm( | 249 | ElMessageBox.confirm( |
| ... | @@ -265,6 +268,9 @@ function goOrder(room) { | ... | @@ -265,6 +268,9 @@ function goOrder(room) { |
| 265 | } | 268 | } |
| 266 | goNext(room) | 269 | goNext(room) |
| 267 | }) | 270 | }) |
| 271 | }) | ||
| 272 | |||
| 273 | |||
| 268 | 274 | ||
| 269 | } | 275 | } |
| 270 | function goNext(room) { | 276 | function goNext(room) { | ... | ... |
| ... | @@ -90,16 +90,16 @@ | ... | @@ -90,16 +90,16 @@ |
| 90 | </div> | 90 | </div> |
| 91 | 91 | ||
| 92 | <div class="text-right"> | 92 | <div class="text-right"> |
| 93 | <el-button v-if="b.orderType == 0&&b.viewStatus!=0" class="mb10" plain round type="success" @click="Rebook(b)"> | 93 | <el-button v-if="b.orderType == 0&&b.viewStatus!=0" class="mb10" plain round type="success" size="small" @click="Rebook(b)"> |
| 94 | {{ language==0?'再次预订':'Rebook' }}</el-button> | 94 | {{ language==0?'再次预订':'Rebook' }}</el-button> |
| 95 | <el-button class="mb10" plain round type="primary" @click="goDetail(b)"> | 95 | <el-button class="mb10" plain round type="primary" size="small" @click="goDetail(b)"> |
| 96 | {{ language==0?'详情':'Detail' }}</el-button> | 96 | {{ language==0?'详情':'Detail' }}</el-button> |
| 97 | <el-button v-if="b.status == '0'&&(b.surplus!='0,0'&&b.surplus!='0')" @click="goDetail(b)" | 97 | <el-button v-if="b.status == '0'&&(b.surplus!='0,0'&&b.surplus!='0')" @click="goDetail(b)" |
| 98 | class="mb10" plain round type="primary" > | 98 | class="mb10" plain round type="primary" size="small" > |
| 99 | {{ language==0?'支付':'Pay' }}</el-button> | 99 | {{ language==0?'支付':'Pay' }}</el-button> |
| 100 | <el-button v-if="b.viewStatus==0" @click="cancel(b)" class="mb10" plain round type="warning" > | 100 | <el-button v-if="b.viewStatus==0" @click="cancel(b)" class="mb10" plain round type="warning" size="small" > |
| 101 | {{ language==0?'取消订单':'Cancel Order' }}</el-button> | 101 | {{ language==0?'取消订单':'Cancel Order' }}</el-button> |
| 102 | <el-button v-if="b.viewStatus==5" @click="unsubscribe(b)" class="mb10" plain round type="" > | 102 | <el-button v-if="b.viewStatus==5" @click="unsubscribe(b)" class="mb10" plain round type="" size="small" > |
| 103 | {{ language==0?'退订':'Unsubscribe' }}</el-button> | 103 | {{ language==0?'退订':'Unsubscribe' }}</el-button> |
| 104 | </div> | 104 | </div> |
| 105 | </el-col> | 105 | </el-col> | ... | ... |
| ... | @@ -97,12 +97,12 @@ function building() { | ... | @@ -97,12 +97,12 @@ function building() { |
| 97 | return | 97 | return |
| 98 | } | 98 | } |
| 99 | function popRemark(type){ | 99 | function popRemark(type){ |
| 100 | // debugger | ||
| 100 | if(!form.value){ | 101 | if(!form.value){ |
| 101 | building() | 102 | building() |
| 102 | return | 103 | return |
| 103 | } | 104 | } |
| 104 | if((form.value.isJdView == 0&&type=='1') || (form.value.isCarView == 0&&type=='2') || (form.value.isFoodView == 0&&type=='3') || (form.value.isMealView == 0&&type=='4') || (type=='5'&&form.value.isPhotoView == 0)){ | 105 | if((form.value.isJdView == 0&&type=='1') || (form.value.isCarView == 0&&type=='2') || (form.value.isFoodView == 0&&type=='3') || (form.value.isMealView == 0&&type=='4') || (type=='5'&&form.value.isPhotoView == 0)){ |
| 105 | //type == '0' | ||
| 106 | building() | 106 | building() |
| 107 | return | 107 | return |
| 108 | } | 108 | } | ... | ... |
| ... | @@ -617,8 +617,11 @@ function removeCurproject() { | ... | @@ -617,8 +617,11 @@ function removeCurproject() { |
| 617 | function checkTwo(a,b) { | 617 | function checkTwo(a,b) { |
| 618 | match.checkMate({per1Id:a.id,per2Id:b.id,cptId:matchId.value}).then(res=>{ | 618 | match.checkMate({per1Id:a.id,per2Id:b.id,cptId:matchId.value}).then(res=>{ |
| 619 | if(!res.data){ | 619 | if(!res.data){ |
| 620 | // ElMessage.warning(language.value == 0 ? '他们不是固定组合':'They\'re not a couple') | 620 | if(isNational.value){ |
| 621 | ElMessage.warning(language.value == 0 ? `${a.realName} 已经和其他人组成舞伴,无法报名,请重新选择`:`${a.realName} has already formed a dancer with another person, cannot sign up: please select again`) | 621 | ElMessage.warning(language.value == 0 ? '他们不是固定组合':'They\'re not a couple') |
| 622 | } else { | ||
| 623 | ElMessage.warning(language.value == 0 ? `${a.realName}/${b.realName} 已经和其他人组成舞伴,无法报名,请重新选择`:`${a.realName}/${b.realName} has already formed a dancer with another person, cannot sign up: please select again`) | ||
| 624 | } | ||
| 622 | } | 625 | } |
| 623 | }) | 626 | }) |
| 624 | } | 627 | } | ... | ... |
| ... | @@ -70,7 +70,7 @@ | ... | @@ -70,7 +70,7 @@ |
| 70 | </el-radio-group> | 70 | </el-radio-group> |
| 71 | </el-form-item> | 71 | </el-form-item> |
| 72 | 72 | ||
| 73 | <el-form-item :label="language==0?'出生日期':'Date of Birth'"> | 73 | <el-form-item :label="language==0?'出生日期':'Date of Birth'" required> |
| 74 | <el-date-picker | 74 | <el-date-picker |
| 75 | v-model="form.birth" | 75 | v-model="form.birth" |
| 76 | style="width: 100%;" | 76 | style="width: 100%;" |
| ... | @@ -88,7 +88,7 @@ | ... | @@ -88,7 +88,7 @@ |
| 88 | </div> | 88 | </div> |
| 89 | 89 | ||
| 90 | </el-form-item> | 90 | </el-form-item> |
| 91 | <el-form-item :label="language==0?'证件号':'Passport number'"> | 91 | <el-form-item :label="language==0?'证件号':'Passport number'" required> |
| 92 | <el-input v-model="form.passportNumber"/> | 92 | <el-input v-model="form.passportNumber"/> |
| 93 | </el-form-item> | 93 | </el-form-item> |
| 94 | 94 | ||
| ... | @@ -218,10 +218,14 @@ watch(show, (value) => { | ... | @@ -218,10 +218,14 @@ watch(show, (value) => { |
| 218 | }) | 218 | }) |
| 219 | 219 | ||
| 220 | function submitForm() { | 220 | function submitForm() { |
| 221 | // if (!form.value.passportNumber) { | 221 | if (!form.value.passportNumber) { |
| 222 | // ElMessage.warning('Please fill in your passport number') | 222 | ElMessage.warning(language.value == 0 ?'请输入你的证件号':'Please fill in your passport number') |
| 223 | // return | 223 | return |
| 224 | // } | 224 | } |
| 225 | if (!form.value.birth) { | ||
| 226 | ElMessage.warning(language.value == 0 ?'请输入你的出生日期':'Please fill in your birthday') | ||
| 227 | return | ||
| 228 | } | ||
| 225 | // if (!form.value.picUrl) { | 229 | // if (!form.value.picUrl) { |
| 226 | // ElMessage.warning('Please upload your photo') | 230 | // ElMessage.warning('Please upload your photo') |
| 227 | // return | 231 | // return |
| ... | @@ -246,10 +250,6 @@ function submitForm() { | ... | @@ -246,10 +250,6 @@ function submitForm() { |
| 246 | emit('submitForm') | 250 | emit('submitForm') |
| 247 | }) | 251 | }) |
| 248 | } else { | 252 | } else { |
| 249 | // if (!form.value.birth) { | ||
| 250 | // ElMessage.warning('Please fill in your birthday') | ||
| 251 | // return | ||
| 252 | // } | ||
| 253 | if (Array.isArray(form.value.passportUrl)) { | 253 | if (Array.isArray(form.value.passportUrl)) { |
| 254 | form.value.passportUrl = form.value.passportUrl[0].url | 254 | form.value.passportUrl = form.value.passportUrl[0].url |
| 255 | } | 255 | } | ... | ... |
| ... | @@ -234,7 +234,11 @@ function handleSelectionChange(val) { | ... | @@ -234,7 +234,11 @@ function handleSelectionChange(val) { |
| 234 | function checkTwo(a,b) { | 234 | function checkTwo(a,b) { |
| 235 | match.checkMate({per1Id:a.id,per2Id:b.id,cptId:matchId}).then(res=>{ | 235 | match.checkMate({per1Id:a.id,per2Id:b.id,cptId:matchId}).then(res=>{ |
| 236 | if(!res.data){ | 236 | if(!res.data){ |
| 237 | if(isNational.value){ | ||
| 238 | ElMessage.warning(language.value == 0 ? '他们不是固定组合':'They\'re not a couple') | ||
| 239 | } else { | ||
| 237 | ElMessage.warning(language.value == 0 ? `${a.realName} 已经和其他人组成舞伴,无法报名:请重新选择`:`${a.realName} has already formed a dancer with another person, cannot sign up: please select again`) | 240 | ElMessage.warning(language.value == 0 ? `${a.realName} 已经和其他人组成舞伴,无法报名:请重新选择`:`${a.realName} has already formed a dancer with another person, cannot sign up: please select again`) |
| 241 | } | ||
| 238 | proxy.$refs['allSportmenTable'].clearSelection() | 242 | proxy.$refs['allSportmenTable'].clearSelection() |
| 239 | } | 243 | } |
| 240 | }) | 244 | }) | ... | ... |
| ... | @@ -80,11 +80,11 @@ | ... | @@ -80,11 +80,11 @@ |
| 80 | application of visa invitation letter and purchasing insurance etc.</span> | 80 | application of visa invitation letter and purchasing insurance etc.</span> |
| 81 | </div> | 81 | </div> |
| 82 | </el-form-item> | 82 | </el-form-item> |
| 83 | <el-form-item :label="language==0?'证件号':'Passport number'"> | 83 | <el-form-item :label="language==0?'证件号':'Passport number'" required> |
| 84 | <el-input v-model="wdsfData.passportNumber"/> | 84 | <el-input v-model="wdsfData.passportNumber"/> |
| 85 | </el-form-item> | 85 | </el-form-item> |
| 86 | 86 | ||
| 87 | <el-form-item :label="language==0?'出生日期':'Date of Birth'"> | 87 | <el-form-item :label="language==0?'出生日期':'Date of Birth'" required> |
| 88 | <el-date-picker | 88 | <el-date-picker |
| 89 | v-model="wdsfData.birthday" | 89 | v-model="wdsfData.birthday" |
| 90 | style="width: 100%;" | 90 | style="width: 100%;" |
| ... | @@ -317,10 +317,14 @@ function goBack() { | ... | @@ -317,10 +317,14 @@ function goBack() { |
| 317 | router.go(-1) | 317 | router.go(-1) |
| 318 | } | 318 | } |
| 319 | function bigNext(){ | 319 | function bigNext(){ |
| 320 | // if (!wdsfData.value.passportNumber) { | 320 | if (!wdsfData.value.passportNumber) { |
| 321 | // ElMessage.warning(language.value == 0 ?'请填写护照号':'Please fill in your passport number') | 321 | ElMessage.warning(language.value == 0 ?'请填写护照号':'Please fill in your passport number') |
| 322 | // return | 322 | return |
| 323 | // } | 323 | } |
| 324 | if (!wdsfData.value.birthday) { | ||
| 325 | ElMessage.warning(language.value == 0 ?'请填写出生年月':'Please fill in your birthday') | ||
| 326 | return | ||
| 327 | } | ||
| 324 | 328 | ||
| 325 | if (!wdsfData.value.passportUrl) { | 329 | if (!wdsfData.value.passportUrl) { |
| 326 | ElMessage.warning(language.value == 0 ? '请上传护照文件' : 'Please upload your passport file') | 330 | ElMessage.warning(language.value == 0 ? '请上传护照文件' : 'Please upload your passport file') | ... | ... |
| ... | @@ -224,7 +224,12 @@ order.fetchData(); | ... | @@ -224,7 +224,12 @@ order.fetchData(); |
| 224 | 224 | ||
| 225 | <div class="detail"> | 225 | <div class="detail"> |
| 226 | <div class="detail_top"> | 226 | <div class="detail_top"> |
| 227 | <div class="time">{{ order.data?.dateStr }}</div> | 227 | <div class="time"> |
| 228 | {{ order.data?.dateStr }} | ||
| 229 | <span v-if="order.data?.ticketType == 1" class="tag_t"> | ||
| 230 | {{ languageFormat(language, "套票", "Package ticket") }} | ||
| 231 | </span> | ||
| 232 | </div> | ||
| 228 | <div class="ticket"> | 233 | <div class="ticket"> |
| 229 | {{ order.data?.singlePrice }}<span v-if="language == 0">元</span | 234 | {{ order.data?.singlePrice }}<span v-if="language == 0">元</span |
| 230 | >{{ languageFormat(language, "票档", "Ticket file") }} x{{ | 235 | >{{ languageFormat(language, "票档", "Ticket file") }} x{{ |
| ... | @@ -300,6 +305,15 @@ div { | ... | @@ -300,6 +305,15 @@ div { |
| 300 | padding: 20px 0; | 305 | padding: 20px 0; |
| 301 | width: 1200px; | 306 | width: 1200px; |
| 302 | margin: 0 auto; | 307 | margin: 0 auto; |
| 308 | .tag_t { | ||
| 309 | padding: 1px 10px; | ||
| 310 | font-weight: 400; | ||
| 311 | font-size: 12px; | ||
| 312 | color: #493ceb; | ||
| 313 | border-radius: 6px; | ||
| 314 | border: 1px solid #453dea; | ||
| 315 | margin-left: 5px; | ||
| 316 | } | ||
| 303 | 317 | ||
| 304 | .title { | 318 | .title { |
| 305 | padding: 11px; | 319 | padding: 11px; | ... | ... |
| ... | @@ -295,7 +295,12 @@ detail.fetchData(); | ... | @@ -295,7 +295,12 @@ detail.fetchData(); |
| 295 | </div> | 295 | </div> |
| 296 | <div class="tr"> | 296 | <div class="tr"> |
| 297 | <div style="width: 30.33%" class="td flex-col"> | 297 | <div style="width: 30.33%" class="td flex-col"> |
| 298 | <div>{{ detail.data?.dateStr }}</div> | 298 | <div> |
| 299 | {{ detail.data?.dateStr }} | ||
| 300 | <span v-if="detail.data?.ticketType == 1" class="tag_t"> | ||
| 301 | {{ languageFormat(language, "套票", "Package ticket") }} | ||
| 302 | </span> | ||
| 303 | </div> | ||
| 299 | <div> | 304 | <div> |
| 300 | {{ | 305 | {{ |
| 301 | detail.data?.openType == 0 | 306 | detail.data?.openType == 0 |
| ... | @@ -337,7 +342,7 @@ detail.fetchData(); | ... | @@ -337,7 +342,7 @@ detail.fetchData(); |
| 337 | <!-- 购票人 --> | 342 | <!-- 购票人 --> |
| 338 | <div class="pay_ticket"> | 343 | <div class="pay_ticket"> |
| 339 | <div class="title"> | 344 | <div class="title"> |
| 340 | {{ languageFormat(language, "购票人", "Full Name") }} | 345 | {{ languageFormat(language, "观看人", "Viewers") }} |
| 341 | </div> | 346 | </div> |
| 342 | <div class="people"> | 347 | <div class="people"> |
| 343 | <div | 348 | <div |
| ... | @@ -537,6 +542,15 @@ detail.fetchData(); | ... | @@ -537,6 +542,15 @@ detail.fetchData(); |
| 537 | flex-direction: column; | 542 | flex-direction: column; |
| 538 | gap: 16px; | 543 | gap: 16px; |
| 539 | } | 544 | } |
| 545 | .tag_t { | ||
| 546 | padding: 1px 10px; | ||
| 547 | font-weight: 400; | ||
| 548 | font-size: 12px; | ||
| 549 | color: #493ceb; | ||
| 550 | border-radius: 6px; | ||
| 551 | border: 1px solid #453dea; | ||
| 552 | margin-left: 5px; | ||
| 553 | } | ||
| 540 | } | 554 | } |
| 541 | } | 555 | } |
| 542 | // 购票人 | 556 | // 购票人 | ... | ... |
| ... | @@ -68,15 +68,15 @@ function onWindowMessage(e) { | ... | @@ -68,15 +68,15 @@ function onWindowMessage(e) { |
| 68 | if (route.query.sitePlace == "B6") { | 68 | if (route.query.sitePlace == "B6") { |
| 69 | // 绘制舞台矩形 | 69 | // 绘制舞台矩形 |
| 70 | sendMsg("draw-object-rectangle", { | 70 | sendMsg("draw-object-rectangle", { |
| 71 | x: 1800, | 71 | x: 2640, |
| 72 | y: 960, | 72 | y: 960, |
| 73 | w: 4400, | 73 | w: 2540, |
| 74 | h: 1300, | 74 | h: 1300, |
| 75 | color: "#e0e0e0", | 75 | color: "#e0e0e0", |
| 76 | }); | 76 | }); |
| 77 | // 绘制舞台文字 | 77 | // 绘制舞台文字 |
| 78 | sendMsg("draw-object-text", { | 78 | sendMsg("draw-object-text", { |
| 79 | x: 3900, | 79 | x: 3760, |
| 80 | y: 1500, | 80 | y: 1500, |
| 81 | text: language.value == 0 ? "舞台" : "stage", | 81 | text: language.value == 0 ? "舞台" : "stage", |
| 82 | style: { fontSize: 160, fontWeight: "400", fill: "#6a6a6a" }, | 82 | style: { fontSize: 160, fontWeight: "400", fill: "#6a6a6a" }, | ... | ... |
-
Please register or sign in to post a comment