01c8ae36 by zhangmeng

票务

1 parent 0de836b9
1 <template> 1 <template>
2 <el-card class="container"> 2 <el-card class="container">
3 <div v-loading="loading"> 3 <div v-loading="loading">
4 <div class="title"> 4 <div class="title father">
5 {{ languageFormat(language, "订单确认", "Order confirmation") }} 5 {{ languageFormat(language, "订单确认", "Order confirmation") }}
6 <span class="son" @click="handelUp">上一步</span>
6 </div> 7 </div>
7 <div class="content pd20"> 8 <div class="content pd20">
8 <el-row gutter="20"> 9 <el-row gutter="20">
...@@ -21,12 +22,15 @@ ...@@ -21,12 +22,15 @@
21 {{ TickForm2.ticketName }} 22 {{ TickForm2.ticketName }}
22 </div> 23 </div>
23 24
24 <div v-if="TickForm2.ticketType=='0'" class="address">{{ language==0?'剩余数量':'Remaining Quantity' }}{{ leftCount }}</div> 25 <div v-if="TickForm2.ticketType=='0'" class="address">{{
26 language == 0 ? '剩余数量' : 'Remaining Quantity'
27 }}{{ leftCount }}
28 </div>
25 </div> 29 </div>
26 30
27 <div class="ticket_info mb20"> 31 <div class="ticket_info mb20">
28 <div class="tit_box"> 32 <div class="tit_box">
29 <div class="line"/> 33 <div class="line" />
30 <div class="txt"> 34 <div class="txt">
31 {{ languageFormat(language, "订票信息", "Ticket Info") }} 35 {{ languageFormat(language, "订票信息", "Ticket Info") }}
32 </div> 36 </div>
...@@ -37,30 +41,36 @@ ...@@ -37,30 +41,36 @@
37 <div v-if="TickForm2.ticketType == '1'"> 41 <div v-if="TickForm2.ticketType == '1'">
38 <el-form-item :label="language == 0 ? '桌号' : 'Table'"> 42 <el-form-item :label="language == 0 ? '桌号' : 'Table'">
39 43
40 <el-popover placement="right" :width="400" trigger="hover"> 44 <el-popover :width="400" placement="right" trigger="hover">
41 <template #reference> 45 <template #reference>
42 <div class="text-primary underline pointer" @click="showImg"> 46 <div class="text-primary underline pointer" @click="showImg">
43 {{ language == 0 ? '查看区域布局' : ' View Area Layout' }} 47 {{ language == 0 ? '查看区域布局' : ' View Area Layout' }}
44 </div> 48 </div>
45 </template> 49 </template>
46 <el-image :src="fillImgUrl(tickImg)" style="width: 100%;" 50 <el-image
47 :preview-src-list="[fillImgUrl(tickImg)]"/> 51 :preview-src-list="[fillImgUrl(tickImg)]" :src="fillImgUrl(tickImg)"
52 style="width: 100%;"
53 />
48 </el-popover> 54 </el-popover>
49 55
50 56
51 <el-radio-group v-model="currDesk"> 57 <el-radio-group v-model="currDesk">
52 <el-radio-button v-for="(it, index) in deskList" :key="index" :label="it.deskNo" :value="it" 58 <el-radio-button
53 :disabled="it.status!=0"/> 59 v-for="(it, index) in deskList" :key="index" :disabled="it.status!=0" :label="it.deskNo"
60 :value="it"
61 />
54 </el-radio-group> 62 </el-radio-group>
55 </el-form-item> 63 </el-form-item>
56 <el-form-item :label="language == 0 ? '座位号' : 'Seat'"> 64 <el-form-item :label="language == 0 ? '座位号' : 'Seat'">
57 <el-checkbox-group v-model="currSeat"> 65 <el-checkbox-group v-model="currSeat">
58 <el-checkbox-button v-for="(it, index) in currDesk?.seatList" :key="index" :label="it.seatNo" 66 <el-checkbox-button
59 :value="it" :disabled="it.status!=0"/> 67 v-for="(it, index) in currDesk?.seatList" :key="index" :disabled="it.status!=0"
68 :label="it.seatNo" :value="it"
69 />
60 </el-checkbox-group> 70 </el-checkbox-group>
61 </el-form-item> 71 </el-form-item>
62 <el-form-item :label="language == 0 ?'已选座位号':'Selected Seat'"> 72 <el-form-item :label="language == 0 ?'已选座位号':'Selected Seat'">
63 <el-tag class="mr10" v-for="(s,index) in currSeat" :key="s.id" closable @close="delSeat(s,index)"> 73 <el-tag v-for="(s,index) in currSeat" :key="s.id" class="mr10" closable @close="delSeat(s,index)">
64 {{ s.deskNo }} - {{ s.seatNo }} 74 {{ s.deskNo }} - {{ s.seatNo }}
65 </el-tag> 75 </el-tag>
66 </el-form-item> 76 </el-form-item>
...@@ -96,7 +106,7 @@ ...@@ -96,7 +106,7 @@
96 </div> 106 </div>
97 <div class="idcard">{{ it.idCard }}</div> 107 <div class="idcard">{{ it.idCard }}</div>
98 </div> 108 </div>
99 <el-checkbox :value="it.id" :disabled="!!it.disabled"/> 109 <el-checkbox :disabled="!!it.disabled" :value="it.id" />
100 </div> 110 </div>
101 </el-checkbox-group> 111 </el-checkbox-group>
102 </div> 112 </div>
...@@ -112,7 +122,7 @@ ...@@ -112,7 +122,7 @@
112 122
113 <el-col :lg="8" class="right"> 123 <el-col :lg="8" class="right">
114 <div class="tit_box"> 124 <div class="tit_box">
115 <div class="line"/> 125 <div class="line" />
116 <div class="txt"> 126 <div class="txt">
117 {{ languageFormat(language, "订单明细", "Order summary") }} 127 {{ languageFormat(language, "订单明细", "Order summary") }}
118 </div> 128 </div>
...@@ -123,7 +133,7 @@ ...@@ -123,7 +133,7 @@
123 <div class="time"> 133 <div class="time">
124 {{ language == 0 ? '票价' : 'Cost Ticket' }} 134 {{ language == 0 ? '票价' : 'Cost Ticket' }}
125 </div> 135 </div>
126 <p/> 136 <p />
127 <div class="ticket"> 137 <div class="ticket">
128 {{ language == 0 ? TickForm2.price : TickForm2.priceEn }} 138 {{ language == 0 ? TickForm2.price : TickForm2.priceEn }}
129 <span> {{ language == 0 ? '元' : 'Euro' }}</span> 139 <span> {{ language == 0 ? '元' : 'Euro' }}</span>
...@@ -143,6 +153,15 @@ ...@@ -143,6 +153,15 @@
143 </div> 153 </div>
144 </div> 154 </div>
145 </div> 155 </div>
156 <!-- 场馆布局图-->
157
158 <div style="margin-top: 95px">
159 <el-image
160 :preview-src-list="[fillImgUrl(tickImg)]"
161 :src="fillImgUrl(tickImg)"
162 style="width: 100%;"
163 />
164 </div>
146 </el-col> 165 </el-col>
147 </el-row> 166 </el-row>
148 </div> 167 </div>
...@@ -166,7 +185,7 @@ ...@@ -166,7 +185,7 @@
166 </template> 185 </template>
167 186
168 <script setup> 187 <script setup>
169 import {ref, computed, onMounted} from 'vue' 188 import { ref, computed, onMounted } from 'vue'
170 import { 189 import {
171 customerListApi, 190 customerListApi,
172 submitOrderTicket, 191 submitOrderTicket,
...@@ -176,12 +195,12 @@ import { ...@@ -176,12 +195,12 @@ import {
176 checkPurchasedCustomers, 195 checkPurchasedCustomers,
177 getDeskInfo 196 getDeskInfo
178 } from '@/apiPc/booking' 197 } from '@/apiPc/booking'
179 import {ElMessage, ElMessageBox} from 'element-plus' 198 import { ElMessage, ElMessageBox } from 'element-plus'
180 import {languageFormat} from '@/viewsPc/seat/utils/language.js' 199 import { languageFormat } from '@/viewsPc/seat/utils/language.js'
181 import useUserStore from '/@/store/modules/user' 200 import useUserStore from '/@/store/modules/user'
182 import {useStorage} from '@vueuse/core/index' 201 import { useStorage } from '@vueuse/core/index'
183 import _ from 'lodash' 202 import _ from 'lodash'
184 import {useRoute, useRouter} from 'vue-router' 203 import { useRoute, useRouter } from 'vue-router'
185 204
186 const useStore = useUserStore() 205 const useStore = useUserStore()
187 206
...@@ -321,7 +340,7 @@ async function paymentHandle() { ...@@ -321,7 +340,7 @@ async function paymentHandle() {
321 confirmButtonText: language.value == 0 ? '确定' : 'Confirm', 340 confirmButtonText: language.value == 0 ? '确定' : 'Confirm',
322 cancelButtonText: language.value == 0 ? '取消' : 'Cancel', 341 cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
323 type: 'warning' 342 type: 'warning'
324 }).then(async () => { 343 }).then(async() => {
325 try { 344 try {
326 const orderCustomerList = [] 345 const orderCustomerList = []
327 _.each(orderForm.value.customerIds, (id, index) => { 346 _.each(orderForm.value.customerIds, (id, index) => {
...@@ -390,7 +409,7 @@ async function paymentHandle() { ...@@ -390,7 +409,7 @@ async function paymentHandle() {
390 } 409 }
391 410
392 async function getDetail() { 411 async function getDetail() {
393 const res = await getTicketInfoByActivityId({activityId: orderForm.value.activeId}) 412 const res = await getTicketInfoByActivityId({ activityId: orderForm.value.activeId })
394 TickForm.value = res.data 413 TickForm.value = res.data
395 } 414 }
396 415
...@@ -404,6 +423,10 @@ function addPeopl() { ...@@ -404,6 +423,10 @@ function addPeopl() {
404 const showImg = () => { 423 const showImg = () => {
405 424
406 } 425 }
426
427 function handelUp() {
428 router.go(-1)
429 }
407 </script> 430 </script>
408 431
409 432
...@@ -677,6 +700,16 @@ div { ...@@ -677,6 +700,16 @@ div {
677 } 700 }
678 } 701 }
679 702
703 .father {
704 position: relative;
705 }
706
707 .son {
708 position: absolute;
709 left: 10px;
710 cursor: pointer
711 }
712
680 @media screen and (max-width: 768px) { 713 @media screen and (max-width: 768px) {
681 .container { 714 .container {
682 width: 100%; 715 width: 100%;
......
...@@ -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">
...@@ -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'
...@@ -140,7 +140,7 @@ ...@@ -140,7 +140,7 @@
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>
...@@ -227,8 +227,11 @@ ...@@ -227,8 +227,11 @@
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" />
...@@ -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) {
...@@ -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>
...@@ -455,8 +474,7 @@ function toSelectClosed() { ...@@ -455,8 +474,7 @@ function toSelectClosed() {
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;
460 object-fit: fill; 478 object-fit: fill;
461 margin-right: 36px; 479 margin-right: 36px;
462 } 480 }
......
...@@ -81,8 +81,8 @@ export default defineConfig(({ mode, command }) => { ...@@ -81,8 +81,8 @@ export default defineConfig(({ mode, command }) => {
81 rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') 81 rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '')
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,
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!