Merge branch 'order' into dev-order
Showing
15 changed files
with
1204 additions
and
147 deletions
No preview for this file type
| ... | @@ -47,6 +47,7 @@ export function newbilllist(query) { | ... | @@ -47,6 +47,7 @@ export function newbilllist(query) { |
| 47 | params: query | 47 | params: query |
| 48 | }) | 48 | }) |
| 49 | } | 49 | } |
| 50 | |||
| 50 | export function vistorRegister(data) { | 51 | export function vistorRegister(data) { |
| 51 | return request({ | 52 | return request({ |
| 52 | url: `/pcSimpleRegister`, | 53 | url: `/pcSimpleRegister`, |
| ... | @@ -68,3 +69,41 @@ export function upgradeTeam(data) { | ... | @@ -68,3 +69,41 @@ export function upgradeTeam(data) { |
| 68 | data: data | 69 | data: data |
| 69 | }) | 70 | }) |
| 70 | } | 71 | } |
| 72 | |||
| 73 | export function submitMasterApply(data) { | ||
| 74 | return request({ | ||
| 75 | url: `/league/courseUser`, | ||
| 76 | method: 'post', | ||
| 77 | data: data | ||
| 78 | }) | ||
| 79 | } | ||
| 80 | export function masterClassList(query) { | ||
| 81 | return request({ | ||
| 82 | // url: `/league/courseItem/list`, | ||
| 83 | url: `/league/courseItem/getCoursrItemByCourseId`, | ||
| 84 | method: 'get', | ||
| 85 | params: query | ||
| 86 | }) | ||
| 87 | } | ||
| 88 | export function getByCard(query) { | ||
| 89 | return request({ | ||
| 90 | url: `/league/courseUser/getByCard`, | ||
| 91 | method: 'get', | ||
| 92 | params: query | ||
| 93 | }) | ||
| 94 | } | ||
| 95 | export function getMasterApply(query) { | ||
| 96 | return request({ | ||
| 97 | url: `/league/courseUser/getCourseByUser`, | ||
| 98 | method: 'get', | ||
| 99 | params: query | ||
| 100 | }) | ||
| 101 | } | ||
| 102 | export function delByCard(card) { | ||
| 103 | return request({ | ||
| 104 | url: `/league/courseUser/delByCard?card=${card}`, | ||
| 105 | method: 'delete' | ||
| 106 | }) | ||
| 107 | } | ||
| 108 | |||
| 109 | ... | ... |
| ... | @@ -286,7 +286,7 @@ export const rankList = [ | ... | @@ -286,7 +286,7 @@ export const rankList = [ |
| 286 | tong: '0' | 286 | tong: '0' |
| 287 | }, | 287 | }, |
| 288 | { | 288 | { |
| 289 | index: '2', | 289 | index: '1', |
| 290 | code: 'md', | 290 | code: 'md', |
| 291 | name: 'Alexey Glukhov - Anastasia Glazunova', | 291 | name: 'Alexey Glukhov - Anastasia Glazunova', |
| 292 | gj: '摩尔多瓦共和国', | 292 | gj: '摩尔多瓦共和国', |
| ... | @@ -296,7 +296,7 @@ export const rankList = [ | ... | @@ -296,7 +296,7 @@ export const rankList = [ |
| 296 | tong: '0' | 296 | tong: '0' |
| 297 | }, | 297 | }, |
| 298 | { | 298 | { |
| 299 | index: '3', | 299 | index: '1', |
| 300 | code: 'de', | 300 | code: 'de', |
| 301 | name: 'Marius-Andrei Balan - Khrystyna Moshenska', | 301 | name: 'Marius-Andrei Balan - Khrystyna Moshenska', |
| 302 | gj: '德国', | 302 | gj: '德国', | ... | ... |
| ... | @@ -440,12 +440,24 @@ export const constantRoutes = [ | ... | @@ -440,12 +440,24 @@ export const constantRoutes = [ |
| 440 | meta: { title: 'pay' } | 440 | meta: { title: 'pay' } |
| 441 | }, | 441 | }, |
| 442 | { | 442 | { |
| 443 | path: 'payticket', | ||
| 444 | component: () => import('@/viewsPc/booking/payticket'), | ||
| 445 | name: 'payticket', | ||
| 446 | meta: { title: '票务' } | ||
| 447 | }, | ||
| 448 | { | ||
| 443 | path: 'payOk', | 449 | path: 'payOk', |
| 444 | component: () => import('@/viewsPc/booking/payOk'), | 450 | component: () => import('@/viewsPc/booking/payOk'), |
| 445 | name: 'bookingPayOk', | 451 | name: 'bookingPayOk', |
| 446 | meta: { title: 'payOk' } | 452 | meta: { title: 'payOk' } |
| 447 | }, | 453 | }, |
| 448 | { | 454 | { |
| 455 | path: 'payticketOk', | ||
| 456 | component: () => import('@/viewsPc/booking/payticketOk'), | ||
| 457 | name: 'payticketOk', | ||
| 458 | meta: { title: '票务-paypal' } | ||
| 459 | }, | ||
| 460 | { | ||
| 449 | path: 'invoice', | 461 | path: 'invoice', |
| 450 | component: () => import('@/viewsPc/booking/invoicing'), | 462 | component: () => import('@/viewsPc/booking/invoicing'), |
| 451 | name: 'invoice', | 463 | name: 'invoice', | ... | ... |
| ... | @@ -47,8 +47,8 @@ | ... | @@ -47,8 +47,8 @@ |
| 47 | <h3 class="name flex">{{ r.carType }} | 47 | <h3 class="name flex">{{ r.carType }} |
| 48 | <div class="tagbox"> | 48 | <div class="tagbox"> |
| 49 | <span class="tag">{{r.carColor}}</span> | 49 | <span class="tag">{{r.carColor}}</span> |
| 50 | <span class="tag" v-show="r.checkOut==1">可送车</span> | 50 | <span class="tag" v-show="r.checkOut==1">{{ language==0?'可送车':'drop-off' }}</span> |
| 51 | <span class="tag" v-show="r.checkIn==1">可接车</span> | 51 | <span class="tag" v-show="r.checkIn==1">{{ language==0?'可接车':'pick-up' }}</span> |
| 52 | </div> | 52 | </div> |
| 53 | </h3> | 53 | </h3> |
| 54 | <div class="text-gray mt20"> | 54 | <div class="text-gray mt20"> | ... | ... |
| ... | @@ -3,10 +3,8 @@ | ... | @@ -3,10 +3,8 @@ |
| 3 | <div class="box"> | 3 | <div class="box"> |
| 4 | <el-card class="mt30" v-loading="loading"> | 4 | <el-card class="mt30" v-loading="loading"> |
| 5 | <el-row v-if="form" class="hotel" align="middle" :gutter="20"> | 5 | <el-row v-if="form" class="hotel" align="middle" :gutter="20"> |
| 6 | <!-- <el-col :span="6">--> | 6 | |
| 7 | <!-- <img class="w100" :src="fillImgUrl(form.photos?.split(',')[0])"/>--> | 7 | <el-col :lg="16" :sm="24"> |
| 8 | <!-- </el-col>--> | ||
| 9 | <el-col :span="16"> | ||
| 10 | <h3 class="esp flex">{{ form?.name }} | 8 | <h3 class="esp flex">{{ form?.name }} |
| 11 | </h3> | 9 | </h3> |
| 12 | 10 | ||
| ... | @@ -18,25 +16,18 @@ | ... | @@ -18,25 +16,18 @@ |
| 18 | {{ form?.addName }} | 16 | {{ form?.addName }} |
| 19 | </p> | 17 | </p> |
| 20 | </el-col> | 18 | </el-col> |
| 19 | <el-col :lg="8" :sm="24"> | ||
| 20 | <el-carousel height="120px"> | ||
| 21 | <el-carousel-item v-for="item in form.photos?.split(',')" :key="item"> | ||
| 22 | <el-image class="w100 h100" fit="contain" :src="fillImgUrl(item)"/> | ||
| 23 | </el-carousel-item> | ||
| 24 | </el-carousel> | ||
| 25 | </el-col> | ||
| 21 | </el-row> | 26 | </el-row> |
| 22 | <el-empty v-else :image="`/img/order_no.png`" :image-size="228" description=""/> | 27 | <el-empty v-else :image="`/img/order_no.png`" :image-size="228" description=""/> |
| 23 | </el-card> | 28 | </el-card> |
| 24 | 29 | ||
| 25 | <div class="mt30"> | 30 | <div class="mt30"> |
| 26 | <el-row :gutter="20"> | ||
| 27 | <el-col :span="10"> | ||
| 28 | <div class="imgbox hotelImg"> | ||
| 29 | <el-image :src="fillImgUrl(form?.photos?.split(',')[0])" fit="cover" :preview-src-list="form?.photos?.split(',')"/> | ||
| 30 | </div> | ||
| 31 | </el-col> | ||
| 32 | <el-col :span="14"> | ||
| 33 | <el-row class="h100" :gutter="20"> | ||
| 34 | <el-col :span="8" v-for="(p,index) in form?.photos?.split(',').slice(1,7)" style="height: calc(50% - 10px)"> | ||
| 35 | <div class="imgbox hotelImg"><el-image :src="fillImgUrl(p)" fit="cover" :preview-src-list="form?.photos?.split(',')"/></div> | ||
| 36 | </el-col> | ||
| 37 | </el-row> | ||
| 38 | </el-col> | ||
| 39 | </el-row> | ||
| 40 | </div> | 31 | </div> |
| 41 | 32 | ||
| 42 | <el-card class="mt30 mb60"> | 33 | <el-card class="mt30 mb60"> |
| ... | @@ -57,8 +48,8 @@ | ... | @@ -57,8 +48,8 @@ |
| 57 | <h3 class="name">{{ r.name }}<span class="text-primary">({{ r.categoryName }})</span></h3> | 48 | <h3 class="name">{{ r.name }}<span class="text-primary">({{ r.categoryName }})</span></h3> |
| 58 | <el-row :gutter="10"> | 49 | <el-row :gutter="10"> |
| 59 | <el-col :span="24"> | 50 | <el-col :span="24"> |
| 60 | <p>{{ language==0?'配送时间':'Delivery time' }}:{{ r.psStart }}~{{ r.psEnd }}</p> | 51 | <p>{{ language == 0 ? '配送时间' : 'Delivery time' }}:{{ r.psStart }}~{{ r.psEnd }}</p> |
| 61 | <p>{{ language==0?'配送地址':'Delivery address' }}:{{ r.address }}</p> | 52 | <p>{{ language == 0 ? '配送地址' : 'Delivery address' }}:{{ r.address }}</p> |
| 62 | </el-col> | 53 | </el-col> |
| 63 | </el-row> | 54 | </el-row> |
| 64 | </el-col> | 55 | </el-col> |
| ... | @@ -83,9 +74,9 @@ | ... | @@ -83,9 +74,9 @@ |
| 83 | </template> | 74 | </template> |
| 84 | 75 | ||
| 85 | <script setup> | 76 | <script setup> |
| 86 | import {useRouter,useRoute} from "vue-router"; | 77 | import {useRouter, useRoute} from "vue-router"; |
| 87 | import {ref, onMounted} from "vue"; | 78 | import {ref, onMounted} from "vue"; |
| 88 | import { getMenuById} from "@/apiPc/booking" | 79 | import {getMenuById} from "@/apiPc/booking" |
| 89 | import {useStorage} from "@vueuse/core/index"; | 80 | import {useStorage} from "@vueuse/core/index"; |
| 90 | import useUserStore from "@/store/modules/user"; | 81 | import useUserStore from "@/store/modules/user"; |
| 91 | import {fillImgUrl} from "@/utils/ruoyi"; | 82 | import {fillImgUrl} from "@/utils/ruoyi"; |
| ... | @@ -118,7 +109,7 @@ function getData() { | ... | @@ -118,7 +109,7 @@ function getData() { |
| 118 | var arr = [] | 109 | var arr = [] |
| 119 | m.photosList = [] | 110 | m.photosList = [] |
| 120 | arr = m.photos?.split(',') | 111 | arr = m.photos?.split(',') |
| 121 | for (var a of arr){ | 112 | for (var a of arr) { |
| 122 | m.photosList.push(fillImgUrl(a)) | 113 | m.photosList.push(fillImgUrl(a)) |
| 123 | } | 114 | } |
| 124 | m.num = 0 | 115 | m.num = 0 |
| ... | @@ -135,7 +126,7 @@ function getData() { | ... | @@ -135,7 +126,7 @@ function getData() { |
| 135 | 126 | ||
| 136 | function goOrder(n) { | 127 | function goOrder(n) { |
| 137 | if (!user) { | 128 | if (!user) { |
| 138 | useUserStore().setReLogin() | 129 | useUserStore().setVisitor() |
| 139 | return | 130 | return |
| 140 | } | 131 | } |
| 141 | router.push({ | 132 | router.push({ | ... | ... |
| ... | @@ -113,6 +113,7 @@ const canOrderNum = ref(0) | ... | @@ -113,6 +113,7 @@ const canOrderNum = ref(0) |
| 113 | const form = ref({ | 113 | const form = ref({ |
| 114 | num: 1, | 114 | num: 1, |
| 115 | phone: user.phonenumber||'', | 115 | phone: user.phonenumber||'', |
| 116 | total:0 | ||
| 116 | }) | 117 | }) |
| 117 | const rzRange = ref([]) | 118 | const rzRange = ref([]) |
| 118 | const rzUserArr = ref([]) | 119 | const rzUserArr = ref([]) |
| ... | @@ -126,11 +127,7 @@ onMounted(() => { | ... | @@ -126,11 +127,7 @@ onMounted(() => { |
| 126 | food.value = JSON.parse(decodeURIComponent(route.query.food)) | 127 | food.value = JSON.parse(decodeURIComponent(route.query.food)) |
| 127 | form.value = food.value | 128 | form.value = food.value |
| 128 | restaurant.value = JSON.parse(decodeURIComponent(route.query.restaurant)) | 129 | restaurant.value = JSON.parse(decodeURIComponent(route.query.restaurant)) |
| 129 | if(language.value == 0){ | 130 | form.value.total = 0 |
| 130 | form.value.total = food.value.foodPrice | ||
| 131 | } else { | ||
| 132 | form.value.total = food.value.foodPriceEn | ||
| 133 | } | ||
| 134 | console.log(food.value,restaurant.value) | 131 | console.log(food.value,restaurant.value) |
| 135 | initDays() | 132 | initDays() |
| 136 | const today = dayjs() | 133 | const today = dayjs() | ... | ... |
src/viewsPc/booking/payticket.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div style="min-height: 100vh"> | ||
| 3 | <div class="box" v-if="!errorBox"> | ||
| 4 | <el-card :body-style="{ padding: '0px' }" class="mt20 mb60"> | ||
| 5 | <div slot="header"> | ||
| 6 | <div class="bg-lineg">{{ language == 0 ? '缴费清单' : 'Payment List' }}</div> | ||
| 7 | </div> | ||
| 8 | <div v-if="isLogin"> | ||
| 9 | <div class="pd20"> | ||
| 10 | <div v-if="type == 'hotel'"> | ||
| 11 | <div class="leftboderTT">{{ language == 0 ? '酒店信息' : 'Hotel Information' }}</div> | ||
| 12 | <div class="border-info mt20"> | ||
| 13 | <h3>{{ form.hotelName }}</h3> | ||
| 14 | <el-row> | ||
| 15 | <el-col> | ||
| 16 | {{ language == 0 ?'地址':'Address' }}: | ||
| 17 | <span v-if="language == 0">{{ form.provinceName }} {{ form.cityName }} {{ form.areaName }} </span> | ||
| 18 | {{ form.address }} | ||
| 19 | </el-col> | ||
| 20 | <el-col> | ||
| 21 | {{ language == 0 ?'入住信息':'Check-in&Check-out' }}:{{ form.messageObj?.roomStayDate }} | ||
| 22 | </el-col> | ||
| 23 | <el-col> | ||
| 24 | {{ language == 0 ?'房间信息':'Room Information' }}:{{ form.messageObj?.roomName }} | {{ form.roomNum }} | ||
| 25 | {{ language == 0 ? '间':'rooms' }} | ||
| 26 | </el-col> | ||
| 27 | </el-row> | ||
| 28 | </div> | ||
| 29 | </div> | ||
| 30 | <div v-if="type == 'car'"> | ||
| 31 | <div class="leftboderTT">{{ language == 0 ? '路线信息' : 'Car Information' }}</div> | ||
| 32 | <div class="border-info mt20"> | ||
| 33 | <div class="flex aic"> | ||
| 34 | <h3 class="esp">{{ form.checkIn }}</h3> | ||
| 35 | <img class="w40px mlr20 " style="height: 40px;" src="@/assets/booking/wf.png"/> | ||
| 36 | <h3 class="esp">{{ form.checkOut }}</h3> | ||
| 37 | </div> | ||
| 38 | </div> | ||
| 39 | </div> | ||
| 40 | <div v-if="type == 'food'"> | ||
| 41 | <div class="leftboderTT">{{ language == 0 ? '饭店信息' : 'Restaurant Information' }}</div> | ||
| 42 | <div class="border-info mt20"> | ||
| 43 | <h3>{{ form.name }}</h3> | ||
| 44 | <!-- <p>{{ language == 0 ?'地址':'Address' }}:{{form.address}}</p>--> | ||
| 45 | <el-row> | ||
| 46 | <el-col :lg="12" :md="12" :sm="12" :xs="24"> | ||
| 47 | <div class="mb10">{{ language==0?'送餐地址':'Delivery Address' }}:{{ form.address || '-' }}</div> | ||
| 48 | </el-col> | ||
| 49 | <el-col :lg="12" :md="12" :sm="12" :xs="24"> | ||
| 50 | <div>{{ language==0?'送餐时间':'Delivery Time' }}:{{form.psStart}} ~ {{ form.psEnd}}</div> | ||
| 51 | </el-col> | ||
| 52 | </el-row> | ||
| 53 | </div> | ||
| 54 | </div> | ||
| 55 | <div v-if="type == 'makeUp'"> | ||
| 56 | <div class="leftboderTT">{{ language == 0 ? '化妆信息' : 'Hotel Information' }}</div> | ||
| 57 | <div class="border-info mt20"> | ||
| 58 | <h3>{{ formInfo.studioName }}</h3> | ||
| 59 | <el-row> | ||
| 60 | <el-col> | ||
| 61 | {{ language == 0 ?'地址':'Address' }}: | ||
| 62 | <span >{{ formInfo.remarks }} </span> | ||
| 63 | </el-col> | ||
| 64 | <el-col> | ||
| 65 | {{ language == 0 ?'套餐':'Package' }}:{{ formInfo.mealName }} <span style="margin-left: 40px">{{ language==0?'价格':'Price' }}</span><span class="price">{{language==0? '¥'+formInfo.mealPrice:'€'+ formInfo.mealPriceEn}}</span> | ||
| 66 | </el-col> | ||
| 67 | <el-col> | ||
| 68 | {{ language == 0 ?'套餐说明':'Package Description' }}:{{ formInfo.introduction}} | ||
| 69 | </el-col> | ||
| 70 | </el-row> | ||
| 71 | </div> | ||
| 72 | </div> | ||
| 73 | <div v-if="type == 'photography'"> | ||
| 74 | <div class="leftboderTT">{{ language == 0 ? '拍摄信息' : 'Shooting Information' }}</div> | ||
| 75 | <div class="border-info mt20"> | ||
| 76 | <h3>{{ formInfo.shootName }}</h3> | ||
| 77 | <el-row> | ||
| 78 | <el-col> | ||
| 79 | {{ language == 0 ?'地址':'Address' }}: | ||
| 80 | <span >{{ formInfo.remarks }} </span> | ||
| 81 | </el-col> | ||
| 82 | <el-col> | ||
| 83 | {{ language == 0 ?'套餐':'Package' }}:{{ formInfo.photoName }} <span style="margin-left: 40px">{{ language==0?'价格':'Price' }}</span><span class="price">{{language==0? '¥'+formInfo.photoPrice:'€'+ formInfo.photoPriceEn}}</span> | ||
| 84 | </el-col> | ||
| 85 | <el-col> | ||
| 86 | {{ language == 0 ?'套餐说明':'Package Description' }}:{{ formInfo.introduction}} | ||
| 87 | </el-col> | ||
| 88 | </el-row> | ||
| 89 | </div> | ||
| 90 | </div> | ||
| 91 | |||
| 92 | <div class="leftboderTT">{{ language == 0 ? '预订信息' : 'Booking information' }}</div> | ||
| 93 | |||
| 94 | <div class="border-info mt20"> | ||
| 95 | <el-row v-if="type == 'hotel'"> | ||
| 96 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 97 | <div>{{ language == 0 ?'入住人':'Check-in Person' }}:{{ form.rzUsers }}</div> | ||
| 98 | </el-col> | ||
| 99 | <el-col :lg="8" :md="12" :sm="12" :xs="24">{{ language == 0 ?'联系方式':'Contact Information' }}:{{ form.phone }}</el-col> | ||
| 100 | <el-col :lg="8" :md="12" :sm="12" :xs="24"></el-col> | ||
| 101 | </el-row> | ||
| 102 | <el-row v-if="type == 'car'"> | ||
| 103 | <el-col :lg="12" :md="12" :sm="12" :xs="24" v-if="form.pickUpBo?.revTime"> | ||
| 104 | <h4>{{ language == 0 ?'接站信息':'Pick-up Information' }}</h4> | ||
| 105 | <div class="st-info"> | ||
| 106 | <div>{{ language == 0 ?'用车时间':'Delivery Time' }}:{{ form.pickUpBo.revTime }}</div> | ||
| 107 | <div class="carLine" v-for="(car,index) in form.pickUpBo.carsList" :key="index"> | ||
| 108 | <div v-if="car.num > 0"> | ||
| 109 | <label>{{car.name}}</label> | ||
| 110 | <el-tag class="mr10">{{car.carSeat}} {{ language == 0 ?'座 ':'Sets'}}</el-tag> | ||
| 111 | <el-tag>{{car.carColor}}</el-tag> | ||
| 112 | </div> | ||
| 113 | |||
| 114 | <span v-if="car.num > 0"> {{car.num}}{{ language == 0 ?'辆':'Cars' }} * {{ language == 0 ?'¥':'€' }}{{car.price}}</span> | ||
| 115 | </div> | ||
| 116 | |||
| 117 | <div>{{ language == 0 ?'人数':'People' }}: {{form.pickUpBo.count}}</div> | ||
| 118 | <div>{{ language == 0 ?'航班/火车班次':'Flight/Train' }}: {{form.pickUpBo.no}}</div> | ||
| 119 | <div>{{ language == 0 ?'接机/接站地点':'Pick-up/Drop-off Place' }}: {{form.pickUpBo.noAddress}}</div> | ||
| 120 | <div>{{ language == 0 ?'送达地点':'Delivery Place' }}: {{form.pickUpBo.deliveryAddress}}</div> | ||
| 121 | <div>{{ language == 0 ?'联系人':'Contact Person' }}:{{ form.dropOffBo.contacts }}</div> | ||
| 122 | <div>{{ language == 0 ?'联系电话':'Contact Phone' }}:{{ form.dropOffBo.phone }}</div> | ||
| 123 | <div>{{ language == 0 ?'备注':'Remarks' }}:{{ form.dropOffBo.remarks ||'-'}}</div> | ||
| 124 | </div> | ||
| 125 | </el-col> | ||
| 126 | <el-col :lg="12" :md="12" :sm="12" :xs="24" v-if="form.dropOffBo?.revTime"> | ||
| 127 | <h4>{{ language == 0 ?'送站信息':'Drop-off Information' }}</h4> | ||
| 128 | <div class="st-info"> | ||
| 129 | <div>{{ language == 0 ?'用车时间':'Delivery Time' }}:{{ form.dropOffBo.revTime }}</div> | ||
| 130 | <div class="carLine" v-for="(car,index) in form.dropOffBo.carsList" :key="index"> | ||
| 131 | <div v-if="car.num > 0"> | ||
| 132 | <label>{{car.name}}</label> | ||
| 133 | <el-tag class="mr10">{{car.carSeat}} {{ language == 0 ?'座 ':'Sets'}}</el-tag> | ||
| 134 | <el-tag>{{car.carColor}}</el-tag> | ||
| 135 | </div> | ||
| 136 | |||
| 137 | <span v-if="car.num > 0"> {{car.num }}{{ language == 0 ?'辆':'Cars' }} * {{ language == 0 ? '¥' : '€' }}{{car.price}}</span> | ||
| 138 | </div> | ||
| 139 | <div>{{ language == 0 ?'人数':'Counts' }}:{{ form.dropOffBo.count }}</div> | ||
| 140 | <div>{{ language == 0 ?'联系人':'Contact Person' }}:{{ form.dropOffBo.contacts }}</div> | ||
| 141 | <div>{{ language == 0 ?'联系电话':'Contact Phone' }}:{{ form.dropOffBo.phone }}</div> | ||
| 142 | <div>{{ language == 0 ?'备注':'Remarks' }}:{{ form.dropOffBo.remarks ||'-'}}</div> | ||
| 143 | </div> | ||
| 144 | </el-col> | ||
| 145 | </el-row> | ||
| 146 | <el-row v-if="type == 'food'"> | ||
| 147 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 148 | <div v-for="f in form.messageObj?.foodsList"> | ||
| 149 | <span v-if="f.category==0">{{language==0?'早餐':'Breakfast'}}</span> | ||
| 150 | <span v-if="f.category==1">{{language==0?'午餐':'Lunch'}}</span> | ||
| 151 | <span v-if="f.category==2">{{language==0?'晚餐':'Dinner'}}</span> | ||
| 152 | : {{f.name}} * {{f.num}} {{language==0?'份':'pcs'}} | ||
| 153 | </div> | ||
| 154 | </el-col> | ||
| 155 | <el-col :lg="12" :md="12" :sm="12" :xs="24"> | ||
| 156 | <div class="mb10">{{ language==0?'订餐周期':'Check-in date' }}:{{ form.extJsonObj?.dcStart || '-' }} ~ {{form.extJsonObj?.dcEnd|| '-'}}</div> | ||
| 157 | </el-col> | ||
| 158 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 159 | <div class="mb10">{{ language==0?'联系人':'Contact Person' }}:{{ form.contacts }}</div> | ||
| 160 | </el-col> | ||
| 161 | <el-col :lg="8" :md="12" :sm="12" :xs="24">{{ language==0?'联系方式':'Contact Phone' }}:{{ form.phone }}</el-col> | ||
| 162 | <el-col :span="24" >{{ language==0?'备注':'Remarks' }}:{{ form.remarks || '-' }}</el-col> | ||
| 163 | </el-row> | ||
| 164 | <el-row v-if="type == 'makeUp'"> | ||
| 165 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 166 | <div class="mb10">{{ language==0?'化妆时间':'Makeup time' }}: | ||
| 167 | <!-- {{ dayjs(form.dcStart).format('YYYY-MM-DD') +' ' }} ~ {{dayjs(form.dcStart).format('YYYY-MM-DD') +' '}}--> | ||
| 168 | {{ dayjs(form.dcStart).format('YYYY-MM-DD') +' '+ form.nameStart }} ~ {{dayjs(form.dcStart).format('YYYY-MM-DD') +' '+form.nameEnd}} | ||
| 169 | </div> | ||
| 170 | </el-col> | ||
| 171 | <el-col :lg="12" :md="12" :sm="12" :xs="24"> | ||
| 172 | <div class="mb10">{{ language==0?'预约数':'Number of appointments' }}:{{ form.num }} </div> | ||
| 173 | </el-col> | ||
| 174 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 175 | <div class="mb10">{{ language==0?'联系人':'Contact Person' }}:{{ form.contacts }}</div> | ||
| 176 | </el-col> | ||
| 177 | <el-col :lg="8" :md="12" :sm="12" :xs="24">{{ language==0?'联系方式':'Contact Phone' }}:{{ form.phone }}</el-col> | ||
| 178 | <el-col :span="24" >{{ language==0?'备注':'Remarks' }}:{{ form.remarks }}</el-col> | ||
| 179 | </el-row> | ||
| 180 | <el-row v-if="type == 'photography'"> | ||
| 181 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 182 | <div class="mb10">{{ language==0?'拍摄时间':'Makeup time' }}: | ||
| 183 | {{ dayjs(form.dcStart).format('YYYY-MM-DD') +' '+ form.nameStart }} ~ {{dayjs(form.dcStart).format('YYYY-MM-DD') +' '+form.nameEnd}} | ||
| 184 | </div> | ||
| 185 | </el-col> | ||
| 186 | <el-col :lg="12" :md="12" :sm="12" :xs="24"> | ||
| 187 | <div class="mb10">{{ language==0?'预约数':'Number of appointments' }}:{{ form.num }} </div> | ||
| 188 | </el-col> | ||
| 189 | <el-col :lg="8" :md="12" :sm="12" :xs="24"> | ||
| 190 | <div class="mb10">{{ language==0?'联系人':'Contact Person' }}:{{ form.contacts }}</div> | ||
| 191 | </el-col> | ||
| 192 | <el-col :lg="8" :md="12" :sm="12" :xs="24">{{ language==0?'联系方式':'Contact Phone' }}:{{ form.phone }}</el-col> | ||
| 193 | <el-col :span="24" >{{ language==0?'备注':'Remarks' }}:{{ form.remarks }}</el-col> | ||
| 194 | </el-row> | ||
| 195 | </div> | ||
| 196 | |||
| 197 | <el-row justify="space-between" align="middle"> | ||
| 198 | <el-col :lg="12"> | ||
| 199 | <div v-if="form.payDate">{{ language == 0 ? '支付时间' : 'Payment Time' }}:{{form.payDate}}</div> | ||
| 200 | <div class="mt10" v-if="form.payDate">{{ language == 0 ? '支付方式':'Payment Method'}}: | ||
| 201 | <span v-if="form.paymentType=='1'">{{language==0?'微信支付':'WePay'}}</span> | ||
| 202 | <span v-if="form.paymentType=='3'">PayPal</span> | ||
| 203 | </div> | ||
| 204 | </el-col> | ||
| 205 | <el-col :lg="12" class="result"> | ||
| 206 | <div class="priceb" v-if="form.viewStatus=='0'">{{ language == 0 ? '待支付金额' : 'Amount Due' }}: | ||
| 207 | <span class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span> | ||
| 208 | </div> | ||
| 209 | <div class="priceb" v-if="form.viewStatus=='1'||form.viewStatus=='5'">{{ language == 0 ? '已支付金额' : 'Amount Due' }}: | ||
| 210 | <span class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span> | ||
| 211 | </div> | ||
| 212 | <div class="priceb" v-if="form.viewStatus=='4'">{{ language == 0 ? '已退订' : 'Refunded' }}: | ||
| 213 | <span class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span> | ||
| 214 | </div> | ||
| 215 | <div class="priceb" v-if="form.viewStatus=='2'">{{ language == 0 ? '已取消' : 'Canceled' }}: | ||
| 216 | <span class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span> | ||
| 217 | </div> | ||
| 218 | <div class="priceb" v-if="form.viewStatus=='7'">{{ language == 0 ? '退款审核中' : 'Refund in review' }}: | ||
| 219 | <span class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span> | ||
| 220 | </div> | ||
| 221 | </el-col> | ||
| 222 | </el-row> | ||
| 223 | </div> | ||
| 224 | </div> | ||
| 225 | <div v-else class="pd20 skeletonBox"> | ||
| 226 | <el-skeleton :rows="8"/> | ||
| 227 | <el-button type="primary" class="btn-lineG" size="large" :style="language == 0 ?'width:200px':'width:400px'" | ||
| 228 | round @click="showLogin"> | ||
| 229 | {{ language == 0 ? '登录后查看明细' : 'View detailed information after logging in' }} | ||
| 230 | </el-button> | ||
| 231 | </div> | ||
| 232 | |||
| 233 | <div class="pd20" v-if="form.viewStatus == '0'&&(form.surplus!='0,0'&&form.surplus!='0')"> | ||
| 234 | |||
| 235 | <div class="leftboderTT">{{ language == 0 ? '选择支付方式' : 'Choose payment method' }}</div> | ||
| 236 | <div class="mt20"> | ||
| 237 | <el-radio-group v-model="payType" > | ||
| 238 | <el-radio value="2" v-if="language==0" border> | ||
| 239 | <!-- 微信--> | ||
| 240 | <svg t="1709002960407" class="icon" viewBox="0 0 3152 1024" version="1.1" | ||
| 241 | xmlns="http://www.w3.org/2000/svg" p-id="24747" width="94" height="40"> | ||
| 242 | <path | ||
| 243 | d="M381.998922 630.960647c-4.416173 2.208086-8.832345 3.312129-14.352561 3.312129-12.144474 0-22.080863-7.17628-28.1531-17.66469l-2.208086-4.968194-87.771428-204.247978c-1.104043-2.208086-1.104043-4.416173-1.104043-6.624259 0-9.384367 6.624259-16.560647 15.456603-16.560647 3.312129 0 6.624259 1.104043 9.936388 3.312129l103.780054 78.387062c7.728302 4.968194 16.560647 8.280323 26.497035 8.280324 5.520216 0 11.040431-1.104043 16.560647-3.312129l486.330998-230.192992C819.752022 131.381132 676.226415 60.17035 513.380054 60.17035 248.409704 59.618329 32.017251 250.61779 32.017251 486.883019c0 128.069003 64.586523 244.545553 166.15849 322.932614 7.728302 6.072237 13.248518 16.560647 13.248518 27.601079 0 3.312129-1.104043 7.17628-2.208086 10.488409-7.728302 32.017251-20.976819 84.459299-20.97682 86.667386-1.104043 3.312129-2.208086 8.280323-2.208086 13.248517 0 9.384367 6.624259 16.560647 15.456604 16.560647 3.312129 0 6.624259-1.104043 8.832345-3.312129l104.884097-65.138545c7.728302-4.968194 16.560647-8.280323 25.392992-8.280323 4.416173 0 9.936388 1.104043 14.35256 2.208086 49.129919 15.456604 102.676011 23.736927 157.326146 23.736927 265.522372 0 481.362803-191.551482 481.362803-427.816711 0-71.210782-19.872776-139.109434-54.650135-198.175741L385.863073 628.752561l-3.864151 2.208086z" | ||
| 244 | fill="#09BB07" p-id="24748"></path> | ||
| 245 | <path | ||
| 246 | d="M1398.822642 381.998922c-9.384367 19.320755-20.424798 38.641509-32.017251 57.962264v263.866307h-31.465229V485.226954c-13.248518 18.216712-27.049057 34.225337-40.297574 48.025876-3.864151-7.17628-14.352561-23.736927-20.424798-30.361186 34.777358-33.673315 71.210782-82.803235 93.843666-131.933153l30.361186 11.040431z m-8.280324-91.63558c-22.632884 36.985445-59.066307 78.939084-91.635579 105.98814-4.416173-7.17628-13.248518-19.320755-19.320755-25.945013 29.809164-23.736927 62.378437-61.274394 78.939083-92.187601l32.017251 12.144474z m181.615094 289.811321c1.656065 7.728302 6.072237 19.320755 8.832345 24.84097-55.754178 37.537466-66.242588 46.369811-72.866846 54.650135-1.656065-7.728302-8.280323-22.080863-12.696496-28.705121 4.968194-3.312129 12.696496-10.48841 12.696496-28.705121v-54.098114h-60.17035v27.049057c0 38.641509-7.728302 91.083558-42.505661 128.069003-4.416173-7.17628-16.560647-19.320755-22.632884-23.184906 29.809164-31.465229 34.225337-72.866846 34.225337-105.436119v-54.098113h118.684636v82.251213l36.433423-22.632884z m123.100809-176.094879c-9.384367 73.970889-23.184906 136.349326-48.025876 187.687332 16.560647 36.433423 39.193531 66.242588 67.346631 83.355256-7.17628 6.072237-17.112668 18.216712-22.632884 27.049057-25.945013-18.216712-46.369811-45.265768-62.930459-78.939084-20.424798 32.017251-45.81779 59.066307-78.939083 81.699191-3.864151-6.624259-13.248518-19.872776-19.872776-25.392992 36.985445-22.632884 64.034501-52.99407 83.907277-89.979514-12.696496-34.777358-22.080863-73.418868-28.705121-115.372507-4.968194 11.040431-10.48841 22.632884-16.560647 31.465229-3.864151-4.416173-10.48841-13.248518-17.112668-20.424798v5.520216h-154.014017v-29.809165h154.014017v9.384367c24.84097-49.129919 37.537466-118.684636 44.713746-191.551483l31.465229 4.968195c-3.864151 31.465229-8.280323 61.274394-13.800539 90.531536h96.051752v29.809164h-14.904582z m-142.973585 22.632884h-145.181671v-110.404312h24.84097v82.251213h35.32938V278.770889h26.497035v119.78868h33.673316V316.308356h25.392992v110.404312z m55.202156-22.632884c-1.656065 6.624259-3.312129 12.696496-4.416172 18.768734 6.072237 46.369811 14.904582 91.083558 28.1531 130.277088 16.560647-43.057682 26.497035-91.63558 32.569272-149.045822h-56.3062zM1882.393531 289.259299c-10.48841 31.465229-24.288949 62.378437-39.193531 91.63558v324.036657h-32.017251V437.201078c-13.800539 22.632884-29.257143 42.50566-44.161725 60.170351-3.312129-7.728302-13.248518-24.288949-19.320754-32.017251 41.953639-45.265768 80.043127-114.820485 103.780053-184.927224l30.913208 8.832345z m288.707278 65.690566v29.257143h-294.779515v-29.257143h294.779515z m-267.730459 199.831806h235.713208v147.941779h-30.913208v-16.560647h-174.438814v18.216712h-30.361186v-149.597844z m231.297035-104.332075H1909.994609v-28.1531h224.672776v28.1531zM1909.994609 486.883019h224.672776v28.1531H1909.994609v-28.1531z m23.736927 96.603773V656.90566h174.438814v-73.418868h-174.438814z m81.699192-231.297035c-6.072237-16.560647-20.424798-43.057682-32.017251-61.826415l29.257143-12.144474c13.248518 19.320755 27.601078 44.161725 34.225337 60.722372l-31.465229 13.248517zM2586.221024 468.114286c-26.497035 63.48248-69.002695 111.508356-122.548787 147.941779 50.785984 25.945013 110.956334 43.609704 180.511051 52.442048-7.728302 8.280323-16.560647 23.184906-21.528841 33.673316-75.074933-11.592453-139.661456-32.569272-192.655525-64.034502-57.962264 32.017251-125.308895 52.99407-195.415634 66.794609-3.312129-9.384367-12.696496-25.392992-19.320754-33.121293 66.242588-10.48841 129.173046-28.1531 183.271159-55.202157-44.161725-32.017251-78.939084-72.866846-103.780054-123.65283l10.48841-3.864151h-49.12992v-34.225337h155.670081V383.654987h-176.6469v-34.225337h176.6469V278.770889h35.32938v70.658761h177.750944v34.225337h-177.750944v71.210781H2555.859838l7.176281-1.656064 23.184905 14.904582z m-255.033962 20.976819c23.184906 43.609704 56.858221 80.043127 100.467925 108.748248 44.161725-28.1531 80.043127-63.48248 104.332075-108.748248h-204.8zM2834.630728 292.571429c-13.800539 34.777358-30.361186 69.554717-49.129919 101.571967v308.580054h-34.225337V447.689488c-14.904582 20.976819-31.465229 40.297574-46.921833 56.306199-4.416173-7.728302-14.904582-25.945013-21.528841-34.225337 47.473854-45.265768 91.63558-115.924528 118.132614-188.239353l33.673316 11.040432z m270.490566 123.65283h-58.514286v240.12938c0 25.945013-7.728302 36.985445-24.84097 41.953639-18.216712 5.520216-49.129919 6.072237-99.915903 5.520215-1.656065-8.832345-8.280323-24.84097-13.248518-34.225337 39.193531 1.656065 77.283019 1.656065 88.32345 1.104043 10.48841-1.104043 14.352561-3.864151 14.352561-14.35256V416.224259h-187.687332v-34.225337h187.687332V283.739084h34.777359v97.707816h58.514285v34.777359z m-184.375202 178.854986c-13.800539-28.705121-43.609704-78.939084-67.346631-115.924528l29.809164-13.800539c24.288949 35.881402 55.202156 84.459299 70.106739 112.612399l-32.569272 17.112668z" | ||
| 247 | fill="#595757" p-id="24749"></path> | ||
| 248 | </svg> | ||
| 249 | </el-radio> | ||
| 250 | <el-radio value="3" v-if="language==1" border> | ||
| 251 | <!--paypal--> | ||
| 252 | <svg t="1709002828937" class="icon" viewBox="0 0 4220 1024" version="1.1" | ||
| 253 | xmlns="http://www.w3.org/2000/svg" p-id="22654" width="94" height="40"> | ||
| 254 | <path | ||
| 255 | d="M3249.722604 229.409369h-232.537679c-15.641548 0-29.197556 11.470468-32.325865 27.112016l-93.849287 595.421589c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h118.875764c11.470468 0 20.855397-8.342159 21.898167-18.769858l27.112016-168.928717c2.08554-15.641548 15.641548-27.112016 32.325866-27.112016h72.99389c153.287169 0 240.879837-74.03666 263.820774-221.06721 10.427699-63.608961 0-114.704684-29.197556-150.158859-31.283096-38.582485-89.678208-58.395112-167.885947-58.395112z m27.112016 216.89613c-12.513238 83.421589-76.1222 83.421589-137.645621 83.421589h-35.454175l25.026476-155.372709c1.04277-9.384929 9.384929-16.684318 18.769858-16.684318h15.641547c41.710794 0 81.336049 0 102.191447 23.983707 12.513238 14.598778 15.641548 35.454175 11.470468 64.651731z" | ||
| 256 | fill="#009CDE" p-id="22655"></path> | ||
| 257 | <path | ||
| 258 | d="M1594.84684 229.409369h-232.537678c-15.641548 0-29.197556 11.470468-32.325866 27.112016l-93.849287 595.421589c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h110.533605c15.641548 0 29.197556-11.470468 32.325866-27.112017l25.026476-160.586558c2.08554-15.641548 15.641548-27.112016 32.325866-27.112016h72.99389c153.287169 0 240.879837-74.03666 263.820774-221.06721 10.427699-63.608961 0-114.704684-29.197556-150.158859-31.283096-38.582485-89.678208-58.395112-167.885947-58.395112z m27.112016 216.89613c-12.513238 83.421589-76.1222 83.421589-137.645621 83.421589h-35.454175l25.026476-155.372709c1.04277-9.384929 9.384929-16.684318 18.769858-16.684318h15.641548c41.710794 0 81.336049 0 102.191446 23.983707 12.513238 14.598778 15.641548 35.454175 11.470468 64.651731zM2288.288795 443.177189h-111.576375c-9.384929 0-17.727088 7.299389-18.769857 16.684318l-5.213849 31.283096-7.299389-11.470469c-23.983707-34.411405-77.164969-46.924644-131.389002-46.924643-123.046843 0-227.323829 92.806517-248.179226 223.152749-10.427699 64.651731 4.171079 127.217923 41.710794 171.014257 34.411405 39.625255 82.378819 56.309572 139.731161 56.309572 99.063136 0 153.287169-63.608961 153.287169-63.608961l-5.21385 31.283096c-2.08554 11.470468 7.299389 21.898167 18.769858 21.898167h100.105906c15.641548 0 29.197556-11.470468 32.325866-27.112017l60.480652-380.610998c2.08554-10.427699-6.256619-21.898167-18.769858-21.898167z m-154.329939 216.896131c-10.427699 63.608961-61.523422 106.362525-125.132383 106.362525-32.325866 0-58.395112-10.427699-75.079429-30.240326-16.684318-19.812627-22.940937-46.924644-17.727088-78.207739 10.427699-62.566191 61.523422-107.405295 124.089613-107.405295 31.283096 0 57.352342 10.427699 74.03666 30.240326 17.727088 20.855397 25.026477 47.967413 19.812627 79.250509z" | ||
| 259 | fill="#003087" p-id="22656"></path> | ||
| 260 | <path | ||
| 261 | d="M3943.164559 443.177189h-111.576375c-9.384929 0-17.727088 7.299389-18.769857 16.684318l-5.21385 31.283096-7.299389-11.470469c-23.983707-34.411405-77.164969-46.924644-131.389002-46.924643-123.046843 0-227.323829 92.806517-248.179226 223.152749-10.427699 64.651731 4.171079 127.217923 41.710795 171.014257 34.411405 39.625255 82.378819 56.309572 139.73116 56.309572 99.063136 0 153.287169-63.608961 153.28717-63.608961l-5.21385 31.283096c-2.08554 11.470468 7.299389 21.898167 18.769858 21.898167h100.105906c15.641548 0 29.197556-11.470468 32.325866-27.112017l60.480651-380.610998c2.08554-10.427699-6.256619-21.898167-18.769857-21.898167z m-154.329939 216.896131c-10.427699 63.608961-61.523422 106.362525-125.132383 106.362525-32.325866 0-58.395112-10.427699-75.07943-30.240326-16.684318-19.812627-22.940937-46.924644-17.727087-78.207739 10.427699-62.566191 61.523422-107.405295 124.089613-107.405295 31.283096 0 57.352342 10.427699 74.03666 30.240326 17.727088 20.855397 25.026477 47.967413 19.812627 79.250509z" | ||
| 262 | fill="#009CDE" p-id="22657"></path> | ||
| 263 | <path | ||
| 264 | d="M2880.582074 443.177189h-111.576375c-10.427699 0-20.855397 5.213849-27.112016 14.598778l-154.329939 227.323829-65.694501-217.9389c-4.171079-13.556008-16.684318-22.940937-31.283096-22.940937h-109.490835c-13.556008 0-22.940937 13.556008-18.769857 26.069247l123.046843 360.79837-115.747454 162.672098c-9.384929 12.513238 0 30.240326 15.641548 30.240326h111.576375c10.427699 0 20.855397-5.213849 26.069246-13.556008l371.226069-535.983707c11.470468-13.556008 2.08554-31.283096-13.556008-31.283096z" | ||
| 265 | fill="#003087" p-id="22658"></path> | ||
| 266 | <path | ||
| 267 | d="M4074.553561 245.050916l-94.892057 605.849288c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h95.934827c15.641548 0 29.197556-11.470468 32.325866-27.112017l93.849287-595.421588c2.08554-11.470468-7.299389-21.898167-18.769857-21.898167h-107.405296c-10.427699 1.04277-18.769857 7.299389-19.812627 16.684317z" | ||
| 268 | fill="#009CDE" p-id="22659"></path> | ||
| 269 | <path | ||
| 270 | d="M782.529121 259.649695c12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l-13.556008 85.507128c-2.08554 14.598778 9.384929 27.112016 23.983707 27.112016h165.800407c19.812627 0 36.496945-14.598778 39.625255-33.368635l2.08554-8.342159 31.283095-198.126273 2.08554-10.427699c3.12831-19.812627 19.812627-33.368635 39.625255-33.368635h25.026476c160.586558 0 285.718941-64.651731 322.215886-253.393075 15.641548-79.250509 7.299389-144.94501-33.368635-190.826884-12.513238-13.556008-28.154786-26.069246-45.881874-35.454175" | ||
| 271 | fill="#009CDE" p-id="22660"></path> | ||
| 272 | <path | ||
| 273 | d="M782.529121 259.649695c12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l49.010184-312.830958-1.04277 9.384929c3.12831-21.898167 21.898167-38.582485 44.839104-38.582485h93.849287c183.527495 0 327.429735-74.03666 369.140529-289.89002l3.12831-18.769857" | ||
| 274 | fill="#012169" p-id="22661"></path> | ||
| 275 | <path | ||
| 276 | d="M326.838693 260.692464c2.08554-13.556008 10.427699-23.983707 21.898167-30.240326 5.213849-2.08554 11.470468-4.171079 16.684318-4.171079h250.264766c29.197556 0 57.352342 2.08554 82.378819 6.256619 7.299389 1.04277 14.598778 2.08554 20.855397 4.17108 7.299389 1.04277 13.556008 3.12831 19.812627 5.213849l9.384929 3.128309c12.513238 4.171079 23.983707 9.384929 34.411405 14.598779 12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l49.010184-312.830958L326.838693 260.692464z" | ||
| 277 | fill="#003087" p-id="22662"></path> | ||
| 278 | </svg> | ||
| 279 | </el-radio> | ||
| 280 | </el-radio-group> | ||
| 281 | <div v-if="payType == '2'&&wePayCodeUrl"> | ||
| 282 | <div class="payImgbox flexCenter"> | ||
| 283 | <div> | ||
| 284 | <img width="260" class="border" :src="wePayCodeUrl"/> | ||
| 285 | <img class="mt20" src="@/assets/img/sm.png"/> | ||
| 286 | </div> | ||
| 287 | <div class="ml20"> | ||
| 288 | <img height="360" src="@/assets/img/rr.jpg"/> | ||
| 289 | </div> | ||
| 290 | </div> | ||
| 291 | <div class="tip text-center text-danger" v-if="language==0"> | ||
| 292 | 支付后不要关闭此窗口,等待确认支付成功. | ||
| 293 | 若长时间未收到支付成功提醒,请刷新页面 | ||
| 294 | </div> | ||
| 295 | <div class="tip text-center text-danger" v-else> | ||
| 296 | After payment, do not close this window and wait for confirmation of successful payment. | ||
| 297 | <br/> | ||
| 298 | If you have not received a notification of successful payment for a long time, | ||
| 299 | please refresh the page | ||
| 300 | </div> | ||
| 301 | </div> | ||
| 302 | </div> | ||
| 303 | </div> | ||
| 304 | <el-row class="mt20 mb60" align="middle" justify="center"> | ||
| 305 | <el-col :span="24" class="text-center"> | ||
| 306 | <el-button v-if="!hideconfirmbtn&&form.viewStatus == '0'" type="primary" @click="goPay" round class="btn-lineG w200px"> | ||
| 307 | {{ language == 0 ? '确定' : 'Submit' }} | ||
| 308 | </el-button> | ||
| 309 | <el-button round @click="unsubscribe" v-if="form.viewStatus == '5'">{{ language==0?'退订':'Unsubscribe' }}</el-button> | ||
| 310 | <el-button link class="underline" @click="cancel" v-if="form.viewStatus == '0'"> | ||
| 311 | {{ language==0?'取消订单':'Cancel Order' }} | ||
| 312 | </el-button> | ||
| 313 | </el-col> | ||
| 314 | </el-row> | ||
| 315 | |||
| 316 | <div v-if="form.payDate&&form.viewStatus=='1'"> | ||
| 317 | <div class="text-center"> | ||
| 318 | <el-icon color="#32B16C" size="80"> | ||
| 319 | <SuccessFilled/> | ||
| 320 | </el-icon> | ||
| 321 | <p class="text-success">{{ language == 0 ? '支付成功' : 'successful!' }}</p> | ||
| 322 | <h3 class="wePrice">{{ language == 0 ? '¥' : '€' }}{{ totalFee || 0 }}</h3> | ||
| 323 | </div> | ||
| 324 | </div> | ||
| 325 | </el-card> | ||
| 326 | </div> | ||
| 327 | |||
| 328 | <div class="box" v-if="errorBox"> | ||
| 329 | <el-result | ||
| 330 | icon="error" | ||
| 331 | :title="language==0?'未找到对应订单':'No corresponding order found'" | ||
| 332 | :sub-title="language==0?'请确认订单号是否正确':'Please confirm if the order number is correct'" | ||
| 333 | > | ||
| 334 | <template #extra> | ||
| 335 | <el-button type="primary" @click="goHome" class="btn-lineG w200px" round> | ||
| 336 | {{ language == 0 ? '返回首页' : 'Home' }} | ||
| 337 | </el-button> | ||
| 338 | </template> | ||
| 339 | </el-result> | ||
| 340 | </div> | ||
| 341 | </div> | ||
| 342 | </template> | ||
| 343 | |||
| 344 | <script setup> | ||
| 345 | import {Search} from "@element-plus/icons-vue" | ||
| 346 | import {getCurrentInstance, ref} from 'vue' | ||
| 347 | import {onMounted} from "@vue/runtime-core" | ||
| 348 | import {useRoute, useRouter} from "vue-router" | ||
| 349 | import * as booking from "@/apiPc/booking" | ||
| 350 | import MatchInfoRow from "@/viewsPc/match/components/matchInfo-row"; | ||
| 351 | |||
| 352 | const {proxy} = getCurrentInstance() | ||
| 353 | const route = useRoute() | ||
| 354 | const router = useRouter() | ||
| 355 | const matchInfo = ref({}) | ||
| 356 | const approved = ref(true) | ||
| 357 | const tableData = ref([]) | ||
| 358 | const payType = ref('2') | ||
| 359 | const orderId = ref(route.query.orderId) | ||
| 360 | const matchId = ref() | ||
| 361 | const groupId = ref() | ||
| 362 | import useUserStore from "@/store/modules/user"; | ||
| 363 | import FileUpload from "@/components/FileUpload"; | ||
| 364 | import {useStorage} from "@vueuse/core/index"; | ||
| 365 | import {ElMessage} from "element-plus"; | ||
| 366 | import { | ||
| 367 | cancelOrder, | ||
| 368 | cancelOrder2, | ||
| 369 | getCarBilldetailbyId, | ||
| 370 | getFoodBilldetailbyId, | ||
| 371 | getMealOrderInfoByLogex, getPhotoOrderInfo, getPhotoOrderInfoByLogex | ||
| 372 | } from "@/apiPc/booking"; | ||
| 373 | import dayjs from 'dayjs' | ||
| 374 | import {delPerson} from "@/api/exam/person"; | ||
| 375 | |||
| 376 | const isLogin = ref(false) | ||
| 377 | const language = useStorage('language', 0) | ||
| 378 | const totalFee = ref('') | ||
| 379 | const wePayCodeUrl = ref('') | ||
| 380 | const form = ref({}) | ||
| 381 | const formInfo=ref({}) | ||
| 382 | const type = ref('') | ||
| 383 | const errorBox = ref(false) | ||
| 384 | const hideconfirmbtn = ref(false) | ||
| 385 | |||
| 386 | const user = useUserStore().user | ||
| 387 | if (useUserStore().user) { | ||
| 388 | isLogin.value = true | ||
| 389 | } | ||
| 390 | onMounted(() => { | ||
| 391 | if (language.value == 0) { | ||
| 392 | payType.value = '2' | ||
| 393 | } else { | ||
| 394 | payType.value = '3' | ||
| 395 | } | ||
| 396 | if(route.query.type){ | ||
| 397 | type.value = route.query.type | ||
| 398 | } | ||
| 399 | if(route.query.orderType){ | ||
| 400 | switch (route.query.orderType){ | ||
| 401 | case '0': | ||
| 402 | type.value = 'hotel' | ||
| 403 | break | ||
| 404 | case '1': | ||
| 405 | type.value = 'car' | ||
| 406 | break | ||
| 407 | case '2': | ||
| 408 | type.value = 'food' | ||
| 409 | break | ||
| 410 | case '3': | ||
| 411 | type.value = 'makeUp' | ||
| 412 | break | ||
| 413 | case '4': | ||
| 414 | type.value = 'photography' | ||
| 415 | break | ||
| 416 | } | ||
| 417 | } | ||
| 418 | |||
| 419 | getData() | ||
| 420 | }) | ||
| 421 | |||
| 422 | function getData() { | ||
| 423 | if(type.value=='car') { | ||
| 424 | return booking.getCarBilldetailbyId({orderId: orderId.value}).then(res => { | ||
| 425 | form.value = res.data | ||
| 426 | if(language.value==0){ | ||
| 427 | totalFee.value = res.data.total | ||
| 428 | } else { | ||
| 429 | totalFee.value = res.data.totalEn | ||
| 430 | } | ||
| 431 | }).catch(err => { | ||
| 432 | console.log(err) | ||
| 433 | errorBox.value = true | ||
| 434 | }) | ||
| 435 | } | ||
| 436 | if(type.value=='food') { | ||
| 437 | return booking.getFoodBilldetailbyId({orderId: orderId.value}).then(res => { | ||
| 438 | if(language.value==0){ | ||
| 439 | totalFee.value = res.data.total | ||
| 440 | } else { | ||
| 441 | totalFee.value = res.data.totalEn | ||
| 442 | } | ||
| 443 | form.value = res.data | ||
| 444 | form.value.messageObj = JSON.parse(form.value.message) | ||
| 445 | form.value.extJsonObj = JSON.parse(form.value.extJson) | ||
| 446 | console.log(form.value) | ||
| 447 | }) | ||
| 448 | } | ||
| 449 | if(type.value=='hotel') { | ||
| 450 | return booking.getRoomBilldetailbyId({orderId: orderId.value}).then(res => { | ||
| 451 | if(language.value==0){ | ||
| 452 | totalFee.value = res.data.total | ||
| 453 | } else { | ||
| 454 | totalFee.value = res.data.totalEn | ||
| 455 | } | ||
| 456 | form.value = res.data | ||
| 457 | form.value.messageObj = JSON.parse(form.value.message) || {} | ||
| 458 | form.value.extJsonObj = JSON.parse(form.value.extJson) || {} | ||
| 459 | matchId.value = form.value.extJsonObj?.activeId | ||
| 460 | }).catch(err => { | ||
| 461 | console.log(err) | ||
| 462 | errorBox.value = true | ||
| 463 | }) | ||
| 464 | } | ||
| 465 | if(type.value=='makeUp') { | ||
| 466 | MakeUpOrder() | ||
| 467 | // MakeUpIno() | ||
| 468 | } | ||
| 469 | if(type.value=='photography') { | ||
| 470 | photographyOrder() | ||
| 471 | // photographyInfo() | ||
| 472 | } | ||
| 473 | |||
| 474 | console.log(payType.value) | ||
| 475 | } | ||
| 476 | |||
| 477 | function goHome() { | ||
| 478 | router.push('/') | ||
| 479 | } | ||
| 480 | |||
| 481 | function goPay() { | ||
| 482 | if (payType.value == '2') { | ||
| 483 | booking.createWePay({orderId: orderId.value}).then(res => { | ||
| 484 | wePayCodeUrl.value = res.data | ||
| 485 | hideconfirmbtn.value = true | ||
| 486 | startforGetData() | ||
| 487 | }) | ||
| 488 | } | ||
| 489 | if (payType.value == '3') { | ||
| 490 | booking.createPalPay({orderId: orderId.value}).then(res => { | ||
| 491 | if (res.data) { | ||
| 492 | location.href = res.data | ||
| 493 | } | ||
| 494 | }) | ||
| 495 | } | ||
| 496 | } | ||
| 497 | |||
| 498 | let handle; | ||
| 499 | |||
| 500 | function startforGetData() { | ||
| 501 | handle = setTimeout(() => { | ||
| 502 | if (type.value=='photography'){ | ||
| 503 | photographyOrder().then(res=>{ | ||
| 504 | if (form.value.payDate) { | ||
| 505 | if (handle) { | ||
| 506 | clearTimeout(handle) | ||
| 507 | handle = null | ||
| 508 | } | ||
| 509 | } else { | ||
| 510 | startforGetData() | ||
| 511 | } | ||
| 512 | }) | ||
| 513 | }else if(type.value=='makeUp'){ | ||
| 514 | MakeUpOrder().then(res=>{ | ||
| 515 | if (form.value.payDate) { | ||
| 516 | if (handle) { | ||
| 517 | clearTimeout(handle) | ||
| 518 | handle = null | ||
| 519 | } | ||
| 520 | } else { | ||
| 521 | startforGetData() | ||
| 522 | } | ||
| 523 | }) | ||
| 524 | }else{ | ||
| 525 | getData().then( res => { | ||
| 526 | if (form.value.payDate) { | ||
| 527 | if (handle) { | ||
| 528 | clearTimeout(handle) | ||
| 529 | handle = null | ||
| 530 | } | ||
| 531 | } else { | ||
| 532 | startforGetData() | ||
| 533 | } | ||
| 534 | }) | ||
| 535 | } | ||
| 536 | }, 2000) | ||
| 537 | } | ||
| 538 | |||
| 539 | function showLogin() { | ||
| 540 | useUserStore().setReLogin() | ||
| 541 | } | ||
| 542 | |||
| 543 | |||
| 544 | function MakeUpOrder(){ | ||
| 545 | return booking.getMealOrderInfo({orderId: orderId.value}).then(res => { | ||
| 546 | form.value=res.data | ||
| 547 | totalFee.value=language.value==0?form.value.total:form.value.totalEn | ||
| 548 | MakeUpIno() | ||
| 549 | console.log(res) | ||
| 550 | }).catch(err => { | ||
| 551 | console.log(err) | ||
| 552 | errorBox.value = true | ||
| 553 | }) | ||
| 554 | } | ||
| 555 | |||
| 556 | function MakeUpIno(){ | ||
| 557 | booking.getMealOrderInfoByLogex({asmId: form.value.asmId}).then(res=>{ | ||
| 558 | formInfo.value=res.data | ||
| 559 | console.log(res) | ||
| 560 | }) | ||
| 561 | .catch((e) => { | ||
| 562 | console.log(e) | ||
| 563 | errorBox.value = true | ||
| 564 | }) | ||
| 565 | } | ||
| 566 | |||
| 567 | |||
| 568 | function photographyOrder(){ | ||
| 569 | return booking.getPhotoOrderInfo({orderId: orderId.value}).then(res => { | ||
| 570 | form.value=res.data | ||
| 571 | totalFee.value=language.value==0?form.value.total:form.value.totalEn | ||
| 572 | photographyInfo() | ||
| 573 | }).catch(err => { | ||
| 574 | console.log(err) | ||
| 575 | errorBox.value = true | ||
| 576 | }) | ||
| 577 | } | ||
| 578 | |||
| 579 | function photographyInfo(){ | ||
| 580 | booking.getPhotoOrderInfoByLogex({aspId: form.value.aspId}).then(res=>{ | ||
| 581 | formInfo.value=res.data | ||
| 582 | }) | ||
| 583 | // .catch((e) => { | ||
| 584 | // console.log(e) | ||
| 585 | // errorBox.value = true | ||
| 586 | // }) | ||
| 587 | } | ||
| 588 | |||
| 589 | const cancel = () => { | ||
| 590 | //取消订单 | ||
| 591 | proxy.$modal.confirm(language.value == 0 ? '确定取消订单吗 ?' :`Are you sure to cancel the order?`).then(() => { | ||
| 592 | return cancelOrder2(orderId.value).then(res=>{ | ||
| 593 | getData() | ||
| 594 | ElMessage({ | ||
| 595 | message: language.value == 0?'操作成功':'Successful operation!', | ||
| 596 | type: 'success' | ||
| 597 | }) | ||
| 598 | }) | ||
| 599 | }) | ||
| 600 | } | ||
| 601 | const unsubscribe = () => { | ||
| 602 | proxy.$modal.confirm(language.value == 0 ?`确定退款吗 ?`:'Are you sure to refund?').then(() => { | ||
| 603 | return cancelOrder(orderId.value).then(res=>{ | ||
| 604 | getData() | ||
| 605 | ElMessage({ | ||
| 606 | message: language.value == 0?'已提交退款,请等待审核!':'Refund has been submitted, please wait for review!', | ||
| 607 | type: 'success' | ||
| 608 | }) | ||
| 609 | }) | ||
| 610 | }) | ||
| 611 | } | ||
| 612 | |||
| 613 | |||
| 614 | </script> | ||
| 615 | |||
| 616 | <style scoped lang="scss"> | ||
| 617 | .st-info{line-height: 2;font-size: 14px;} | ||
| 618 | .underline{text-decoration: underline;} | ||
| 619 | .wePrice { | ||
| 620 | font-size: 24px;font-family: "DIN Alternate"; | ||
| 621 | font-weight: 400; | ||
| 622 | } | ||
| 623 | |||
| 624 | .el-radio.is-bordered { | ||
| 625 | height: 40px; | ||
| 626 | } | ||
| 627 | |||
| 628 | .border { | ||
| 629 | border: 1px solid #e1e1e1; | ||
| 630 | } | ||
| 631 | |||
| 632 | .leftboderTT { | ||
| 633 | font-weight: 600; | ||
| 634 | font-size: 16px; | ||
| 635 | color: #453DEA; | ||
| 636 | } | ||
| 637 | |||
| 638 | .bg-lineg { | ||
| 639 | height: 40px; | ||
| 640 | line-height: 40px; | ||
| 641 | font-size: 18px; | ||
| 642 | text-align: center; | ||
| 643 | } | ||
| 644 | |||
| 645 | .table { | ||
| 646 | width: 100%; | ||
| 647 | max-width: 1000px; | ||
| 648 | margin: 20px auto; | ||
| 649 | |||
| 650 | .head { | ||
| 651 | background: #EFF2F7; | ||
| 652 | height: 50px; | ||
| 653 | font-size: 16px; | ||
| 654 | font-weight: 400; | ||
| 655 | } | ||
| 656 | |||
| 657 | th { | ||
| 658 | background: #FAFBFD; | ||
| 659 | font-size: 14px; | ||
| 660 | border-bottom: 1px solid #E5E5E5; | ||
| 661 | border-right: 1px solid #E5E5E5; | ||
| 662 | } | ||
| 663 | |||
| 664 | td { | ||
| 665 | border-bottom: 1px solid #E5E5E5; | ||
| 666 | border-right: 1px solid #E5E5E5; | ||
| 667 | padding: 10px; | ||
| 668 | } | ||
| 669 | |||
| 670 | &.table-border { | ||
| 671 | border-top: 1px solid #E5E5E5; | ||
| 672 | border-left: 1px solid #E5E5E5; | ||
| 673 | } | ||
| 674 | } | ||
| 675 | |||
| 676 | .text-gray { | ||
| 677 | font-weight: 400; | ||
| 678 | font-size: 12px; | ||
| 679 | color: #929AA0; | ||
| 680 | } | ||
| 681 | |||
| 682 | .size12 { | ||
| 683 | font-size: 12px; | ||
| 684 | } | ||
| 685 | |||
| 686 | .result { | ||
| 687 | font-size: 22px; | ||
| 688 | |||
| 689 | .flex { | ||
| 690 | display: flex; | ||
| 691 | align-items: center; | ||
| 692 | font-weight: 500; | ||
| 693 | |||
| 694 | img { | ||
| 695 | margin-right: 10px | ||
| 696 | } | ||
| 697 | } | ||
| 698 | |||
| 699 | .priceb { | ||
| 700 | color: #7B7F83; | ||
| 701 | font-size: 16px; | ||
| 702 | text-align: right; | ||
| 703 | line-height: 50px; | ||
| 704 | |||
| 705 | span { | ||
| 706 | font-weight: bold; | ||
| 707 | font-size: 22px; | ||
| 708 | font-family: DIN Alternate; | ||
| 709 | color: #EB6100; | ||
| 710 | } | ||
| 711 | } | ||
| 712 | } | ||
| 713 | |||
| 714 | .skeletonBox { | ||
| 715 | position: relative; | ||
| 716 | overflow: hidden; | ||
| 717 | |||
| 718 | .btn-lineG { | ||
| 719 | position: absolute; | ||
| 720 | left: 0; | ||
| 721 | right: 0; | ||
| 722 | margin: auto; | ||
| 723 | top: 0; | ||
| 724 | bottom: 0; | ||
| 725 | width: 200px; | ||
| 726 | box-shadow: 0 0 1000px 500px rgba(255, 255, 255, 0.5); | ||
| 727 | |||
| 728 | } | ||
| 729 | } | ||
| 730 | |||
| 731 | .payImgbox { | ||
| 732 | text-align: center; | ||
| 733 | border: 1px solid #fff; | ||
| 734 | padding: 20px; | ||
| 735 | } | ||
| 736 | |||
| 737 | .priceBar { | ||
| 738 | padding: 0 0 20px; | ||
| 739 | |||
| 740 | .flex { | ||
| 741 | display: flex; | ||
| 742 | justify-content: right; | ||
| 743 | align-items: baseline; | ||
| 744 | |||
| 745 | .item { | ||
| 746 | font-size: 16px; | ||
| 747 | margin-right: 15px; | ||
| 748 | |||
| 749 | label { | ||
| 750 | color: #95A1A6; | ||
| 751 | } | ||
| 752 | |||
| 753 | span { | ||
| 754 | font-family: DIN Alternate; | ||
| 755 | } | ||
| 756 | } | ||
| 757 | } | ||
| 758 | |||
| 759 | .size26 { | ||
| 760 | font-size: 26px; | ||
| 761 | } | ||
| 762 | } | ||
| 763 | |||
| 764 | .rre { | ||
| 765 | color: #333; | ||
| 766 | font-size: 16px; | ||
| 767 | margin-top: 10px | ||
| 768 | } | ||
| 769 | |||
| 770 | .price{ | ||
| 771 | color:orange; | ||
| 772 | } | ||
| 773 | </style> |
src/viewsPc/booking/payticketOk.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/booking"; | ||
| 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 type = ref('') | ||
| 32 | const loading = ref(false) | ||
| 33 | |||
| 34 | onMounted(() => { | ||
| 35 | var code = decodeURIComponent(orderId.value) | ||
| 36 | console.log(code) | ||
| 37 | loading.value = true | ||
| 38 | callbackPalPay(code).then(res => { | ||
| 39 | loading.value = false | ||
| 40 | type.value = res.data.orderType | ||
| 41 | }) | ||
| 42 | }) | ||
| 43 | |||
| 44 | function goBillDetail() { | ||
| 45 | router.push({ | ||
| 46 | name: 'bookingPay', | ||
| 47 | query: { | ||
| 48 | orderId: route.query.orderId, | ||
| 49 | orderType: type.value | ||
| 50 | } | ||
| 51 | }) | ||
| 52 | } | ||
| 53 | </script> | ||
| 54 | |||
| 55 | <style scoped lang="scss"> | ||
| 56 | |||
| 57 | </style> |
| ... | @@ -143,6 +143,13 @@ const menus3 = ref([ | ... | @@ -143,6 +143,13 @@ const menus3 = ref([ |
| 143 | picUrl1: '/img/nav_29.png', | 143 | picUrl1: '/img/nav_29.png', |
| 144 | picUrl2: '/img/nav_29_dwn.png', | 144 | picUrl2: '/img/nav_29_dwn.png', |
| 145 | isActive: false | 145 | isActive: false |
| 146 | }, | ||
| 147 | { | ||
| 148 | name: language.value==0?'票务预订':'Ticket Reservation', | ||
| 149 | routeName: 'seat_order', | ||
| 150 | picUrl1: '/img/c7.png', | ||
| 151 | picUrl2: '/img/c7.png', | ||
| 152 | isActive: false | ||
| 146 | } | 153 | } |
| 147 | ]) | 154 | ]) |
| 148 | const menusPersonal = ref([ | 155 | const menusPersonal = ref([ |
| ... | @@ -174,6 +181,13 @@ const menusPersonal = ref([ | ... | @@ -174,6 +181,13 @@ const menusPersonal = ref([ |
| 174 | picUrl2: '/img/nav_29_dwn.png', | 181 | picUrl2: '/img/nav_29_dwn.png', |
| 175 | isActive: false | 182 | isActive: false |
| 176 | }, | 183 | }, |
| 184 | { | ||
| 185 | name: language.value==0?'票务预订':'Ticket Reservation', | ||
| 186 | routeName: 'seat_order', | ||
| 187 | picUrl1: '/img/c7.png', | ||
| 188 | picUrl2: '/img/c7.png', | ||
| 189 | isActive: false | ||
| 190 | }, | ||
| 177 | { | 191 | { |
| 178 | name: language.value==0?'系统消息':'System messages', | 192 | name: language.value==0?'系统消息':'System messages', |
| 179 | routeName: 'mySms', | 193 | routeName: 'mySms', | ... | ... |
| ... | @@ -5,81 +5,130 @@ | ... | @@ -5,81 +5,130 @@ |
| 5 | destroy-on-close | 5 | destroy-on-close |
| 6 | > | 6 | > |
| 7 | <div class="boxInvitation pd20"> | 7 | <div class="boxInvitation pd20"> |
| 8 | <el-steps :active="activeStep" align-center class="mb20"> | ||
| 9 | <el-step :title="language==0?'报名须知':'Notice'" /> | ||
| 10 | <el-step :title="language==0?'填写信息':'Information'" /> | ||
| 11 | <el-step :title="language==0?'选择课程':'Courses'" /> | ||
| 12 | </el-steps> | ||
| 13 | <div v-if="activeStep==0"> | ||
| 14 | <div class="mb60 xzRich" style="max-height: 50vh;overflow: auto"> | ||
| 15 | <div v-if="language==0" style="width: 300px;margin: auto"><br/> | ||
| 16 | 培训地点:无锡君来世尊酒店<br/> | ||
| 17 | 详细地址:江苏省 无锡市 滨湖区 和风路111号<br/> | ||
| 18 | 报到时间:2024年7月14日13:30 -17:00<br/> | ||
| 19 | 联系人:蒋璐<br/> | ||
| 20 | 联系电话:15961580050<br/> | ||
| 21 | </div> | ||
| 22 | <div v-else style="width: 400px;margin: auto"><br/> | ||
| 23 | Training Camp venue:Worldhotel Grand Juna Wuxi<br/> | ||
| 24 | Address:No.111 Hefeng Road, Binhu District, Wuxi, Jiangsu<br/> | ||
| 25 | Check-in:From 13:30 to 17:00 on July 14, 2024.<br/> | ||
| 26 | Contact Person:Dean Ding<br/> | ||
| 27 | Tel: +86 19951486130<br/> | ||
| 28 | </div> | ||
| 29 | </div> | ||
| 30 | <div class="text-center"> | ||
| 31 | <el-button type="primary" v-if="courseList.length>0" class="btn-lineG" round @click="setActive(1)">{{ language == 0 ? '下一步' : 'NEXT' }}</el-button> | ||
| 32 | <el-button type="primary" class="btn-lineG" round v-else @click="close">{{language==0?'暂无可报课程':'No courses available for reporting'}}</el-button> | ||
| 33 | </div> | ||
| 34 | </div> | ||
| 35 | <div v-if="activeStep==1"> | ||
| 36 | <el-form :model="form" :rules="rules" ref="iformRef" label-position="right" :label-width="language==0?'80px':'150px'"> | ||
| 37 | <el-form-item :label="language==0?'姓名':'Name'" required prop="name"> | ||
| 38 | <el-input v-model="form.name"/> | ||
| 39 | </el-form-item> | ||
| 40 | <el-form-item :label="language==0?'性别':'Gender'" required prop="gender"> | ||
| 41 | <el-radio-group v-model="form.gender"> | ||
| 42 | <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio> | ||
| 43 | <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio> | ||
| 44 | </el-radio-group> | ||
| 45 | </el-form-item> | ||
| 46 | <el-form-item :label="language==0?'国籍':'Nationality'" required prop="nationality"> | ||
| 47 | <el-select filterable v-model="form.nationality" style="width: 100%;"> | ||
| 48 | <el-option v-for="item in countrys" :key="item.id" :label="language==0?item.name:item.enName" | ||
| 49 | :value="item.id"/> | ||
| 50 | </el-select> | ||
| 51 | </el-form-item> | ||
| 52 | <el-form-item :label="language==0?'出生日期':'Date of Birth'" required prop="birth"> | ||
| 53 | <el-date-picker | ||
| 54 | v-model="form.birth" | ||
| 55 | style="width: 100%;" placeholder="YYYY-MM-DD" | ||
| 56 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | ||
| 57 | /> | ||
| 58 | </el-form-item> | ||
| 59 | <el-form-item :label="language==0?'邮箱':'Email'" required prop="email"> | ||
| 60 | <el-input v-model="form.email" type="email"/> | ||
| 61 | </el-form-item> | ||
| 62 | <el-form-item :label="language==0?'证件号':'ID No.'" required prop="passportNo"> | ||
| 63 | <el-input v-model="form.passportNo" @blur="checkCard"/> | ||
| 64 | </el-form-item> | ||
| 65 | <el-form-item :label="language==0?'有效证件':'Passport Copy'" required prop="passportCopy"> | ||
| 66 | <image-upload v-model="form.passportCopy" :limit="1" :is-show-tip="false" | ||
| 67 | :button-text="language==0?'上传':'Upload'"/> | ||
| 68 | </el-form-item> | ||
| 69 | <!-- <el-form-item :label="language==0?'抵达日期':'Date of Arrival'" required prop="arrival">--> | ||
| 70 | <!-- <el-date-picker--> | ||
| 71 | <!-- v-model="form.arrival" placeholder="YYYY-MM-DD"--> | ||
| 72 | <!-- style="width: 100%;"--> | ||
| 73 | <!-- type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"--> | ||
| 74 | <!-- />--> | ||
| 75 | <!-- </el-form-item>--> | ||
| 76 | <!-- <el-form-item :label="language==0?'出发日期':'Date of Departure'" required prop="departure">--> | ||
| 77 | <!-- <el-date-picker--> | ||
| 78 | <!-- v-model="form.departure"--> | ||
| 79 | <!-- style="width: 100%;" placeholder="YYYY-MM-DD"--> | ||
| 80 | <!-- type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"--> | ||
| 81 | <!-- />--> | ||
| 82 | <!-- </el-form-item>--> | ||
| 83 | <el-form-item :label="language==0?'备注':'Remark '"> | ||
| 84 | <el-input type="textarea" v-model="form.remark" rows="3"/> | ||
| 85 | </el-form-item> | ||
| 8 | 86 | ||
| 9 | <div class="text-center pd20" v-if="showR"> | 87 | <div class="text-center"> |
| 10 | <img class="mauto" src="@/assets/dance/ok.png"/> | 88 | <el-button size="large" @click="setActive(0)" round plain type="primary">{{ language == 0 ? '上一步' : 'PREV' }}</el-button> |
| 11 | <!-- <h2 class="text-center">{{ language == 0 ? '申请已提交' : 'Submitted successfully' }}</h2>--> | 89 | <el-button type="primary" size="large" @click="checkApplyCourse(2)" round class="btn-lineG"> |
| 12 | <h4 class="text-center" v-if="language == 0"> | 90 | {{ language == 0 ? '下一步' : 'NEXT' }} |
| 13 | 我们已收到您的邀请函申请,并将尽快处理。请耐心等待。 | 91 | </el-button> |
| 14 | </h4> | 92 | </div> |
| 15 | <h4 v-else> | 93 | </el-form> |
| 16 | Your invitation letter application has been received,<br/> | ||
| 17 | and we will process it as soon as possible. | ||
| 18 | <br/> | ||
| 19 | Please be patient while waiting. | ||
| 20 | </h4> | ||
| 21 | <el-button size="large" type="primary" @click="conti" round class="btn-lineG"> | ||
| 22 | {{ language == 0 ? '继续提交' : 'Continue To Submit' }} | ||
| 23 | </el-button> | ||
| 24 | </div> | 94 | </div> |
| 95 | <div v-if="activeStep==2"> | ||
| 96 | <div class="text-center pd20" v-if="showR"> | ||
| 97 | <img class="mauto" src="@/assets/dance/ok.png"/> | ||
| 98 | <h2 class="text-center">{{ language == 0 ? '申请已提交' : 'Submitted successfully' }}</h2> | ||
| 99 | <h4 class="text-center" v-if="language == 0"> | ||
| 100 | 我们已收到您的申请,并将尽快处理。请耐心等待。 | ||
| 101 | </h4> | ||
| 102 | <h4 v-else> | ||
| 103 | Your application has been received,<br/> | ||
| 104 | and we will process it as soon as possible. | ||
| 105 | <br/> | ||
| 106 | Please be patient while waiting. | ||
| 107 | </h4> | ||
| 108 | </div> | ||
| 109 | <div v-else> | ||
| 110 | <div class="tip text-danger mb20" v-if="language==0">*选择参加的课程(最少一项,最多两项)</div> | ||
| 111 | <div class="tip text-danger mb20" v-else>*Select the courses to enroll in (at least one, no more than two)</div> | ||
| 112 | <el-checkbox-group size="large" v-model="form.courseId" @change="courseChange"> | ||
| 113 | <div v-for="c in courseList" class="mb20"> | ||
| 114 | <el-checkbox :value="c.id" border class="w100" :disabled="(form.courseId?.length>=2&&form.courseId.indexOf(c.id)==-1)||disChoose||(form.nationality==240&&c.viewStateCn == 0)||(form.nationality!=240&&c.viewStateEn == 0)"> | ||
| 115 | {{language == 0 ?c.name:c.nameEn}} | ||
| 116 | <el-tag class="ml20" v-if="(form.nationality==240&&c.viewStateCn == 0)||(form.nationality!=240&&c.viewStateEn == 0)" type="danger" effect="dark">{{language == 0 ?'已报满':'Already full'}}</el-tag> | ||
| 117 | </el-checkbox> | ||
| 118 | </div> | ||
| 119 | </el-checkbox-group> | ||
| 25 | 120 | ||
| 26 | <el-form :model="form" :rules="rules" ref="iformRef" label-position="right" label-width="150px" v-else> | ||
| 27 | <el-form-item :label="language==0?'姓名':'Name'" required prop="name"> | ||
| 28 | <el-input v-model="form.name"/> | ||
| 29 | </el-form-item> | ||
| 30 | <el-form-item :label="language==0?'性别':'Gender'" required prop="gender"> | ||
| 31 | <el-radio-group v-model="form.gender"> | ||
| 32 | <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio> | ||
| 33 | <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio> | ||
| 34 | </el-radio-group> | ||
| 35 | </el-form-item> | ||
| 36 | <el-form-item :label="language==0?'国籍':'Nationality'" required prop="nationality"> | ||
| 37 | <el-select filterable v-model="form.nationality" style="width: 100%;"> | ||
| 38 | <el-option v-for="item in countrys" :key="item.id" :label="language==0?item.name:item.enName" | ||
| 39 | :value="item.id"/> | ||
| 40 | </el-select> | ||
| 41 | </el-form-item> | ||
| 42 | <el-form-item :label="language==0?'出生日期':'Date of Birth'" required prop="birth"> | ||
| 43 | <el-date-picker | ||
| 44 | v-model="form.birth" | ||
| 45 | style="width: 100%;" placeholder="YYYY-MM-DD" | ||
| 46 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | ||
| 47 | /> | ||
| 48 | </el-form-item> | ||
| 49 | <el-form-item :label="language==0?'邮箱':'Email'" required prop="email"> | ||
| 50 | <el-input v-model="form.email" type="email"/> | ||
| 51 | </el-form-item> | ||
| 52 | <el-form-item :label="language==0?'护照号':'Passport No.'" required prop="passportNo"> | ||
| 53 | <el-input v-model="form.passportNo"/> | ||
| 54 | </el-form-item> | ||
| 55 | <el-form-item :label="language==0?'有效证件':'Passport Copy'" required prop="passportCopy"> | ||
| 56 | <image-upload v-model="form.passportCopy" :limit="1" :is-show-tip="false" | ||
| 57 | :button-text="language==0?'上传':'Upload'"/> | ||
| 58 | </el-form-item> | ||
| 59 | <el-form-item :label="language==0?'抵达日期':'Date of Arrival'" required prop="arrival"> | ||
| 60 | <el-date-picker | ||
| 61 | v-model="form.arrival" placeholder="YYYY-MM-DD" | ||
| 62 | style="width: 100%;" | ||
| 63 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | ||
| 64 | /> | ||
| 65 | </el-form-item> | ||
| 66 | <el-form-item :label="language==0?'出发日期':'Date of Departure'" required prop="departure"> | ||
| 67 | <el-date-picker | ||
| 68 | v-model="form.departure" | ||
| 69 | style="width: 100%;" placeholder="YYYY-MM-DD" | ||
| 70 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | ||
| 71 | /> | ||
| 72 | </el-form-item> | ||
| 73 | <el-form-item :label="language==0?'备注':'Remark '"> | ||
| 74 | <el-input type="textarea" v-model="form.remark" rows="3"/> | ||
| 75 | </el-form-item> | ||
| 76 | 121 | ||
| 77 | <div class="text-center"> | 122 | <div class="text-center"> |
| 78 | <el-button type="primary" size="large" @click="submit" round class="btn-lineG"> | 123 | <el-button size="large" @click="setActive(1)" round plain type="primary">{{ language == 0 ? '上一步' : 'PREV' }}</el-button> |
| 124 | <el-button type="primary" v-if="!disChoose" size="large" @click="submit" round class="btn-lineG w200px"> | ||
| 79 | {{ language == 0 ? '提交' : 'SUBMIT' }} | 125 | {{ language == 0 ? '提交' : 'SUBMIT' }} |
| 80 | </el-button> | 126 | </el-button> |
| 127 | |||
| 128 | </div> | ||
| 129 | |||
| 81 | </div> | 130 | </div> |
| 82 | </el-form> | 131 | </div> |
| 83 | </div> | 132 | </div> |
| 84 | </el-dialog> | 133 | </el-dialog> |
| 85 | 134 | ||
| ... | @@ -92,6 +141,7 @@ import {nextTick} from "@vue/runtime-core"; | ... | @@ -92,6 +141,7 @@ import {nextTick} from "@vue/runtime-core"; |
| 92 | import {ElMessage, ElMessageBox} from "element-plus"; | 141 | import {ElMessage, ElMessageBox} from "element-plus"; |
| 93 | import {addInvitation, countryList} from "@/apiPc/match"; | 142 | import {addInvitation, countryList} from "@/apiPc/match"; |
| 94 | import ImageUpload from "@/components/ImageUpload"; | 143 | import ImageUpload from "@/components/ImageUpload"; |
| 144 | import {masterClassList, getByCard, submitMasterApply, getMasterApply, delByCard} from "@/apiPc/common"; | ||
| 95 | 145 | ||
| 96 | const {proxy} = getCurrentInstance() | 146 | const {proxy} = getCurrentInstance() |
| 97 | const language = useStorage('language', 0) | 147 | const language = useStorage('language', 0) |
| ... | @@ -100,8 +150,11 @@ const form = ref({ | ... | @@ -100,8 +150,11 @@ const form = ref({ |
| 100 | }) | 150 | }) |
| 101 | const show = ref(false) | 151 | const show = ref(false) |
| 102 | const showR = ref(false) | 152 | const showR = ref(false) |
| 153 | const disChoose = ref(false) | ||
| 103 | const title = ref('') | 154 | const title = ref('') |
| 155 | const activeStep = ref(0) | ||
| 104 | const countrys = ref([]) | 156 | const countrys = ref([]) |
| 157 | const courseList = ref([]) | ||
| 105 | const cptId = ref('') | 158 | const cptId = ref('') |
| 106 | const rules = ref( | 159 | const rules = ref( |
| 107 | { | 160 | { |
| ... | @@ -117,8 +170,9 @@ const rules = ref( | ... | @@ -117,8 +170,9 @@ const rules = ref( |
| 117 | const open = (params) => { | 170 | const open = (params) => { |
| 118 | console.log(params) | 171 | console.log(params) |
| 119 | show.value = true | 172 | show.value = true |
| 120 | title.value = params.title | 173 | title.value = language.value==0?'亚洲青少年体育舞蹈公益课':'Asian Youth DanceSport Training Camp' |
| 121 | cptId.value = params.cptId | 174 | cptId.value = params.cptId |
| 175 | getCourse() | ||
| 122 | } | 176 | } |
| 123 | defineExpose({open}) | 177 | defineExpose({open}) |
| 124 | watch(show, (value) => { | 178 | watch(show, (value) => { |
| ... | @@ -134,15 +188,49 @@ watch(show, (value) => { | ... | @@ -134,15 +188,49 @@ watch(show, (value) => { |
| 134 | // proxy.$refs['dialogRef'].clearValidate() | 188 | // proxy.$refs['dialogRef'].clearValidate() |
| 135 | }) | 189 | }) |
| 136 | }) | 190 | }) |
| 137 | getCountryList() | 191 | function getCourse() { |
| 138 | 192 | // '1777256058082189313' | |
| 139 | function getCountryList() { | 193 | masterClassList({cptId:cptId.value}).then(res=>{ |
| 140 | countryList().then(res => { | 194 | courseList.value = res.data |
| 141 | countrys.value = res.data | ||
| 142 | }) | 195 | }) |
| 143 | } | 196 | } |
| 197 | function setActive(n) { | ||
| 198 | activeStep.value = n | ||
| 199 | } | ||
| 200 | function courseChange(e){ | ||
| 201 | console.log('已选',e) | ||
| 202 | } | ||
| 203 | function checkApplyCourse(n) { | ||
| 204 | getMasterApply({card:form.value.passportNo}).then(res=>{ | ||
| 205 | if(res.data?.length>0){ | ||
| 206 | form.value.courseId = [] | ||
| 207 | for(var n of res.data){ | ||
| 208 | form.value.courseId.push(n.itemId) | ||
| 209 | } | ||
| 210 | ElMessageBox.confirm( | ||
| 211 | language.value == 0 ? '您已提交过信息,是否更新?' : 'You have submitted the information, do you want to update?', | ||
| 212 | language.value == 0 ? '提示' : 'Tips', { | ||
| 213 | confirmButtonText: language.value == 0 ? '是' : 'Confirm', | ||
| 214 | cancelButtonText: language.value == 0 ? '否' : 'Cancel', | ||
| 215 | type: 'warning' | ||
| 216 | }).then(()=>{ | ||
| 217 | //删除原记录 | ||
| 218 | delByCard(form.value.passportNo).then(res=>{ | ||
| 219 | form.value.courseId = [] | ||
| 220 | disChoose.value = false | ||
| 221 | to2() | ||
| 222 | }) | ||
| 223 | }).catch(()=>{ | ||
| 224 | disChoose.value = true | ||
| 225 | to2() | ||
| 226 | }) | ||
| 227 | } else { | ||
| 228 | to2() | ||
| 229 | } | ||
| 230 | }) | ||
| 144 | 231 | ||
| 145 | const submit = () => { | 232 | } |
| 233 | function to2() { | ||
| 146 | proxy.$refs.iformRef.validate(valid => { | 234 | proxy.$refs.iformRef.validate(valid => { |
| 147 | if (form.value.email.indexOf('@') == -1) { | 235 | if (form.value.email.indexOf('@') == -1) { |
| 148 | if (language.value == 0) { | 236 | if (language.value == 0) { |
| ... | @@ -153,34 +241,73 @@ const submit = () => { | ... | @@ -153,34 +241,73 @@ const submit = () => { |
| 153 | return | 241 | return |
| 154 | } | 242 | } |
| 155 | if (valid) { | 243 | if (valid) { |
| 156 | ElMessageBox.confirm( | 244 | setActive(2) |
| 157 | language.value == 0 ? '请确认信息正确并提交吗?' : 'Please confirm that the information is correct and submit it', | 245 | } |
| 158 | language.value == 0 ? '提示' : 'Tips', { | 246 | }) |
| 159 | confirmButtonText: language.value == 0 ? '确定' : 'Confirm', | 247 | } |
| 160 | cancelButtonText: language.value == 0 ? '取消' : 'Cancel', | 248 | |
| 161 | type: 'warning' | 249 | |
| 162 | }).then(() => { | 250 | function checkCard() { |
| 163 | form.value.cptId = cptId.value | 251 | getByCard({card:form.value.passportNo}).then(res=>{ |
| 164 | if (Array.isArray(form.value.passportCopy)) { | 252 | if(res.data){ |
| 165 | form.value.passportCopy = form.value.passportCopy[0].url | 253 | form.value = res.data |
| 166 | } | 254 | } else { |
| 167 | addInvitation(form.value).then((res) => { | 255 | form.value.courseId = [] |
| 168 | ElMessage.success(language.value == 0 ?'提交成功':'Successfully!') | ||
| 169 | showR.value = true | ||
| 170 | }) | ||
| 171 | }) | ||
| 172 | } | 256 | } |
| 173 | }) | 257 | }) |
| 174 | } | 258 | } |
| 259 | getCountryList() | ||
| 260 | |||
| 261 | function getCountryList() { | ||
| 262 | countryList().then(res => { | ||
| 263 | countrys.value = res.data | ||
| 264 | }) | ||
| 265 | } | ||
| 266 | |||
| 267 | const submit = () => { | ||
| 268 | if (form.value.courseId.length == 0) { | ||
| 269 | if (language.value == 0) { | ||
| 270 | ElMessage.warning('请至少选择一门课程') | ||
| 271 | } else { | ||
| 272 | ElMessage.warning('Please select at least one course') | ||
| 273 | } | ||
| 274 | return | ||
| 275 | } | ||
| 276 | ElMessageBox.confirm( | ||
| 277 | language.value == 0 ? '确认提交吗?' : 'Are you sure to submit?', | ||
| 278 | language.value == 0 ? '提示' : 'Tips', { | ||
| 279 | confirmButtonText: language.value == 0 ? '确定' : 'Confirm', | ||
| 280 | cancelButtonText: language.value == 0 ? '取消' : 'Cancel', | ||
| 281 | type: 'warning' | ||
| 282 | }).then(() => { | ||
| 283 | // form.value.cptId = cptId.value | ||
| 284 | if (Array.isArray(form.value.passportCopy)) { | ||
| 285 | form.value.passportCopy = form.value.passportCopy[0].url | ||
| 286 | } | ||
| 287 | // form.value.courseId = form.value.courseId.toString() | ||
| 288 | form.value.itemIds = form.value.courseId.toString() | ||
| 289 | delete form.value.courseId | ||
| 290 | submitMasterApply(form.value).then((res) => { | ||
| 291 | ElMessage.success(language.value == 0 ?'提交成功':'Successfully!') | ||
| 292 | showR.value = true | ||
| 293 | }).catch(()=>{ | ||
| 294 | |||
| 295 | }) | ||
| 296 | }) | ||
| 297 | } | ||
| 175 | const conti = () => { | 298 | const conti = () => { |
| 176 | showR.value = false | 299 | showR.value = false |
| 177 | form.value = { | 300 | form.value = { |
| 178 | gender: '0' | 301 | gender: '0' |
| 179 | } | 302 | } |
| 180 | } | 303 | } |
| 304 | const close = () =>{ | ||
| 305 | show.value = false | ||
| 306 | } | ||
| 181 | </script> | 307 | </script> |
| 182 | 308 | ||
| 183 | <style scoped> | 309 | <style scoped> |
| 310 | .xzRich{line-height: 2;font-size: 14px;} | ||
| 184 | .boxInvitation { | 311 | .boxInvitation { |
| 185 | width: 90%; | 312 | width: 90%; |
| 186 | margin: auto | 313 | margin: auto | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div> | 2 | <div> |
| 3 | <index-Ch v-if="language ==0"/> | 3 | <index-Ch v-if="language ==0" @pop="openMaster"/> |
| 4 | <index-En v-else/> | 4 | <index-En v-else @pop="openMaster"/> |
| 5 | <div v-if="showgg" class="fixed_gg"> | 5 | <div v-if="showgg" class="fixed_gg"> |
| 6 | <!--天气--> | 6 | <!--天气--> |
| 7 | <el-icon class="cclose" @click.stop="showgg=false"><circle-close /></el-icon> | 7 | <el-icon class="cclose" @click.stop="showgg=false"><circle-close /></el-icon> |
| ... | @@ -59,6 +59,8 @@ | ... | @@ -59,6 +59,8 @@ |
| 59 | </div> | 59 | </div> |
| 60 | </el-dialog> | 60 | </el-dialog> |
| 61 | </div> | 61 | </div> |
| 62 | |||
| 63 | <dialog-master-class ref="masterClassRef"/> | ||
| 62 | </div> | 64 | </div> |
| 63 | 65 | ||
| 64 | </template> | 66 | </template> |
| ... | @@ -67,10 +69,12 @@ | ... | @@ -67,10 +69,12 @@ |
| 67 | import IndexCh from '/src/viewsPc/index' | 69 | import IndexCh from '/src/viewsPc/index' |
| 68 | import IndexEn from '/src/viewsPc/index_en' | 70 | import IndexEn from '/src/viewsPc/index_en' |
| 69 | import WeatherIcon from '@/viewsPc/components/weatherIcon' | 71 | import WeatherIcon from '@/viewsPc/components/weatherIcon' |
| 70 | 72 | import DialogMasterClass from '@/viewsPc/components/masterClass' | |
| 71 | import {useStorage} from "@vueuse/core/index"; | 73 | import {useStorage} from "@vueuse/core/index"; |
| 72 | import {ref} from "vue"; | 74 | import {ref} from "vue"; |
| 73 | import {getWeather} from "@/apiPc/webSite"; | 75 | import {getWeather} from "@/apiPc/webSite"; |
| 76 | import {getCurrentInstance} from "@vue/runtime-core"; | ||
| 77 | const {proxy} = getCurrentInstance() | ||
| 74 | const showgg = ref(true) | 78 | const showgg = ref(true) |
| 75 | 79 | ||
| 76 | const language = useStorage('language', 0) | 80 | const language = useStorage('language', 0) |
| ... | @@ -91,7 +95,14 @@ function init(){ | ... | @@ -91,7 +95,14 @@ function init(){ |
| 91 | const popWeather = () => { | 95 | const popWeather = () => { |
| 92 | weatherdialog.value = true | 96 | weatherdialog.value = true |
| 93 | } | 97 | } |
| 94 | 98 | const openMaster = (params) => { | |
| 99 | console.log(params) | ||
| 100 | var obj = { | ||
| 101 | title:'大师课申请', | ||
| 102 | cptId:params.cptId | ||
| 103 | } | ||
| 104 | proxy.$refs['masterClassRef'].open(obj) | ||
| 105 | } | ||
| 95 | </script> | 106 | </script> |
| 96 | 107 | ||
| 97 | <style scoped lang="scss"> | 108 | <style scoped lang="scss"> | ... | ... |
| ... | @@ -93,6 +93,8 @@ | ... | @@ -93,6 +93,8 @@ |
| 93 | <download/> | 93 | <download/> |
| 94 | </el-icon> | 94 | </el-icon> |
| 95 | </a> | 95 | </a> |
| 96 | <!-- <el-button type="primary" @click="popMaster">青少年公益课</el-button>--> | ||
| 97 | <a class="zn-btn ml20 btn-q" @click="popMaster">青少年公益课</a> | ||
| 96 | </div> | 98 | </div> |
| 97 | </el-col> | 99 | </el-col> |
| 98 | <el-col :sm="24" :lg="14"> | 100 | <el-col :sm="24" :lg="14"> |
| ... | @@ -359,7 +361,7 @@ import HomeQuick from '@/viewsPc/components/homeQuick' | ... | @@ -359,7 +361,7 @@ import HomeQuick from '@/viewsPc/components/homeQuick' |
| 359 | import HomeCalendar from '@/viewsPc/components/homeCalendar' | 361 | import HomeCalendar from '@/viewsPc/components/homeCalendar' |
| 360 | import {ref, nextTick, onMounted, watch} from 'vue' | 362 | import {ref, nextTick, onMounted, watch} from 'vue' |
| 361 | import {getCurrentInstance} from '@vue/runtime-core' | 363 | import {getCurrentInstance} from '@vue/runtime-core' |
| 362 | import {getHomePage, getNewsListById, getNewsList, getWeather} from '@/apiPc/webSite' | 364 | import {getHomePage, getNewsListById, getNewsList} from '@/apiPc/webSite' |
| 363 | import {useRouter} from 'vue-router' | 365 | import {useRouter} from 'vue-router' |
| 364 | import {rankList} from '@/assets/js/data' | 366 | import {rankList} from '@/assets/js/data' |
| 365 | import _ from 'lodash' | 367 | import _ from 'lodash' |
| ... | @@ -375,14 +377,7 @@ const navigationPic = ref({ | ... | @@ -375,14 +377,7 @@ const navigationPic = ref({ |
| 375 | }) | 377 | }) |
| 376 | const router = useRouter() | 378 | const router = useRouter() |
| 377 | const {proxy} = getCurrentInstance() | 379 | const {proxy} = getCurrentInstance() |
| 378 | const bannerVideo = ref(null) | 380 | const emit = defineEmits(['pop']) |
| 379 | const isPlay = ref(false) | ||
| 380 | const canPrev = ref(false) | ||
| 381 | const canNext = ref(false) | ||
| 382 | const activeRankName = ref(0) | ||
| 383 | const weatherObj = ref({ | ||
| 384 | forecast:[] | ||
| 385 | }) | ||
| 386 | const time = ref(0) | 381 | const time = ref(0) |
| 387 | const personList = ref([ | 382 | const personList = ref([ |
| 388 | { name: 'Wolfgang Eliasch', pp: '拉丁舞裁判长 奥地利', src: '/img/1.png' }, | 383 | { name: 'Wolfgang Eliasch', pp: '拉丁舞裁判长 奥地利', src: '/img/1.png' }, |
| ... | @@ -400,12 +395,10 @@ const news = ref([]) | ... | @@ -400,12 +395,10 @@ const news = ref([]) |
| 400 | const notice = ref([]) | 395 | const notice = ref([]) |
| 401 | const display = ref([]) | 396 | const display = ref([]) |
| 402 | const scores = ref([]) | 397 | const scores = ref([]) |
| 403 | const nowscores = ref([]) | ||
| 404 | const livelist = ref([]) | 398 | const livelist = ref([]) |
| 405 | const matchData = ref({}) | 399 | const matchData = ref({}) |
| 406 | const maList = ref([]) | 400 | const maList = ref([]) |
| 407 | const loading = ref(false) | 401 | const loading = ref(false) |
| 408 | const weatherdialog = ref(false) | ||
| 409 | const picList = ref([]) | 402 | const picList = ref([]) |
| 410 | 403 | ||
| 411 | onMounted(() => { | 404 | onMounted(() => { |
| ... | @@ -491,9 +484,6 @@ const goMatch = (n) => { | ... | @@ -491,9 +484,6 @@ const goMatch = (n) => { |
| 491 | path: `/match/list/${n.id}` | 484 | path: `/match/list/${n.id}` |
| 492 | }) | 485 | }) |
| 493 | } | 486 | } |
| 494 | const popWeather = () => { | ||
| 495 | weatherdialog.value = true | ||
| 496 | } | ||
| 497 | 487 | ||
| 498 | const goGuide = () => { | 488 | const goGuide = () => { |
| 499 | router.push({ | 489 | router.push({ |
| ... | @@ -503,6 +493,13 @@ const goGuide = () => { | ... | @@ -503,6 +493,13 @@ const goGuide = () => { |
| 503 | } | 493 | } |
| 504 | }) | 494 | }) |
| 505 | } | 495 | } |
| 496 | const popMaster = () => { | ||
| 497 | var params = { | ||
| 498 | cptId:matchData.value.id | ||
| 499 | } | ||
| 500 | emit('pop',params) | ||
| 501 | } | ||
| 502 | |||
| 506 | </script> | 503 | </script> |
| 507 | 504 | ||
| 508 | <style scoped lang="scss"> | 505 | <style scoped lang="scss"> |
| ... | @@ -945,4 +942,32 @@ const goGuide = () => { | ... | @@ -945,4 +942,32 @@ const goGuide = () => { |
| 945 | } | 942 | } |
| 946 | } | 943 | } |
| 947 | } | 944 | } |
| 945 | :deep(.btn-q) { | ||
| 946 | //background: #FFFFFF; | ||
| 947 | //font-size: 18px; | ||
| 948 | //color: #453DEA; | ||
| 949 | //border-radius: 23px; | ||
| 950 | //padding: 10px 20px; | ||
| 951 | //display: inline-flex; | ||
| 952 | //align-items: center; | ||
| 953 | |||
| 954 | padding: 20px 40px; | ||
| 955 | font-size: 20px; | ||
| 956 | align-items: center; | ||
| 957 | overflow: hidden; | ||
| 958 | background: url(/src/assets/dance/time_bg.png) no-repeat center !important; | ||
| 959 | background-size: 100% 100%; | ||
| 960 | bottom: 40%; | ||
| 961 | display: flex; | ||
| 962 | flex-wrap: nowrap; | ||
| 963 | color: #fff !important; | ||
| 964 | box-sizing: inherit; | ||
| 965 | } | ||
| 966 | |||
| 967 | .btn-q:hover{ | ||
| 968 | box-shadow: 0 0 20px #453DEA; | ||
| 969 | border-radius: 100px; | ||
| 970 | background: linear-gradient(-90deg, #8623FC, #453DEA) !important; | ||
| 971 | } | ||
| 972 | |||
| 948 | </style> | 973 | </style> | ... | ... |
| ... | @@ -85,10 +85,15 @@ | ... | @@ -85,10 +85,15 @@ |
| 85 | <el-col :sm="24" :lg="10"> | 85 | <el-col :sm="24" :lg="10"> |
| 86 | <div class="bgbg"> | 86 | <div class="bgbg"> |
| 87 | <h1 style="color: #fff">{{matchData?.name}}</h1> | 87 | <h1 style="color: #fff">{{matchData?.name}}</h1> |
| 88 | <a class="zn-btn" @click="goGuide"> | 88 | <div> |
| 89 | GUIDELINE | 89 | <a class="zn-btn" @click="goGuide"> |
| 90 | <el-icon><download /></el-icon> | 90 | GUIDELINE |
| 91 | </a> | 91 | <el-icon><download /></el-icon> |
| 92 | </a> | ||
| 93 | <a class="zn-btn ml20" @click="popMaster">Junior &Youth Camp <el-icon><Edit /></el-icon> | ||
| 94 | </a> | ||
| 95 | </div> | ||
| 96 | |||
| 92 | </div> | 97 | </div> |
| 93 | </el-col> | 98 | </el-col> |
| 94 | <el-col :sm="24" :lg="14"> | 99 | <el-col :sm="24" :lg="14"> |
| ... | @@ -385,6 +390,7 @@ const navigationPic = ref({ | ... | @@ -385,6 +390,7 @@ const navigationPic = ref({ |
| 385 | }) | 390 | }) |
| 386 | const router = useRouter() | 391 | const router = useRouter() |
| 387 | const { proxy } = getCurrentInstance() | 392 | const { proxy } = getCurrentInstance() |
| 393 | const emit = defineEmits(['pop']) | ||
| 388 | const time = ref(0) | 394 | const time = ref(0) |
| 389 | 395 | ||
| 390 | const personList = ref([ | 396 | const personList = ref([ |
| ... | @@ -498,6 +504,12 @@ const goGuide = () => { | ... | @@ -498,6 +504,12 @@ const goGuide = () => { |
| 498 | } | 504 | } |
| 499 | }) | 505 | }) |
| 500 | } | 506 | } |
| 507 | const popMaster = () => { | ||
| 508 | var params = { | ||
| 509 | cptId:matchData.value.id | ||
| 510 | } | ||
| 511 | emit('pop',params) | ||
| 512 | } | ||
| 501 | </script> | 513 | </script> |
| 502 | 514 | ||
| 503 | <style scoped lang="scss"> | 515 | <style scoped lang="scss"> |
| ... | @@ -516,7 +528,7 @@ const goGuide = () => { | ... | @@ -516,7 +528,7 @@ const goGuide = () => { |
| 516 | p{margin: 0;height: 40px;line-height: 20px;display: flex;align-items: center;} | 528 | p{margin: 0;height: 40px;line-height: 20px;display: flex;align-items: center;} |
| 517 | } | 529 | } |
| 518 | border-radius: 15px; | 530 | border-radius: 15px; |
| 519 | .zn-btn{background: #FFFFFF; | 531 | .zn-btn{background: #FFFFFF;text-transform: uppercase; |
| 520 | font-size: 18px; width: fit-content; | 532 | font-size: 18px; width: fit-content; |
| 521 | color: #453DEA; | 533 | color: #453DEA; |
| 522 | border-radius: 23px;padding: 10px 20px;display: inline-flex;align-items: center;} | 534 | border-radius: 23px;padding: 10px 20px;display: inline-flex;align-items: center;} | ... | ... |
| ... | @@ -83,7 +83,6 @@ export default defineConfig(({ mode, command }) => { | ... | @@ -83,7 +83,6 @@ export default defineConfig(({ mode, command }) => { |
| 83 | }, | 83 | }, |
| 84 | '/dev-api': { | 84 | '/dev-api': { |
| 85 | // target: 'http://192.168.1.118:8081/', | 85 | // target: 'http://192.168.1.118:8081/', |
| 86 | // target: 'https://jijin.wtwuxicenter.com/stage-api', | ||
| 87 | target: 'https://jijin.wtwuxicenter.com/stage-api', | 86 | target: 'https://jijin.wtwuxicenter.com/stage-api', |
| 88 | changeOrigin: true, | 87 | changeOrigin: true, |
| 89 | rewrite: (p) => p.replace(/^\/dev-api/, '') | 88 | rewrite: (p) => p.replace(/^\/dev-api/, '') | ... | ... |
-
Please register or sign in to post a comment