c0c59ce7 by 杨炀

Merge branch 'dev' of https://code.itechtop.cn/yangyang/dance-pc into dev

# Conflicts:
#	vite.config.js
2 parents 65d4b1e1 6c6e5fb9
...@@ -237,6 +237,15 @@ export function getBaseInfoByActiveId(id) { ...@@ -237,6 +237,15 @@ export function getBaseInfoByActiveId(id) {
237 }) 237 })
238 } 238 }
239 239
240 export function vehicleConfigList(params) {
241 return request({
242 url: `/ota/vehicleConfig/list`,
243 method: 'get',
244 params
245 })
246 }
247
248
240 export function checkRoomPayByUserId(id) { 249 export function checkRoomPayByUserId(id) {
241 return request({ 250 return request({
242 url: `/ota/norder/checkRoomPayByUserId`, 251 url: `/ota/norder/checkRoomPayByUserId`,
...@@ -648,9 +657,9 @@ export function getTicketOrderInfo(params) { ...@@ -648,9 +657,9 @@ export function getTicketOrderInfo(params) {
648 }) 657 })
649 } 658 }
650 659
651 export function getGateListByLasId(params) { 660 export function getVehicleByCheckIn(params) { // activityId,category,checkIn
652 return request({ 661 return request({
653 url: `/ota/scenicConfig/getGateListByLasId`, 662 url: `/ota/activityVehicle/getVehicleByCheckIn`,
654 method: 'get', 663 method: 'get',
655 params 664 params
656 }) 665 })
...@@ -670,3 +679,34 @@ export function checkPurchasedCustomers(data) { ...@@ -670,3 +679,34 @@ export function checkPurchasedCustomers(data) {
670 data 679 data
671 }) 680 })
672 } 681 }
682
683 // 接机
684 export function getVehicleMap(params) { // activityId
685 return request({
686 url: `/ota/activityVehicle/getVehicleMap`,
687 method: 'get',
688 params
689 })
690 }
691
692 export function getVehicleMa1p(params) { // activityId
693 return request({
694 url: `/ota/activityVehicle/getVehicleMap`,
695 method: 'get',
696 params
697 })
698 }
699
700 // 旅游
701
702 export function getGateListByLasId(params) { // scenicDate,lasId
703 return request({
704 url: `/ota/scenicConfig/getGateListByLasId`,
705 method: 'get',
706 params
707 })
708 }
709
710 // 旅游
711
712
......
...@@ -404,6 +404,18 @@ export const constantRoutes = [ ...@@ -404,6 +404,18 @@ export const constantRoutes = [
404 meta: { title: 'Hotel Reservation' } 404 meta: { title: 'Hotel Reservation' }
405 }, 405 },
406 { 406 {
407 path: 'car/:cptId',
408 component: () => import('@/viewsPc/booking/car'),
409 name: 'car',
410 meta: { title: 'Vehicle Reservation' }
411 },
412 {
413 path: 'carList/:cptId',
414 component: () => import('@/viewsPc/booking/carList'),
415 name: 'carList',
416 meta: { title: 'carList' }
417 },
418 {
407 path: 'car/:cptId/:id', 419 path: 'car/:cptId/:id',
408 component: () => import('@/viewsPc/booking/carOrder'), 420 component: () => import('@/viewsPc/booking/carOrder'),
409 name: 'carOrder', 421 name: 'carOrder',
...@@ -416,12 +428,6 @@ export const constantRoutes = [ ...@@ -416,12 +428,6 @@ export const constantRoutes = [
416 meta: { title: 'Hotel Reservation' } 428 meta: { title: 'Hotel Reservation' }
417 }, 429 },
418 { 430 {
419 path: 'car/:cptId',
420 component: () => import('@/viewsPc/booking/car'),
421 name: 'car',
422 meta: { title: 'Vehicle Reservation' }
423 },
424 {
425 path: 'dinner/:cptId', 431 path: 'dinner/:cptId',
426 component: () => import('@/viewsPc/booking/dinner'), 432 component: () => import('@/viewsPc/booking/dinner'),
427 name: 'dinner', 433 name: 'dinner',
......
1 <template>
2 <div>
3 <div class="banner">
4 <img v-if="language==0" src="@/assets/booking/cl_text_c.png">
5 <img v-else src="@/assets/booking/cl_text_e.png">
6 </div>
7 <div class="box">
8 <div class="searchBar">
9 <el-input v-model="query.name" :placeholder="language==0?'请输入关键字搜索':'Search'" class="no-border" />
10 <el-button class="btn-lineG" icon="search" size="large" type="primary" @click="getVehicleByCheckIn">
11 {{ language == 0 ? '搜索' : 'Search' }}
12 </el-button>
13 </div>
14 </div>
15 <div v-loading="loading" class="box">
16 <div v-for="(h,index) in list" :key="index" class="routeItem">
17 <el-row :gutter="20" align="middle" class="w100">
18 <el-col :lg="2" :sm="6">
19 <div class="index">{{ language == 0 ? '路线' : 'Route' }}{{ index + 1 }}
20 </div>
21 </el-col>
22 <el-col :lg="6">
23 <p class="esp text-center">{{ h.checkIn }}</p>
24 </el-col>
25 <el-col :lg="4" :sm="6" class="text-center">
26 <img class="mauto w40px" src="@/assets/booking/wf.png">
27 </el-col>
28 <el-col :lg="6">
29 <p class="esp text-center">{{ h.checkOut }}</p>
30 </el-col>
31 <el-col :lg="3" :sm="12">
32 <div v-if="language==0" class="price">
33 ¥
34 <span>{{ h.upPrice }}</span>
35 </div>
36 <div v-else class="price">
37
38 <span>{{ h.upPriceEn }}</span>
39 </div>
40
41 </el-col>
42 <el-col :lg="3" :sm="12">
43 <el-button class="btn-lineG w100" round type="primary" @click="goOrder(h)">
44 {{ language == 0 ? '我要预订' : 'Select' }}
45 </el-button>
46 </el-col>
47 </el-row>
48 </div>
49
50 <el-empty v-show="!loading&&list.length==0" :image="`/img/order_no.png`" :image-size="228" description="" />
51 <div style="height: 50px" />
52 </div>
53
54 </div>
55 </template>
56
57 <script setup>
58 import { onMounted, ref } from '@vue/runtime-core'
59 import * as booking from '@/apiPc/booking'
60 import { useRouter, useRoute } from 'vue-router'
61 import { useStorage } from '@vueuse/core/index'
62 import useUserStore from '@/store/modules/user'
63
64 const user = useUserStore().user
65 const router = useRouter()
66 const route = useRoute()
67 const language = useStorage('language', 0)
68 const query = ref({})
69 const activeName = ref(0)
70 const cptId = ref('')
71 const list = ref([])
72 const loading = ref(false)
73
74
75 onMounted(() => {
76 query.value.activityId = route.query.activityId
77 query.value.checkIn = route.query.checkIn
78 query.value.checkOut = route.query.checkOut
79 query.value.category = route.query.category
80 // if (language.value==0)
81 // getList()
82 getVehicleByCheckIn()
83 })
84
85
86 function getList() {
87 // if (language.value!=0)return
88 loading.value = true
89 booking.getActivityCarList(query.value).then(res => {
90 list.value = res.rows
91 loading.value = false
92 }).catch(e => {
93 loading.value = false
94 })
95 }
96
97 async function getVehicleByCheckIn() {
98 loading.value = true
99 const res = await booking.getVehicleByCheckIn(query.value)
100 list.value = res.data || []
101 loading.value = false
102 }
103
104 function goOrder(item, car) {
105 if (!user) {
106 useUserStore().setReLogin()
107 return
108 }
109 router.push({
110 name: 'carOrder',
111 params: {
112 id: item.id
113 },
114 query: {
115 item: encodeURIComponent(JSON.stringify(item))
116 }
117 })
118 }
119 </script>
120
121 <style lang="scss" scoped>
122
123 .hotel {
124 margin-bottom: 20px;
125 cursor: pointer;
126
127 .index {
128 display: flex;
129 font-weight: 500;
130 padding-left: 20px;
131 font-size: 18px;
132 align-items: center;
133
134 img {
135 margin-left: 15px;
136 }
137 }
138
139 p {
140 font-weight: 500;
141 font-size: 24px;
142 color: #000000;
143 }
144
145 &:hover .el-card {
146 box-shadow: 0 0 10px #aaa;
147 }
148 }
149
150 .hotel:nth-child(7n) .index {
151 color: #009E96;
152 }
153
154 .hotel:nth-child(7n+1) .index {
155 color: #FF8124;
156 }
157
158 .hotel:nth-child(7n+2) .index {
159 color: #E4007F;
160 }
161
162 .hotel:nth-child(7n+3) .index {
163 color: #0068B7;
164 }
165
166 .hotel:nth-child(7n+4) .index {
167 color: #32B16C;
168 }
169
170 .hotel:nth-child(7n+5) .index {
171 color: #920783;
172 }
173
174 .hotel:nth-child(7n+6) .index {
175 color: #00B7EE;
176 }
177
178 .banner {
179 height: 140px;
180 background-size: cover;
181 text-align: center;
182 background: url("@/assets/booking/cl_bg.png") center;
183 display: flex;
184 align-items: center;
185 justify-content: center;
186
187 img {
188 display: block;
189 margin: -30px auto 0;
190 width: auto;
191 }
192 }
193
194 .searchBar {
195 position: relative;
196 top: -30px;
197 background: #FFFFFF;
198 display: flex;
199 padding: 20px;
200 border-radius: 10px;
201 }
202
203 .no-border {
204 border: none;
205 background: #F5F7F9;
206
207 :deep(.el-input__wrapper) {
208 border: none;
209 box-shadow: none;
210 background: #F5F7F9;
211 }
212 }
213
214 .starBox {
215 img {
216 display: inline-block;
217 margin-right: 4px
218 }
219 }
220
221 .tagbox {
222 margin: 15px 0;
223
224 a {
225 color: #AFB5B9;
226 font-size: 12px;
227 }
228
229 span {
230 border-radius: 13px;
231 font-size: 12px;
232 padding: 4px 10px;
233 margin-right: 10px;
234 font-weight: 400;
235 }
236
237 span:nth-child(4n) {
238 background: rgba(50, 177, 108, 0.2);
239 color: rgba(50, 177, 108, 1);
240 }
241
242 span:nth-child(4n+1) {
243 background: rgba(243, 152, 0, 0.2);
244 color: rgba(243, 152, 0, 1);
245 }
246
247 span:nth-child(4n+2) {
248 background: rgba(0, 160, 233, 0.2);
249 color: rgba(0, 160, 233, 1);
250 }
251
252 span:nth-child(4n+3) {
253 background: rgba(247, 64, 166, 0.2);
254 color: rgba(247, 64, 166, 1);
255 }
256 }
257
258 .name.flex {
259 align-items: center;
260 }
261
262 .name .tagbox {
263 margin: 0 0 0 15px;
264 }
265
266 .room {
267 background: #FAFBFD;
268 margin: 20px 0 0;
269 padding: 20px;
270 border: 1px solid #E5E5E5;
271
272 .name {
273 font-size: 20px;
274 margin: 0 0 10px;
275 }
276
277 .roomImg {
278 aspect-ratio: 16/9;
279 border-radius: 10px;
280 overflow: hidden;
281
282 img {
283 width: 100%;
284 object-fit: cover;
285 object-position: center;
286 height: 100%;
287 }
288 }
289
290
291 .bg-lineg {
292 margin: auto;
293 border-radius: 10px;
294 text-align: center;
295 padding: 7px 2px 2px;
296 font-size: 24px;
297 width: 66px;
298 cursor: pointer;
299
300 div {
301 background: #fff;
302 font-size: 13px;
303 border-radius: 20px;
304 padding: 0 10px;
305 color: #453DEA;
306 font-weight: 500;
307 }
308 }
309 }
310
311 .routeItem {
312 background: #fff;
313 border-radius: 10px;
314 margin: 0 0 20px;
315 padding: 10px 20px;
316 box-shadow: 0 0 6px #eee;
317
318 .price {
319 color: #FF8124;
320 font-size: 24px;
321
322 span {
323 font-size: 36px;
324 font-family: "DIN Alternate"
325 }
326 }
327 }
328 </style>
1 <template> 1 <template>
2 <el-dialog v-model="show" width="500" :title="languageFormat(language, '出行人信息', 'Travelers')" center 2 <el-dialog
3 append-to-body> 3 v-model="show" :title="languageFormat(language, '出行人信息', 'Travelers')" append-to-body center
4 <el-button type="primary" plain @click="addPeopl">{{ languageFormat(language, "新增", "Add") }}</el-button> 4 width="500"
5 >
6 <el-button plain type="primary" @click="addPeopl">{{ languageFormat(language, "新增", "Add") }}</el-button>
5 <el-radio-group v-model="personId"> 7 <el-radio-group v-model="personId">
6 <div v-for="(it, index) in personList" :key="index" class="e_item"> 8 <div v-for="(it, index) in personList" :key="index" class="e_item">
7 <el-radio border :value="it.id" :disabled="hasPersonIds?.indexOf(it.id)!=-1"> 9 <el-radio :disabled="hasPersonIds?.indexOf(it.id)!=-1" :value="it.id" border>
8 10
9 <div class="name">{{ it.name }}</div> 11 <div class="name">{{ it.name }}</div>
10 <div class="code"> 12 <div class="code">
11 <span v-if="it.idcType==0">{{ language == 0 ? '身份证' : 'ID number' }}</span> 13 <span v-if="it.idcType==0">{{ language == 0 ? '身份证' : 'ID number' }}</span>
12 <span v-if="it.idcType==1">{{ language == 0 ? '护照' : 'Passport' }}</span> 14 <span v-if="it.idcType==1">{{ language == 0 ? '护照' : 'Passport' }}</span>
13 <span v-if="it.idcType==2">{{ language == 0 ? '其他' : 'Other' }}</span> 15 <span v-if="it.idcType==2">{{ language == 0 ? '其他' : 'Other' }}</span>
14 16
15 {{ it.idCard }} 17 {{ it.idCard }}
16 </div> 18 </div>
17 19
18 </el-radio> 20 </el-radio>
19 </div> 21 </div>
20 </el-radio-group> 22 </el-radio-group>
...@@ -25,28 +27,28 @@ ...@@ -25,28 +27,28 @@
25 </div> 27 </div>
26 </template> 28 </template>
27 </el-dialog> 29 </el-dialog>
28 30
29 31
30 <el-dialog v-model="showAdd" :title="language ==0?'新增出行人':'Add traveler'" center append-to-body> 32 <el-dialog v-model="showAdd" :title="language ==0?'新增出行人':'Add traveler'" append-to-body center>
31 <el-form 33 <el-form
32 ref="formRef" :model="form" label-width="100px" size="large" 34 ref="formRef" :model="form" label-width="100px" size="large"
33 style="margin: 80px" 35 style="margin: 80px"
34 > 36 >
35 <el-form-item :label="language==0?'姓名':'name'" prop="name" required :show-message="false"> 37 <el-form-item :label="language==0?'姓名':'name'" :show-message="false" prop="name" required>
36 <el-input v-model="form.name" :placeholder="language==0?'请输入':'Please input'"/> 38 <el-input v-model="form.name" :placeholder="language==0?'请输入':'Please input'" />
37 </el-form-item> 39 </el-form-item>
38 <el-form-item :label="language==0?'证件类型':'ID Type'" prop="idcType" required :show-message="false"> 40 <el-form-item :label="language==0?'证件类型':'ID Type'" :show-message="false" prop="idcType" required>
39 <el-select v-model="form.idcType" :placeholder="language==0?'请选择':'Please choose'"> 41 <el-select v-model="form.idcType" :placeholder="language==0?'请选择':'Please choose'">
40 <el-option :label="language==0?'身份证':'Identity card'" value="0"/> 42 <el-option :label="language==0?'身份证':'Identity card'" value="0" />
41 <el-option :label="language==0?'护照':'Passport'" value="1"/> 43 <el-option :label="language==0?'护照':'Passport'" value="1" />
42 <el-option :label="language==0?'其他':'Other'" value="2"/> 44 <el-option :label="language==0?'其他':'Other'" value="2" />
43 </el-select> 45 </el-select>
44 </el-form-item> 46 </el-form-item>
45 <el-form-item :label="language==0?'证件号':'ID number'" prop="idCard" required :show-message="false"> 47 <el-form-item :label="language==0?'证件号':'ID number'" :show-message="false" prop="idCard" required>
46 <el-input v-model="form.idCard" :placeholder="language==0?'请输入证件号':'Please enter the ID after ah'"/> 48 <el-input v-model="form.idCard" :placeholder="language==0?'请输入证件号':'Please enter the ID after ah'" />
47 </el-form-item> 49 </el-form-item>
48 </el-form> 50 </el-form>
49 51
50 <template #footer> 52 <template #footer>
51 <div class="dialog-footer"> 53 <div class="dialog-footer">
52 <el-button class="can_pay" @click="showAdd = false">{{ language == 0 ? '取 消' : 'cancel' }}</el-button> 54 <el-button class="can_pay" @click="showAdd = false">{{ language == 0 ? '取 消' : 'cancel' }}</el-button>
...@@ -58,15 +60,15 @@ ...@@ -58,15 +60,15 @@
58 </template> 60 </template>
59 61
60 <script setup> 62 <script setup>
61 import {aadSceneCustomer, checkSceneCustomer, getMyFriends} from '/@/apiPc/booking' 63 import { aadSceneCustomer, checkSceneCustomer, getMyFriends } from '/@/apiPc/booking'
62 import {languageFormat} from '/@/viewsPc/seat/utils/language' 64 import { languageFormat } from '/@/viewsPc/seat/utils/language'
63 import {onMounted, ref} from 'vue' 65 import { onMounted, ref } from 'vue'
64 import {useStorage} from '@vueuse/core/index' 66 import { useStorage } from '@vueuse/core/index'
65 import _ from 'lodash' 67 import _ from 'lodash'
66 import {getCurrentInstance} from '@vue/runtime-core' 68 import { getCurrentInstance } from '@vue/runtime-core'
67 69
68 const emit = defineEmits(['addPerson']) 70 const emit = defineEmits(['addPerson'])
69 const {proxy} = getCurrentInstance() 71 const { proxy } = getCurrentInstance()
70 72
71 const show = ref(false) 73 const show = ref(false)
72 const showAdd = ref(false) 74 const showAdd = ref(false)
...@@ -95,27 +97,34 @@ const addPeopl = () => { ...@@ -95,27 +97,34 @@ const addPeopl = () => {
95 97
96 const addPerson = () => { 98 const addPerson = () => {
97 const person = _.find(personList.value, (it) => it.id == personId.value) 99 const person = _.find(personList.value, (it) => it.id == personId.value)
98 100
99 checkSceneCustomer({ 101 show.value = false
102 emit('addPerson', Object.assign(currParams, {
100 customerId: person.id, 103 customerId: person.id,
101 gateType: currParams.gateType 104 name: person.name,
102 }).then((res) => { 105 idcType: person.idcType,
103 if (res.data == 201) { 106 idCard: person.idCard
104 proxy.$modal.msgError(language.value == 0 ? '护照只能购买成人票' : 'Passport can only buy adult tickets') 107 }))
105 } else if (res.data == 202) { 108 // checkSceneCustomer({
106 proxy.$modal.msgError(language.value == 0 ? '此身份证不能购买老人票' : 'This ID cannot buy senior tickets') 109 // customerId: person.id,
107 } else if (res.data == 203) { 110 // gateType: currParams.gateType
108 proxy.$modal.msgError(language.value == 0 ? '此身份证不能购买儿童票' : 'This ID cannot buy child tickets') 111 // }).then((res) => {
109 } else { 112 // if (res.data == 201) {
110 show.value = false 113 // proxy.$modal.msgError(language.value == 0 ? '护照只能购买成人票' : 'Passport can only buy adult tickets')
111 emit('addPerson', Object.assign(currParams, { 114 // } else if (res.data == 202) {
112 customerId: person.id, 115 // proxy.$modal.msgError(language.value == 0 ? '此身份证不能购买老人票' : 'This ID cannot buy senior tickets')
113 name: person.name, 116 // } else if (res.data == 203) {
114 idcType: person.idcType, 117 // proxy.$modal.msgError(language.value == 0 ? '此身份证不能购买儿童票' : 'This ID cannot buy child tickets')
115 idCard: person.idCard 118 // } else {
116 })) 119 // show.value = false
117 } 120 // emit('addPerson', Object.assign(currParams, {
118 }) 121 // customerId: person.id,
122 // name: person.name,
123 // idcType: person.idcType,
124 // idCard: person.idCard
125 // }))
126 // }
127 // })
119 } 128 }
120 129
121 const submit = () => { 130 const submit = () => {
...@@ -144,14 +153,14 @@ defineExpose({ ...@@ -144,14 +153,14 @@ defineExpose({
144 currParams = params 153 currParams = params
145 personId.value = params.customerId 154 personId.value = params.customerId
146 hasPersonIds.value = params.hasCustomerIds 155 hasPersonIds.value = params.hasCustomerIds
147 156
148 show.value = true 157 show.value = true
149 } 158 }
150 }) 159 })
151 160
152 </script> 161 </script>
153 162
154 <style scoped lang="scss"> 163 <style lang="scss" scoped>
155 .el-radio-group { 164 .el-radio-group {
156 display: block; 165 display: block;
157 } 166 }
...@@ -159,17 +168,17 @@ defineExpose({ ...@@ -159,17 +168,17 @@ defineExpose({
159 .e_item { 168 .e_item {
160 margin: 20px 0 0 0; 169 margin: 20px 0 0 0;
161 width: 100%; 170 width: 100%;
162 171
163 .el-radio { 172 .el-radio {
164 width: 100%; 173 width: 100%;
165 height: auto; 174 height: auto;
166 padding: 10px; 175 padding: 10px;
167 } 176 }
168 177
169 .name { 178 .name {
170 font-size: 16px; 179 font-size: 16px;
171 } 180 }
172 181
173 .code { 182 .code {
174 font-size: 14px; 183 font-size: 14px;
175 margin: 4px 0 0; 184 margin: 4px 0 0;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
2 <div> 2 <div>
3 <!-- top --> 3 <!-- top -->
4 <div class="container top"> 4 <div class="container top">
5 <img :src="fillImgUrl(matchForm.ticketImg)" class="cover_img"> 5 <img :src="fillImgUrl(matchForm.ticketImg)" alt="" class="cover_img">
6 <div class="info"> 6 <div class="info">
7 <div class="title">{{ matchForm.name }}</div> 7 <div class="title">{{ matchForm.name }}</div>
8 <div class="time"> 8 <div class="time">
...@@ -37,11 +37,11 @@ ...@@ -37,11 +37,11 @@
37 <div class="address"> 37 <div class="address">
38 {{ triggerLanguage(language, "地址", "Location") }}{{ matchForm.address }} 38 {{ triggerLanguage(language, "地址", "Location") }}{{ matchForm.address }}
39 </div> 39 </div>
40 40
41 41
42 <div v-if="timeData>0"> 42 <div v-if="timeData>0">
43 <!-- 倒计时--> 43 <!-- 倒计时-->
44 44
45 <p class="countDownTitle"> 45 <p class="countDownTitle">
46 <span v-if="language==0">售票倒计时</span> 46 <span v-if="language==0">售票倒计时</span>
47 <span v-else>TICKET COUNTDOWN</span> 47 <span v-else>TICKET COUNTDOWN</span>
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
60 </van-count-down> 60 </van-count-down>
61 </div> 61 </div>
62 <div v-else> 62 <div v-else>
63 63
64 <!-- 票档 --> 64 <!-- 票档 -->
65 <div class="select_item_box"> 65 <div class="select_item_box">
66 <div class="label"> 66 <div class="label">
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
83 </div> 83 </div>
84 </div> 84 </div>
85 </div> 85 </div>
86 86
87 <!-- 场馆 --> 87 <!-- 场馆 -->
88 <div class="select_item_box"> 88 <div class="select_item_box">
89 <div class="label"> 89 <div class="label">
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
93 <span 93 <span
94 v-if="currVenue?.images" 94 v-if="currVenue?.images"
95 style="color: #493ceb;cursor:pointer;font-weight:600;font-size: 14px" 95 style="color: #493ceb;cursor:pointer;font-weight:600;font-size: 14px"
96 @click="showUrl=currVenue.images; show=true" 96 @click="handleImage"
97 > <span style="color: red;font-size: 18px">*</span> 97 > <span style="color: red;font-size: 18px">*</span>
98 {{ 98 {{
99 language == 0 ? '点击查看场馆布局' : 'View Venue Layout' 99 language == 0 ? '点击查看场馆布局' : 'View Venue Layout'
...@@ -116,7 +116,7 @@ ...@@ -116,7 +116,7 @@
116 </div> 116 </div>
117 </div> 117 </div>
118 </div> 118 </div>
119 119
120 <!-- 场次 --> 120 <!-- 场次 -->
121 <div class="select_item_box"> 121 <div class="select_item_box">
122 <div class="label"> 122 <div class="label">
...@@ -140,11 +140,11 @@ ...@@ -140,11 +140,11 @@
140 <span v-else>{{ 140 <span v-else>{{
141 language == 0 ? '夜间场' : 'Night' 141 language == 0 ? '夜间场' : 'Night'
142 }}</span> 142 }}</span>
143 <!-- {{ key=='1000'?'日间场':'夜间场' }}--> 143 <!-- {{ key=='1000'?'日间场':'夜间场' }}-->
144 </div> 144 </div>
145 </div> 145 </div>
146 </div> 146 </div>
147 147
148 <!-- 票型 --> 148 <!-- 票型 -->
149 <div class="select_item_box"> 149 <div class="select_item_box">
150 <div class="label"> 150 <div class="label">
...@@ -177,8 +177,8 @@ ...@@ -177,8 +177,8 @@
177 </div> 177 </div>
178 </div> 178 </div>
179 </div> 179 </div>
180 180
181 181
182 <!-- 价格 --> 182 <!-- 价格 -->
183 <div class="select_item_box"> 183 <div class="select_item_box">
184 <div class="label"> 184 <div class="label">
...@@ -205,7 +205,7 @@ ...@@ -205,7 +205,7 @@
205 {{ matchForm.ticketRemark }} 205 {{ matchForm.ticketRemark }}
206 </div> 206 </div>
207 </div> 207 </div>
208 208
209 <div 209 <div
210 v-if="endTime<=0" class="btn" style="margin-left: 40px;opacity: 0.5;cursor: not-allowed;margin-top: 10px" 210 v-if="endTime<=0" class="btn" style="margin-left: 40px;opacity: 0.5;cursor: not-allowed;margin-top: 10px"
211 @click="toSelectClosed" 211 @click="toSelectClosed"
...@@ -219,20 +219,23 @@ ...@@ -219,20 +219,23 @@
219 triggerLanguage(language, "立即购票", "Buy tickets now") 219 triggerLanguage(language, "立即购票", "Buy tickets now")
220 }} 220 }}
221 </div> 221 </div>
222 222
223 </div> 223 </div>
224 224
225 </div> 225 </div>
226 </div> 226 </div>
227 227
228 <div class="container bottom"> 228 <div class="container bottom">
229 <div style="display: flex"> 229 <div style="display: flex">
230 <div :class="{'bg':active==1}" class="buBg" @click="active=1">{{ language==0?'购票说明':'Notice' }}</div> 230 <div :class="{'bg':active==1}" class="buBg" @click="active=1">{{ language == 0 ? '购票说明' : 'Notice' }}</div>
231 <div :class="{'bg' :active==2}" class="buBg" @click="active=2">{{ language==0?'购票须知':'Instructions' }}</div> 231 <div :class="{'bg' :active==2}" class="buBg" @click="active=2">{{
232 language == 0 ? '购票须知' : 'Instructions'
233 }}
234 </div>
232 </div> 235 </div>
233 <div v-show="active==1" class="rich_content" v-html="matchForm.ticketDes" /> 236 <div v-show="active==1" class="rich_content" v-html="matchForm.ticketDes" />
234 <div v-show="active==2" class="rich_content" v-html="matchForm.ticketNotice" /> 237 <div v-show="active==2" class="rich_content" v-html="matchForm.ticketNotice" />
235 238
236 <el-dialog v-model="show" title="" width="1000px"> 239 <el-dialog v-model="show" title="" width="1000px">
237 <div> 240 <div>
238 <img :src="fillImgUrl(showUrl)" alt="" style="width: 100%"> 241 <img :src="fillImgUrl(showUrl)" alt="" style="width: 100%">
...@@ -250,7 +253,8 @@ import { ...@@ -250,7 +253,8 @@ import {
250 getTicketListApi, 253 getTicketListApi,
251 checkNonPayment, 254 checkNonPayment,
252 getStadiumList, 255 getStadiumList,
253 getActivityTypeVoListByLatsId 256 getActivityTypeVoListByLatsId,
257 getBaseInfoByActiveId
254 } from '@/apiPc/booking' 258 } from '@/apiPc/booking'
255 259
256 import { dayjs } from 'element-plus' 260 import { dayjs } from 'element-plus'
...@@ -290,6 +294,7 @@ const venueList = ref([]) ...@@ -290,6 +294,7 @@ const venueList = ref([])
290 const tickList = ref([]) 294 const tickList = ref([])
291 const currVenue = ref(null) 295 const currVenue = ref(null)
292 const currTick = ref(null) 296 const currTick = ref(null)
297 const matchData = ref({})
293 298
294 watch(show, (val) => { 299 watch(show, (val) => {
295 if (!val) { 300 if (!val) {
...@@ -316,7 +321,7 @@ getTicketList() ...@@ -316,7 +321,7 @@ getTicketList()
316 321
317 async function getTicketList() { 322 async function getTicketList() {
318 const res = await getTicketListApi({ 323 const res = await getTicketListApi({
319 activityId: activeId.value, isView: 1 324 activityId: activeId.value, status: 1
320 }) 325 })
321 tickClass.value = res.rows 326 tickClass.value = res.rows
322 if (tickClass.value.length > 0) { 327 if (tickClass.value.length > 0) {
...@@ -339,7 +344,7 @@ async function getTicketListType() { ...@@ -339,7 +344,7 @@ async function getTicketListType() {
339 const res = await getActivityTypeVoListByLatsId({ latsId: selectForm.value.latsId }) 344 const res = await getActivityTypeVoListByLatsId({ latsId: selectForm.value.latsId })
340 tickList.value = res.data 345 tickList.value = res.data
341 selectForm.value.sessionType = Object.keys(res.data)[0] 346 selectForm.value.sessionType = Object.keys(res.data)[0]
342 347
343 currTick.value = tickList.value[selectForm.value.sessionType][0] 348 currTick.value = tickList.value[selectForm.value.sessionType][0]
344 selectForm.value.latstId = currTick.value?.id 349 selectForm.value.latstId = currTick.value?.id
345 selectForm.value.price = currTick.value?.price 350 selectForm.value.price = currTick.value?.price
...@@ -354,7 +359,7 @@ function select(v) { ...@@ -354,7 +359,7 @@ function select(v) {
354 selectForm.value.id = null 359 selectForm.value.id = null
355 selectForm.value.price = '--' 360 selectForm.value.price = '--'
356 selectForm.value.priceEn = '--' 361 selectForm.value.priceEn = '--'
357 362
358 getVenueList() 363 getVenueList()
359 } 364 }
360 365
...@@ -366,13 +371,13 @@ function selectVenue(v) { ...@@ -366,13 +371,13 @@ function selectVenue(v) {
366 selectForm.value.id = null 371 selectForm.value.id = null
367 selectForm.value.price = '--' 372 selectForm.value.price = '--'
368 selectForm.value.priceEn = '--' 373 selectForm.value.priceEn = '--'
369 374
370 getTicketListType() 375 getTicketListType()
371 } 376 }
372 377
373 function selectSessionType(key) { 378 function selectSessionType(key) {
374 selectForm.value.sessionType = key 379 selectForm.value.sessionType = key
375 380
376 currTick.value = tickList.value[selectForm.value.sessionType][0] 381 currTick.value = tickList.value[selectForm.value.sessionType][0]
377 selectForm.value.latstId = currTick.value?.id 382 selectForm.value.latstId = currTick.value?.id
378 selectForm.value.price = currTick.value?.price 383 selectForm.value.price = currTick.value?.price
...@@ -418,6 +423,20 @@ function toSelectClosed() { ...@@ -418,6 +423,20 @@ function toSelectClosed() {
418 type: 'warning' 423 type: 'warning'
419 }) 424 })
420 } 425 }
426
427 async function getmatchData() {
428 const res = await getBaseInfoByActiveId(route.params.activeId)
429 matchData.value = res.data
430 console.log(res)
431 }
432
433 function handleImage() {
434 // ticketImg
435 showUrl.value = matchData.value.ticketLayout
436 show.value = true
437 }
438
439 getmatchData()
421 </script> 440 </script>
422 441
423 <style lang="scss" scoped> 442 <style lang="scss" scoped>
...@@ -453,18 +472,18 @@ function toSelectClosed() { ...@@ -453,18 +472,18 @@ function toSelectClosed() {
453 display: flex; 472 display: flex;
454 padding: 19px; 473 padding: 19px;
455 margin-top: 26px; 474 margin-top: 26px;
456 475
457 .cover_img { 476 .cover_img {
458 width: 390px; 477 width: 500px;
459 height: 517px; 478 height: 667px;
460 object-fit: fill; 479 object-fit: fill;
461 margin-right: 36px; 480 margin-right: 36px;
462 } 481 }
463 482
464 .info { 483 .info {
465 padding-top: 12px; 484 padding-top: 12px;
466 width: 100%; 485 width: 100%;
467 486
468 .title { 487 .title {
469 font-weight: bold; 488 font-weight: bold;
470 font-size: 28px; 489 font-size: 28px;
...@@ -472,7 +491,7 @@ function toSelectClosed() { ...@@ -472,7 +491,7 @@ function toSelectClosed() {
472 line-height: 1.6; 491 line-height: 1.6;
473 margin-bottom: 15px; 492 margin-bottom: 15px;
474 } 493 }
475 494
476 .time { 495 .time {
477 font-weight: 600; 496 font-weight: 600;
478 font-size: 16px; 497 font-size: 16px;
...@@ -480,7 +499,7 @@ function toSelectClosed() { ...@@ -480,7 +499,7 @@ function toSelectClosed() {
480 line-height: 24px; 499 line-height: 24px;
481 margin-bottom: 16px; 500 margin-bottom: 16px;
482 } 501 }
483 502
484 .address { 503 .address {
485 font-weight: 600; 504 font-weight: 600;
486 font-size: 16px; 505 font-size: 16px;
...@@ -488,15 +507,15 @@ function toSelectClosed() { ...@@ -488,15 +507,15 @@ function toSelectClosed() {
488 line-height: 24px; 507 line-height: 24px;
489 margin-bottom: 15px; 508 margin-bottom: 15px;
490 } 509 }
491 510
492 .select_item_box { 511 .select_item_box {
493 display: flex; 512 display: flex;
494 margin-bottom: 10px; 513 margin-bottom: 10px;
495 514
496 &:last-child { 515 &:last-child {
497 margin-bottom: 0; 516 margin-bottom: 0;
498 } 517 }
499 518
500 .label { 519 .label {
501 font-weight: 600; 520 font-weight: 600;
502 font-size: 16px; 521 font-size: 16px;
...@@ -505,18 +524,18 @@ function toSelectClosed() { ...@@ -505,18 +524,18 @@ function toSelectClosed() {
505 margin-right: 12px; 524 margin-right: 12px;
506 flex-shrink: 0; 525 flex-shrink: 0;
507 } 526 }
508 527
509 .forbid { 528 .forbid {
510 opacity: 0.5 !important; 529 opacity: 0.5 !important;
511 cursor: not-allowed !important; 530 cursor: not-allowed !important;
512 } 531 }
513 532
514 .select_item { 533 .select_item {
515 display: flex; 534 display: flex;
516 flex-wrap: wrap; 535 flex-wrap: wrap;
517 gap: 10px; 536 gap: 10px;
518 user-select: none; 537 user-select: none;
519 538
520 .tag_t { 539 .tag_t {
521 padding: 1px 15px; 540 padding: 1px 15px;
522 font-weight: 400; 541 font-weight: 400;
...@@ -526,7 +545,7 @@ function toSelectClosed() { ...@@ -526,7 +545,7 @@ function toSelectClosed() {
526 border: 1px solid #453dea; 545 border: 1px solid #453dea;
527 margin-left: 5px; 546 margin-left: 5px;
528 } 547 }
529 548
530 .tag { 549 .tag {
531 display: flex; 550 display: flex;
532 padding: 12px 18px; 551 padding: 12px 18px;
...@@ -537,7 +556,7 @@ function toSelectClosed() { ...@@ -537,7 +556,7 @@ function toSelectClosed() {
537 color: #4a4a4a; 556 color: #4a4a4a;
538 cursor: pointer; 557 cursor: pointer;
539 } 558 }
540 559
541 .tagActive { 560 .tagActive {
542 display: flex; 561 display: flex;
543 padding: 12px 18px; 562 padding: 12px 18px;
...@@ -548,14 +567,14 @@ function toSelectClosed() { ...@@ -548,14 +567,14 @@ function toSelectClosed() {
548 color: #493ceb; 567 color: #493ceb;
549 cursor: pointer; 568 cursor: pointer;
550 } 569 }
551 570
552 .tao { 571 .tao {
553 border: 1px solid #493ceb; 572 border: 1px solid #493ceb;
554 font-size: 14px; 573 font-size: 14px;
555 color: #493ceb; 574 color: #493ceb;
556 margin-left: 10px; 575 margin-left: 10px;
557 } 576 }
558 577
559 .tagDisabled { 578 .tagDisabled {
560 padding: 12px 18px; 579 padding: 12px 18px;
561 background: #878787; 580 background: #878787;
...@@ -567,7 +586,7 @@ function toSelectClosed() { ...@@ -567,7 +586,7 @@ function toSelectClosed() {
567 } 586 }
568 } 587 }
569 } 588 }
570 589
571 .btn { 590 .btn {
572 width: 175px; 591 width: 175px;
573 height: 40px; 592 height: 40px;
...@@ -587,7 +606,7 @@ function toSelectClosed() { ...@@ -587,7 +606,7 @@ function toSelectClosed() {
587 padding: 50px; 606 padding: 50px;
588 margin-top: 30px; 607 margin-top: 30px;
589 margin-bottom: 30px; 608 margin-bottom: 30px;
590 609
591 .title { 610 .title {
592 padding: 20px 30px; 611 padding: 20px 30px;
593 background: linear-gradient(270deg, #493ceb 0%, #8623fc 100%); 612 background: linear-gradient(270deg, #493ceb 0%, #8623fc 100%);
...@@ -597,15 +616,15 @@ function toSelectClosed() { ...@@ -597,15 +616,15 @@ function toSelectClosed() {
597 line-height: 30px; 616 line-height: 30px;
598 margin-bottom: 30px; 617 margin-bottom: 30px;
599 } 618 }
600 619
601 .rich_content { 620 .rich_content {
602 margin-top: 30px; 621 margin-top: 30px;
603 622
604 :deep(img) { 623 :deep(img) {
605 width: 100% !important; 624 width: 100% !important;
606 height: auto !important; 625 height: auto !important;
607 } 626 }
608 627
609 } 628 }
610 } 629 }
611 630
...@@ -623,44 +642,44 @@ function toSelectClosed() { ...@@ -623,44 +642,44 @@ function toSelectClosed() {
623 height: 160px; 642 height: 160px;
624 margin-right: 15px; 643 margin-right: 15px;
625 } 644 }
626 645
627 .info { 646 .info {
628 padding: 0; 647 padding: 0;
629 648
630 .title { 649 .title {
631 font-size: 14px; 650 font-size: 14px;
632 margin: 0; 651 margin: 0;
633 } 652 }
634 653
635 .time, .address, .label, .tip { 654 .time, .address, .label, .tip {
636 font-size: 12px; 655 font-size: 12px;
637 } 656 }
638 657
639 .title, .time, .address, .tip, .select_item_box { 658 .title, .time, .address, .tip, .select_item_box {
640 margin-bottom: 3px; 659 margin-bottom: 3px;
641 } 660 }
642 661
643 .select_item_box { 662 .select_item_box {
644 .label { 663 .label {
645 font-size: 12px; 664 font-size: 12px;
646 } 665 }
647 666
648 .select_item .tag { 667 .select_item .tag {
649 padding: 2px 10px; 668 padding: 2px 10px;
650 font-size: 12px; 669 font-size: 12px;
651 } 670 }
652 671
653 .select_item .tagActive { 672 .select_item .tagActive {
654 padding: 2px 10px; 673 padding: 2px 10px;
655 font-size: 12px; 674 font-size: 12px;
656 } 675 }
657 676
658 .select_item .tagDisabled { 677 .select_item .tagDisabled {
659 padding: 2px 10px; 678 padding: 2px 10px;
660 font-size: 12px; 679 font-size: 12px;
661 } 680 }
662 } 681 }
663 682
664 .btn { 683 .btn {
665 display: inline-block; 684 display: inline-block;
666 margin: 10px 0 0; 685 margin: 10px 0 0;
...@@ -678,8 +697,8 @@ function toSelectClosed() { ...@@ -678,8 +697,8 @@ function toSelectClosed() {
678 .bottom { 697 .bottom {
679 padding: 0 698 padding: 0
680 } 699 }
681 700
682 701
683 } 702 }
684 703
685 .countDownTitle { 704 .countDownTitle {
......
1 <template> 1 <template>
2 <div v-if="language == 0" class="itemBox"> 2 <div v-if="language == 0" class="itemBox">
3 <el-row :gutter="20"> 3 <el-row :gutter="20">
4 <el-col :sm="12" :lg="8" :xs="12"> 4 <el-col :lg="8" :sm="12" :xs="12">
5 <div class="item" @click="popRemark(1)"><img src="@/assets/dance/btn01.png">酒店预订</div> 5 <div class="item" @click="popRemark(1)"><img src="@/assets/dance/btn01.png">酒店预订</div>
6 </el-col> 6 </el-col>
7 <el-col :sm="12" :lg="8" :xs="12"> 7 <el-col :lg="8" :sm="12" :xs="12">
8 <div class="item" @click="popRemark(2)"><img src="@/assets/dance/btn02.png">车辆预订</div> 8 <div class="item" @click="popRemark(2)"><img src="@/assets/dance/btn02.png">车辆预订</div>
9 </el-col> 9 </el-col>
10 <!-- <el-col :sm="12" :lg="8" :xs="12">--> 10 <!-- <el-col :sm="12" :lg="8" :xs="12">-->
11 <!-- <div class="item" @click="popRemark(3)"><img src="@/assets/dance/btn03.png">餐饮预订</div>--> 11 <!-- <div class="item" @click="popRemark(3)"><img src="@/assets/dance/btn03.png">餐饮预订</div>-->
12 <!-- </el-col>--> 12 <!-- </el-col>-->
13 <el-col :sm="12" :lg="8" :xs="12"> 13 <el-col :lg="8" :sm="12" :xs="12">
14 <div class="item" @click="popRemark(8)"><img src="@/assets/dance/btn08.png">旅游服务</div> 14 <div class="item" @click="popRemark(8)"><img src="@/assets/dance/btn08.png">旅游服务</div>
15 </el-col> 15 </el-col>
16 <el-col :sm="12" :lg="8" :xs="12"> 16 <el-col :lg="8" :sm="12" :xs="12">
17 <div class="item" @click="popRemark(0)"><img src="@/assets/dance/btn04.png">票务预订</div> 17 <div class="item" @click="popRemark(0)"><img src="@/assets/dance/btn04.png">票务预订</div>
18 </el-col> 18 </el-col>
19 <el-col :sm="12" :lg="8" :xs="12"> 19 <el-col :lg="8" :sm="12" :xs="12">
20 <div class="item" @click="popRemark(4)"><img src="@/assets/dance/btn05.png">化妆预约</div> 20 <div class="item" @click="popRemark(4)"><img src="@/assets/dance/btn05.png">化妆预约</div>
21 </el-col> 21 </el-col>
22 <el-col :sm="12" :lg="8" :xs="12"> 22 <el-col :lg="8" :sm="12" :xs="12">
23 <div class="item" @click="popRemark(5)"><img src="@/assets/dance/btn06.png">拍照预约</div> 23 <div class="item" @click="popRemark(5)"><img src="@/assets/dance/btn06.png">拍照预约</div>
24 </el-col> 24 </el-col>
25 </el-row> 25 </el-row>
26 </div> 26 </div>
27 <div v-else class="itemBox_en"> 27 <div v-else class="itemBox_en">
28 <el-row :gutter="20"> 28 <el-row :gutter="20">
29 <el-col :sm="12" :lg="8" :xs="12"> 29 <el-col :lg="8" :sm="12" :xs="12">
30 <div class="item_en" @click="popRemark(1)"><img src="@/assets/dance/btn01.png"> 30 <div class="item_en" @click="popRemark(1)"><img src="@/assets/dance/btn01.png">
31 <p>HOTEL RESERVATION</p> 31 <p>HOTEL RESERVATION</p>
32 </div> 32 </div>
33 </el-col> 33 </el-col>
34 <el-col :sm="12" :lg="8" :xs="12"> 34 <el-col :lg="8" :sm="12" :xs="12">
35 <div class="item_en" @click="popRemark(2)"><img src="@/assets/dance/btn02.png"> 35 <div class="item_en" @click="popRemark(2)"><img src="@/assets/dance/btn02.png">
36 <p>TRANSPORTATION RESERVATION</p> 36 <p>TRANSPORTATION RESERVATION</p>
37 </div> 37 </div>
38 </el-col> 38 </el-col>
39 <!-- <el-col :sm="12" :lg="8" :xs="12">--> 39 <!-- <el-col :sm="12" :lg="8" :xs="12">-->
40 <!-- <div class="item_en" @click="popRemark(3)"><img src="@/assets/dance/btn03.png">--> 40 <!-- <div class="item_en" @click="popRemark(3)"><img src="@/assets/dance/btn03.png">-->
41 <!-- <p>DINING RESERVATION</p>--> 41 <!-- <p>DINING RESERVATION</p>-->
42 <!-- </div>--> 42 <!-- </div>-->
43 <!-- </el-col>--> 43 <!-- </el-col>-->
44 <el-col :sm="12" :lg="8" :xs="12"> 44 <el-col :lg="8" :sm="12" :xs="12">
45 <div class="item_en" @click="popRemark(8)"><img src="@/assets/dance/btn08.png"> 45 <div class="item_en" @click="popRemark(8)"><img src="@/assets/dance/btn08.png">
46 <p>TRAVEL SERVICE</p> 46 <p>TRAVEL SERVICE</p>
47 </div> 47 </div>
48 </el-col> 48 </el-col>
49 <el-col :sm="12" :lg="8" :xs="12"> 49 <el-col :lg="8" :sm="12" :xs="12">
50 <div class="item_en" @click="popRemark(0)"> 50 <div class="item_en" @click="popRemark(0)">
51 <img src="@/assets/dance/btn04.png"> 51 <img src="@/assets/dance/btn04.png">
52 <p>TICKET BOOKING</p> 52 <p>TICKET BOOKING</p>
53 </div> 53 </div>
54 </el-col> 54 </el-col>
55 <el-col :sm="12" :lg="8" :xs="12"> 55 <el-col :lg="8" :sm="12" :xs="12">
56 <div class="item_en" @click="popRemark(4)"><img src="@/assets/dance/btn05.png"> 56 <div class="item_en" @click="popRemark(4)"><img src="@/assets/dance/btn05.png">
57 <p>MAKEUP APPOINTMENT</p> 57 <p>MAKEUP APPOINTMENT</p>
58 </div> 58 </div>
59 </el-col> 59 </el-col>
60 <el-col :sm="12" :lg="8" :xs="12"> 60 <el-col :lg="8" :sm="12" :xs="12">
61 <div class="item_en" @click="popRemark(5)"><img src="@/assets/dance/btn06.png"> 61 <div class="item_en" @click="popRemark(5)"><img src="@/assets/dance/btn06.png">
62 <p>PHOTOGRAPHY APPOINTMENT</p> 62 <p>PHOTOGRAPHY APPOINTMENT</p>
63 </div> 63 </div>
...@@ -109,12 +109,11 @@ watch(matchId, (val) => { ...@@ -109,12 +109,11 @@ watch(matchId, (val) => {
109 }) 109 })
110 110
111 onMounted(() => { 111 onMounted(() => {
112 112
113 }) 113 })
114 114
115 function building() { 115 function building() {
116 ElMessage.warning(language.value == 0 ? '感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。' : 'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.') 116 ElMessage.warning(language.value == 0 ? '感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。' : 'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.')
117 return
118 } 117 }
119 118
120 function popRemark(type) { 119 function popRemark(type) {
...@@ -123,12 +122,12 @@ function popRemark(type) { ...@@ -123,12 +122,12 @@ function popRemark(type) {
123 return 122 return
124 } 123 }
125 if ((form.value.isJdView == 0 && type == '1') || 124 if ((form.value.isJdView == 0 && type == '1') ||
126 (form.value.isCarView == 0 && type == '2') || 125 (form.value.isCarView == 0 && type == '2') ||
127 (form.value.isFoodView == 0 && type == '3') || 126 (form.value.isFoodView == 0 && type == '3') ||
128 (form.value.isMealView == 0 && type == '4') || 127 (form.value.isMealView == 0 && type == '4') ||
129 (form.value.isPhotoView == 0 && type == '5') || 128 (form.value.isPhotoView == 0 && type == '5') ||
130 (form.value.isTicket == 0 && type == '0') || 129 (form.value.isTicket == 0 && type == '0') ||
131 (form.value.isScenicView == 0 && type == '8') 130 (form.value.isScenicView == 0 && type == '8')
132 ) { 131 ) {
133 building() 132 building()
134 return 133 return
...@@ -173,21 +172,21 @@ function goBooking(n) { ...@@ -173,21 +172,21 @@ function goBooking(n) {
173 router.push({ path: `/booking/photography/${props.matchId}` }) 172 router.push({ path: `/booking/photography/${props.matchId}` })
174 break 173 break
175 case 8: 174 case 8:
176 // 酒店 175 // 旅游
177 router.push({ path: `/booking/travel/${props.matchId}` }) 176 router.push({ path: `/booking/travel/${props.matchId}` })
178 break 177 break
179 } 178 }
180 } 179 }
181 </script> 180 </script>
182 181
183 <style scoped lang="scss"> 182 <style lang="scss" scoped>
184 .itemBox { 183 .itemBox {
185 padding: 20px 40px; 184 padding: 20px 40px;
186 } 185 }
187 186
188 .itemBox_en { 187 .itemBox_en {
189 padding: 20px 40px; 188 padding: 20px 40px;
190 189
191 p { 190 p {
192 margin: 0; 191 margin: 0;
193 height: 40px; 192 height: 40px;
...@@ -206,7 +205,7 @@ function goBooking(n) { ...@@ -206,7 +205,7 @@ function goBooking(n) {
206 background: url("@/assets/dance/btn_bg.png") no-repeat left #FFFFFF; 205 background: url("@/assets/dance/btn_bg.png") no-repeat left #FFFFFF;
207 background-size: 100% 100%; 206 background-size: 100% 100%;
208 border-radius: 15px; 207 border-radius: 15px;
209 208
210 img { 209 img {
211 margin: 0 5%; 210 margin: 0 5%;
212 } 211 }
...@@ -227,20 +226,20 @@ function goBooking(n) { ...@@ -227,20 +226,20 @@ function goBooking(n) {
227 background-size: cover; 226 background-size: cover;
228 position: relative; 227 position: relative;
229 border-radius: 15px; 228 border-radius: 15px;
230 229
231 img { 230 img {
232 position: absolute; 231 position: absolute;
233 top: -30px; 232 top: -30px;
234 transition: all 0.2s; 233 transition: all 0.2s;
235 } 234 }
236 235
237 &:hover { 236 &:hover {
238 box-shadow: 0 0 10px #333; 237 box-shadow: 0 0 10px #333;
239 238
240 img { 239 img {
241 transform: rotateY(180deg); 240 transform: rotateY(180deg);
242 } 241 }
243 242
244 p { 243 p {
245 color: #000; 244 color: #000;
246 } 245 }
...@@ -248,9 +247,16 @@ function goBooking(n) { ...@@ -248,9 +247,16 @@ function goBooking(n) {
248 } 247 }
249 248
250 @media screen and (max-width: 768px) { 249 @media screen and (max-width: 768px) {
251 .itemBox,.itemBox_en{padding: 0 20px 20px} 250 .itemBox, .itemBox_en {
252 .item{font-size: 16px; 251 padding: 0 20px 20px
253 img{width: 50px;height: 50px} 252 }
253 .item {
254 font-size: 16px;
255
256 img {
257 width: 50px;
258 height: 50px
259 }
254 } 260 }
255 } 261 }
256 </style> 262 </style>
......
1 <template> 1 <template>
2 <el-dialog :title="title" v-model="show" width="400px" @close="close"> 2 <el-dialog v-model="show" :title="title" destroy-on-close width="400px" @close="close">
3 <div> 3 <div>
4 <h2 class="text-warning text-center" v-if="cptName">{{cptName}}</h2> 4 <h2 v-if="cptName" class="text-warning text-center">{{ cptName }}</h2>
5 5
6 <div v-if="type==1" class="plr20" v-html="form.reserveDes"></div> 6 <div v-if="type==1" class="plr20" v-html="form.reserveDes" />
7 <div v-if="type==2" class="plr20" v-html="form.reserveDesCar"></div> 7 <div v-if="type==2" class="plr20" v-html="form.reserveDesCar" />
8 <div v-if="type==3" class="plr20" v-html="form.reserveDesFood"></div> 8 <div v-if="type==3" class="plr20" v-html="form.reserveDesFood" />
9 <div v-if="type==4" class="plr20" v-html="form.reserveDesMeal"></div> 9 <div v-if="type==4" class="plr20" v-html="form.reserveDesMeal" />
10 <div v-if="type==5" class="plr20" v-html="form.reserveDesPhoto"></div> 10 <div v-if="type==5" class="plr20" v-html="form.reserveDesPhoto" />
11 <div v-if="type==0" class="plr20" v-html="form.reserveDesTitck"></div> 11 <div v-if="type==0" class="plr20" v-html="form.reserveDesTitck" />
12 <div v-if="type==8" class="plr20" v-html="form.reserveDesTravel"></div> 12 <div v-if="type==8" class="plr20" v-html="form.reserveDesScenic" />
13 </div> 13 </div>
14 <template #footer> 14 <template #footer>
15 <div class="dialog-footer text-center"> 15 <div class="dialog-footer text-center">
16 <el-button type="primary" class="btn-lineG w200px" round @click="ok">{{language==0?'确定':'Confirm'}}</el-button> 16 <el-button class="btn-lineG w200px" round type="primary" @click="ok">{{ language == 0 ? '确定' : 'Confirm' }}
17 </div> 17 </el-button>
18 </template> 18 </div>
19 </el-dialog> 19 </template>
20 </el-dialog>
20 </template> 21 </template>
21 22
22 <script setup> 23 <script setup>
23 import {getBaseInfoByActiveId} from "@/apiPc/booking"; 24 import { getBaseInfoByActiveId } from '@/apiPc/booking'
24 import {getCurrentInstance} from "@vue/runtime-core"; 25 import { getCurrentInstance } from '@vue/runtime-core'
25 import {useStorage} from "@vueuse/core/index"; 26 import { useStorage } from '@vueuse/core/index'
26 const emit = defineEmits([ 'submit']) 27
27 const {proxy} = getCurrentInstance() 28 const emit = defineEmits(['submit'])
28 const language= useStorage('language',0) 29 const { proxy } = getCurrentInstance()
29 import useUserStore from "@/store/modules/user"; 30 const language = useStorage('language', 0)
31 import useUserStore from '@/store/modules/user'
32
30 const user = useUserStore().user 33 const user = useUserStore().user
31 const title = ref('') 34 const title = ref('')
32 const cptName = ref('') 35 const cptName = ref('')
...@@ -48,28 +51,30 @@ defineExpose({ ...@@ -48,28 +51,30 @@ defineExpose({
48 51
49 function getData() { 52 function getData() {
50 console.log(matchId) 53 console.log(matchId)
51 getBaseInfoByActiveId(matchId).then(res=>{ 54 getBaseInfoByActiveId(matchId).then(res => {
52 form.value = res.data || {} 55 form.value = res.data || {}
53 console.log(form.value) 56 console.log(form.value)
54 }).catch(err=>{ 57 }).catch(err => {
55 console.log(err) 58 console.log(err)
56 }) 59 })
57 } 60 }
61
58 function close() { 62 function close() {
59 show.value = false 63 show.value = false
60 } 64 }
65
61 function ok() { 66 function ok() {
62 // type 67 // type
63 show.value = false 68 show.value = false
64 69
65 // if(!user){ 70 // if(!user){
66 // useUserStore().setVisitor() 71 // useUserStore().setVisitor()
67 // } else { 72 // } else {
68 emit('submit', type) 73 emit('submit', type)
69 // } 74 // }
70 } 75 }
71 </script> 76 </script>
72 77
73 <style scoped lang="scss"> 78 <style lang="scss" scoped>
74 79
75 </style> 80 </style>
......
...@@ -70,8 +70,8 @@ export default defineConfig(({ mode, command }) => { ...@@ -70,8 +70,8 @@ export default defineConfig(({ mode, command }) => {
70 rewrite: (p) => p.replace(/^\/dev-api\/ztx-train/, '') 70 rewrite: (p) => p.replace(/^\/dev-api\/ztx-train/, '')
71 }, 71 },
72 '/dev-api/ztx-match': { 72 '/dev-api/ztx-match': {
73 // target: 'http://192.168.1.118:8081', 73 target: 'http://192.168.1.118:8081',
74 target: 'https://wdsfwuxicenter.com/stage-api/', 74 // target: 'https://wdsfwuxicenter.com/stage-api/',
75 changeOrigin: true, 75 changeOrigin: true,
76 rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '') 76 rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '')
77 }, 77 },
...@@ -82,8 +82,8 @@ export default defineConfig(({ mode, command }) => { ...@@ -82,8 +82,8 @@ export default defineConfig(({ mode, command }) => {
82 }, 82 },
83 '/dev-api': { 83 '/dev-api': {
84 // target: 'http://192.168.1.118:8081/', 84 // target: 'http://192.168.1.118:8081/',
85 // target: 'http://192.168.1.130:8081', 85 target: 'http://192.168.1.118:8081',
86 target: 'https://jijin.wtwuxicenter.com/stage-api', 86 // target: 'https://jijin.wtwuxicenter.com/stage-api',
87 // target: 'https://wdsfwuxicenter.com/stage-api/', 87 // target: 'https://wdsfwuxicenter.com/stage-api/',
88 changeOrigin: true, 88 changeOrigin: true,
89 rewrite: (p) => p.replace(/^\/dev-api/, '') 89 rewrite: (p) => p.replace(/^\/dev-api/, '')
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!