1dafe2e5 by zhangmeng

Merge remote-tracking branch 'origin/dev' into dev

2 parents 07827fbc 4d13c8e8
...@@ -511,6 +511,22 @@ export function getTicketInfoByActivityId(params) { ...@@ -511,6 +511,22 @@ export function getTicketInfoByActivityId(params) {
511 }) 511 })
512 } 512 }
513 513
514 export function getActivityTypeVoById(params) {
515 return request({
516 url: `/ota/activityType/getActivityTypeVoById`,
517 method: 'get',
518 params
519 })
520 }
521
522 export function getListByAtstId(params) {
523 return request({
524 url: `/ota/activitySeat/getListByAtstId`,
525 method: 'get',
526 params
527 })
528 }
529
514 // 根据赛事ID获取票档 530 // 根据赛事ID获取票档
515 export function getTicketListApi(params) { 531 export function getTicketListApi(params) {
516 return request({ 532 return request({
...@@ -538,6 +554,22 @@ export function listApi(params) { ...@@ -538,6 +554,22 @@ export function listApi(params) {
538 }) 554 })
539 } 555 }
540 556
557 export function getStadiumList(params) {
558 return request({
559 url: `/ota/activityStadium/getStadiumList`,
560 method: 'get',
561 params
562 })
563 }
564
565 export function getActivityTypeVoListByLatsId(params) {
566 return request({
567 url: `/ota/activityType/getActivityTypeVoListByLatsId`,
568 method: 'get',
569 params
570 })
571 }
572
541 // 获取当前用户的观影人列表 573 // 获取当前用户的观影人列表
542 export function customerListApi(params) { 574 export function customerListApi(params) {
543 return request({ 575 return request({
......
...@@ -362,7 +362,7 @@ export const constantRoutes = [ ...@@ -362,7 +362,7 @@ export const constantRoutes = [
362 meta: { title: 'Ticket Booking' } 362 meta: { title: 'Ticket Booking' }
363 }, 363 },
364 { 364 {
365 path: 'ticket/:activeId/:latId/:attId', 365 path: 'ticket/:activeId/:latstId',
366 component: () => import('@/viewsPc/booking/ticket/confirmOrder.vue'), 366 component: () => import('@/viewsPc/booking/ticket/confirmOrder.vue'),
367 name: 'confirmOrder', 367 name: 'confirmOrder',
368 meta: { title: 'confirmOrder' } 368 meta: { title: 'confirmOrder' }
......
...@@ -124,42 +124,12 @@ ...@@ -124,42 +124,12 @@
124 {{ matchForm.address }} 124 {{ matchForm.address }}
125 </el-col> 125 </el-col>
126 <el-col> 126 <el-col>
127 {{ 127 {{ form?.extJson?.atName }}
128 form?.extJson?.ticketType?.name 128 {{ form?.extJson?.atsName }}
129 }}:{{ form?.extJson?.num }}{{ language == 0 ? '张' : 'Tickets' }} 129 {{ form?.extJson?.sessionType=='1000'?'日间场':'夜间场' }}
130 {{ form?.extJson?.ticketName }}
131 {{ form?.num }}{{ language == 0 ? '张' : 'Tickets' }}
130 </el-col> 132 </el-col>
131 <el-col>
132 {{
133 language == 0 ? '时间' : 'Time'
134 }}{{
135 dayjs(form?.extJson?.ticketDate?.ticketStart).format('YYYY-MM-DD')
136 }}{{
137 form.extJson?.ticketDate?.ticketType == 1 ? '~' + dayjs(form?.extJson?.ticketDate?.ticketEnd).format('YYYY-MM-DD') : ''
138 }}
139 </el-col>
140 <el-col v-if="form?.extJson?.ticketDate?.isCountSale==1">
141 {{
142 language == 0 ? `满${form?.extJson?.ticketDate.counts}人优惠` : `Discount for up to ${form?.extJson?.ticketDate.counts} people`
143 }}<span v-if="language == 0">{{ form?.extJson?.ticketDate.discount }}</span>
144 <span v-else>{{ (10 - form?.extJson?.ticketDate.discount) * 10 + '%' }}off</span>
145 </el-col>
146 <!-- <el-col>-->
147 <!-- {{-->
148 <!-- language == 0 ? '原价票' : 'Cost Ticket'-->
149 <!-- }}{{-->
150 <!-- language == 0 ? form?.extJson?.ticketDate?.price : form?.extJson?.ticketDate?.priceEn-->
151 <!-- }}{{ language == 0 ? '元' : 'Euro' }} x 1-->
152 <!-- {{ language == 0 ? '张' : 'Tickets' }}-->
153 <!-- </el-col>-->
154 <!-- <el-col>-->
155 <!-- {{-->
156 <!-- language == 0 ? '优惠票' : 'Concession Ticket'-->
157 <!-- }}{{-->
158 <!-- language == 0 ? form?.extJson?.ticketDate?.rebatePrice : form?.extJson?.ticketDate?.rebatePriceEn-->
159 <!-- }}{{ language == 0 ? '元' : 'Euro' }} x 1-->
160 <!-- {{ language == 0 ? '张' : 'Tickets' }}-->
161 <!-- </el-col>-->
162
163 </el-row> 133 </el-row>
164 </div> 134 </div>
165 </div> 135 </div>
...@@ -295,50 +265,36 @@ ...@@ -295,50 +265,36 @@
295 <el-col :span="24">{{ language == 0 ? '备注' : 'Remarks' }}{{ form.remarks }}</el-col> 265 <el-col :span="24">{{ language == 0 ? '备注' : 'Remarks' }}{{ form.remarks }}</el-col>
296 </el-row> 266 </el-row>
297 <el-row v-if="type == 'ticket'" style="width: 100%"> 267 <el-row v-if="type == 'ticket'" style="width: 100%">
298 <el-row v-for="v in form.extJson?.message" style="width: 100%"> 268 <el-row v-for="(v,i) in form.extJson?.orderCustomerList" :key="i" style="width: 100%">
299 <el-col :lg="8" :md="12" :sm="12" :xs="24"> 269 <el-col :lg="8" :md="12" :sm="12" :xs="24">
300 <div>{{ v.name }} 270 <div>{{ v.name }}
301 </div> 271 </div>
302 </el-col> 272 </el-col>
303 <el-col :lg="8" :md="12" :sm="12" :xs="24"> 273 <el-col :lg="8" :md="12" :sm="12" :xs="24">
304 <!-- <div>{{-->
305 <!-- !v.discount ? language == 0 ? '原价票' : 'Cost Ticket' : language == 0 ? '优惠票' : 'Concession Ticket'-->
306 <!-- }}-->
307 <!-- </div>-->
308 <div>{{ v.idCard }} 274 <div>{{ v.idCard }}
309 </div> 275 </div>
310 </el-col> 276 </el-col>
311 <el-col :lg="8" :md="12" :sm="12" :xs="24"> 277 <el-col :lg="8" :md="12" :sm="12" :xs="24">
312 <div v-if="language == 0 "> 278 <div v-if="language == 0 ">
313 {{ language == 0 ? '¥' : '€' }} 279 {{ form.price }} /张
314 {{
315 !v.discount ? form.extJson?.ticketDate?.price : form.extJson?.ticketDate?.rebatePrice
316 }}
317 /{{ language == 0 ? '张' : 'Tickets' }}
318 </div> 280 </div>
319 <div v-else> 281 <div v-else>
320 {{ language == 0 ? '¥' : '€' }} 282 {{ form.priceEn }} /Tickets
321 {{
322 !v.discount ? form.extJson?.ticketDate?.priceEn : form.extJson?.ticketDate?.rebatePriceEn
323 }}
324 /{{ language == 0 ? '张' : 'Tickets' }}
325 </div> 283 </div>
326 </el-col> 284 </el-col>
327 </el-row> 285 </el-row>
328 <el-row style="width: 100%"> 286 <el-row style="width: 100%">
329 <el-col :lg="8" :md="12" :sm="12" :xs="24"> 287 <el-col :lg="8" :md="12" :sm="12" :xs="24">
330 <div>{{ 288 <div>
331 language == 0 ? '购票数量' : 'Number of tickets purchased' 289 {{ language == 0 ? '购票数量' : 'Number of tickets purchased' }}{{ form.num }}{{ language == 0 ? '张' : 'Tickets' }}
332 }}{{ form.num }}{{ language == 0 ? '张' : 'Tickets' }}
333 </div> 290 </div>
334 </el-col> 291 </el-col>
335 <el-col :lg="8" :md="12" :sm="12" :xs="24">{{ 292 <el-col :lg="8" :md="12" :sm="12" :xs="24">
336 language == 0 ? '联系方式' : 'Contact Information' 293 {{ language == 0 ? '联系方式' : 'Contact Information' }}{{ form.phone }}
337 }}{{ form.phone }}
338 </el-col> 294 </el-col>
339 <el-col :lg="8" :md="12" :sm="12" :xs="24"> 295 <el-col :lg="8" :md="12" :sm="12" :xs="24">
340 {{ language == 0 ? '共计' : 'total' }}:{{ 296 {{ form.paymentType == '1' ? '共计' : 'total' }}:{{
341 language == 0 ? '¥' : '€' 297 form.paymentType == '1' ? '¥' : '€'
342 }}{{ Number(totalFee).toFixed(2) }} 298 }}{{ Number(totalFee).toFixed(2) }}
343 </el-col> 299 </el-col>
344 </el-row> 300 </el-row>
...@@ -407,31 +363,7 @@ ...@@ -407,31 +363,7 @@
407 </div> 363 </div>
408 </el-col> 364 </el-col>
409 <el-col :lg="24"> 365 <el-col :lg="24">
410 <div class="text-center"> 366 <div class="text-center" />
411 <!-- <el-button-->
412 <!-- v-if="(form.viewStatus=='1'||form.viewStatus=='5')&&type == 'hotel'" class="mt20 btn-lineG"-->
413 <!-- round-->
414 <!-- size="large" type="primary"-->
415 <!-- @click="exportPdf"-->
416 <!-- >-->
417 <!-- <el-icon>-->
418 <!-- <Upload />-->
419 <!-- </el-icon>-->
420 <!-- {{ language == 0 ? '导出酒店预订单' : 'Export PDF' }}-->
421 <!-- </el-button>-->
422 <!-- <el-button-->
423 <!-- v-if="(form.viewStatus=='1'||form.viewStatus=='5')&&(type=='makeUp'||type=='hotel'||type=='ticket')"-->
424 <!-- class="mt20 btn-lineG" round-->
425 <!-- size="large"-->
426 <!-- type="primary"-->
427 <!-- @click="downInvoice"-->
428 <!-- >-->
429 <!-- <el-icon>-->
430 <!-- <Download />-->
431 <!-- </el-icon>-->
432 <!-- {{ language == 0 ? '下载收据' : 'DownLoad Invoice' }}-->
433 <!-- </el-button>-->
434 </div>
435 </el-col> 367 </el-col>
436 </el-row> 368 </el-row>
437 </div> 369 </div>
...@@ -764,11 +696,8 @@ async function getTicketOrderInfoFN() { ...@@ -764,11 +696,8 @@ async function getTicketOrderInfoFN() {
764 form.value = res.data 696 form.value = res.data
765 form.value.extJson = JSON.parse(form.value.extJson) 697 form.value.extJson = JSON.parse(form.value.extJson)
766 try { 698 try {
767 form.value.extJson.ticketDate = JSON.parse(form.value.extJson.ticketDate) 699 await getDetail(form.value.activeId)
768 form.value.extJson.ticketType = JSON.parse(form.value.extJson.ticketType) 700 matchId.value = form.value.activeId
769 form.value.extJson.message = JSON.parse(form.value.extJson.message)
770 await getDetail(form.value.extJson.ticketDate.activityId)
771 matchId.value = form.value.extJson.ticketDate.activityId
772 701
773 totalFee.value = language.value == 0 ? form.value.total : form.value.totalEn 702 totalFee.value = language.value == 0 ? form.value.total : form.value.totalEn
774 } catch (e) { 703 } catch (e) {
...@@ -776,7 +705,6 @@ async function getTicketOrderInfoFN() { ...@@ -776,7 +705,6 @@ async function getTicketOrderInfoFN() {
776 } finally { 705 } finally {
777 706
778 } 707 }
779 console.log(form.value)
780 } 708 }
781 709
782 async function getDetail(activeId) { 710 async function getDetail(activeId) {
......
...@@ -66,10 +66,34 @@ ...@@ -66,10 +66,34 @@
66 <div class="label"> 66 <div class="label">
67 {{ triggerLanguage(language, "票档", "Tickets") }} : 67 {{ triggerLanguage(language, "票档", "Tickets") }} :
68 </div> 68 </div>
69 <div v-if="matchForm.ticketLayout"> 69 </div>
70 <div class="select_item_box">
71 <div class="select_item">
72 <div
73 v-for="(it, index) in tickClass"
74 :key="index"
75 :class="[
76 it.id == selectForm.latId ? 'tagActive' : 'tag',
77 ]"
78 @click="select(it)"
79 >
80 {{ it.ticketTypeName }}<span v-if="it.ticketPackage==1" class="tao">{{
81 language == 0 ? '套票' : 'Package ticket'
82 }}</span>
83 </div>
84 </div>
85 </div>
86
87 <!-- 场馆 -->
88 <div class="select_item_box">
89 <div class="label">
90 {{ triggerLanguage(language, "场馆", "Venues") }} :
91 </div>
92 <div>
70 <span 93 <span
94 v-if="currVenue?.images"
71 style="color: #493ceb;cursor:pointer;font-weight:600;font-size: 14px" 95 style="color: #493ceb;cursor:pointer;font-weight:600;font-size: 14px"
72 @click="show=true" 96 @click="showUrl=currVenue.images; show=true"
73 > <span style="color: red;font-size: 18px">*</span> 97 > <span style="color: red;font-size: 18px">*</span>
74 {{ 98 {{
75 language == 0 ? '点击查看场馆布局' : 'View Venue Layout' 99 language == 0 ? '点击查看场馆布局' : 'View Venue Layout'
...@@ -80,19 +104,20 @@ ...@@ -80,19 +104,20 @@
80 <div class="select_item_box"> 104 <div class="select_item_box">
81 <div class="select_item"> 105 <div class="select_item">
82 <div 106 <div
83 v-for="(it, index) in tickClass" 107 v-for="(it, index) in venueList"
84 :key="index" 108 :key="index"
85 :class="[ 109 :class="[
86 it.id == selectForm.latId ? 'tagActive' : 'tag', 110 it.id == selectForm.latsId ? 'tagActive' : 'tag',
111 it.isView==0?'forbid':''
87 ]" 112 ]"
88 @click="select(it)" 113 @click="selectVenue(it)"
89 > 114 >
90 {{ it.name }} 115 {{ it.name }}
91 </div> 116 </div>
92 </div> 117 </div>
93 </div> 118 </div>
94 119
95 <!-- 时间 --> 120 <!-- 场次 -->
96 <div class="select_item_box"> 121 <div class="select_item_box">
97 <div class="label"> 122 <div class="label">
98 {{ triggerLanguage(language, "场次", "Session") }} : 123 {{ triggerLanguage(language, "场次", "Session") }} :
...@@ -101,21 +126,53 @@ ...@@ -101,21 +126,53 @@
101 <div class="select_item_box"> 126 <div class="select_item_box">
102 <div class="select_item"> 127 <div class="select_item">
103 <div 128 <div
104 v-for="(it, index) in tickList" 129 v-for="(it, key) in tickList"
105 :key="index" 130 :key="key"
106 :class="[ 131 :class="[
107 it.id == selectForm.id ? 'tagActive' : 'tag', 132 key == selectForm.sessionType ? 'tagActive' : 'tag',
133 it.isView==0?'forbid':''
134 ]"
135 @click="selectSessionType(key)"
136 >
137 {{ key=='1000'?'日间场':'夜间场' }}
138 </div>
139 </div>
140 </div>
141
142 <!-- 票型 -->
143 <div class="select_item_box">
144 <div class="label">
145 {{ triggerLanguage(language, "票型", "Ticket Type") }} :
146 </div>
147 <div>
148 <span
149 v-if="currTick?.images"
150 style="color: #493ceb;cursor:pointer;font-weight:600;font-size: 14px"
151 @click="showUrl=currTick.images;show=true"
152 > <span style="color: red;font-size: 18px">*</span>
153 {{
154 language == 0 ? '点击查看区域布局' : 'View Area Layout'
155 }}
156 </span>
157 </div>
158 </div>
159 <div class="select_item_box">
160 <div class="select_item">
161 <div
162 v-for="it in tickList[selectForm.sessionType]"
163 :key="it.id"
164 :class="[
165 it.id == selectForm.latstId ? 'tagActive' : 'tag',
108 it.isView==0?'forbid':'' 166 it.isView==0?'forbid':''
109 ]" 167 ]"
110 @click="selectTick(it)" 168 @click="selectTick(it)"
111 > 169 >
112 {{ it.name }} <span v-if="it.ticketType==1" class="tao">{{ 170 {{ it.name }}
113 language == 0 ? '套票' : 'Package ticket'
114 }}</span>
115 </div> 171 </div>
116 </div> 172 </div>
117 </div> 173 </div>
118 174
175
119 <!-- 价格 --> 176 <!-- 价格 -->
120 <div class="select_item_box"> 177 <div class="select_item_box">
121 <div class="label"> 178 <div class="label">
...@@ -172,7 +229,7 @@ ...@@ -172,7 +229,7 @@
172 229
173 <el-dialog v-model="show" title="" width="1000px"> 230 <el-dialog v-model="show" title="" width="1000px">
174 <div> 231 <div>
175 <img :src="fillImgUrl(matchForm.ticketLayout)" alt="" style="width: 100%"> 232 <img :src="fillImgUrl(showUrl)" alt="" style="width: 100%">
176 </div> 233 </div>
177 </el-dialog> 234 </el-dialog>
178 </div> 235 </div>
...@@ -181,16 +238,23 @@ ...@@ -181,16 +238,23 @@
181 238
182 239
183 <script setup> 240 <script setup>
184 import { ref, computed } from 'vue' 241 import { ref, computed, watch } from 'vue'
185 import { listApi, getTicketInfoByActivityId, getTicketListApi, checkNonPayment } from '@/apiPc/booking' 242 import {
243 getTicketInfoByActivityId,
244 getTicketListApi,
245 checkNonPayment,
246 getStadiumList,
247 getActivityTypeVoListByLatsId
248 } from '@/apiPc/booking'
186 249
187 import { dayjs } from 'element-plus' 250 import { dayjs } from 'element-plus'
188 import { ElMessageBox, ElMessage } from 'element-plus' 251 import { ElMessageBox, ElMessage } from 'element-plus'
189 import { languageFormat, getDayName } from '@/viewsPc/seat/utils/language' 252 import { getDayName } from '@/viewsPc/seat/utils/language'
190 import { fillImgUrl } from '/@/utils/ruoyi' 253 import { fillImgUrl } from '/@/utils/ruoyi'
191 import useUserStore from '/@/store/modules/user' 254 import useUserStore from '/@/store/modules/user'
192 import { triggerLanguage } from '@/utils/ruoyi' 255 import { triggerLanguage } from '@/utils/ruoyi'
193 import { useStorage } from '@vueuse/core/index' 256 import { useStorage } from '@vueuse/core/index'
257 import { useRoute, useRouter } from 'vue-router'
194 258
195 const language = useStorage('language', 0) 259 const language = useStorage('language', 0)
196 const useStore = useUserStore() 260 const useStore = useUserStore()
...@@ -198,10 +262,9 @@ const user = computed(() => useUserStore().user) ...@@ -198,10 +262,9 @@ const user = computed(() => useUserStore().user)
198 const route = useRoute() 262 const route = useRoute()
199 const router = useRouter() 263 const router = useRouter()
200 const show = ref(false) 264 const show = ref(false)
265 const showUrl = ref('')
201 const activeId = ref(route.params.activeId) 266 const activeId = ref(route.params.activeId)
202 const flag = ref(false)
203 const active = ref(1) 267 const active = ref(1)
204 const countDown = ref(false)
205 const props = defineProps({ 268 const props = defineProps({
206 activityId: [String, Number] 269 activityId: [String, Number]
207 }) 270 })
...@@ -211,11 +274,22 @@ const matchForm = ref({}) ...@@ -211,11 +274,22 @@ const matchForm = ref({})
211 const tickClass = ref([]) 274 const tickClass = ref([])
212 const selectForm = ref({ 275 const selectForm = ref({
213 latId: null, 276 latId: null,
214 id: null, 277 latsId: null,
278 sessionType: null,
279 latstId: null,
215 price: '--', 280 price: '--',
216 priceEn: '--' 281 priceEn: '--'
217 }) 282 })
283 const venueList = ref([])
218 const tickList = ref([]) 284 const tickList = ref([])
285 const currVenue = ref(null)
286 const currTick = ref(null)
287
288 watch(show, (val) => {
289 if (!val) {
290 showUrl.value = ''
291 }
292 })
219 293
220 // 获取票务信息 294 // 获取票务信息
221 getDetail() 295 getDetail()
...@@ -241,48 +315,74 @@ async function getTicketList() { ...@@ -241,48 +315,74 @@ async function getTicketList() {
241 tickClass.value = res.rows 315 tickClass.value = res.rows
242 if (tickClass.value.length > 0) { 316 if (tickClass.value.length > 0) {
243 selectForm.value.latId = tickClass.value?.[0]?.id 317 selectForm.value.latId = tickClass.value?.[0]?.id
244 await getTicketListType() 318 await getVenueList()
245 } 319 }
246 } 320 }
247 321
248 // 根据票档获取场次 322 // 根据票档获取场次
323 async function getVenueList() {
324 const res = await getStadiumList({ latId: selectForm.value.latId })
325 venueList.value = res.rows
326 currVenue.value = res.rows[0]
327 selectForm.value.latsId = res.rows[0]?.id
328 await getTicketListType()
329 }
330
331 // 根据票档获取场次
249 async function getTicketListType() { 332 async function getTicketListType() {
250 const arr = [] 333 const res = await getActivityTypeVoListByLatsId({ latsId: selectForm.value.latsId })
251 const res = await listApi({ latId: selectForm.value.latId }) 334 tickList.value = res.data
252 tickList.value = res.rows 335 selectForm.value.sessionType = Object.keys(res.data)[0]
253 for (const v of res.rows) { 336
254 if (v.isView == 0) arr.push(v) 337 currTick.value = tickList.value[selectForm.value.sessionType][0]
255 } 338 selectForm.value.latstId = currTick.value?.id
256 for (const v of res.rows) { 339 selectForm.value.price = currTick.value?.price
257 if (arr.length > 0 && v.ticketType == 1) { 340 selectForm.value.priceEn = currTick.value?.priceEn
258 for (const c of arr) {
259 if ((c.ticketStart >= v.ticketStart) && (c.ticketStart <= v.ticketEnd)) {
260 v.isView = 0
261 }
262 }
263 }
264 }
265 } 341 }
266 342
267 function select(v) { 343 function select(v) {
268 selectForm.value.latId = v.id 344 selectForm.value.latId = v.id
345 selectForm.value.latsId = null
346 selectForm.value.sessionType = null
347 selectForm.value.latstId = null
269 selectForm.value.id = null 348 selectForm.value.id = null
270 selectForm.value.price = '--' 349 selectForm.value.price = '--'
271 selectForm.value.priceEn = '--' 350 selectForm.value.priceEn = '--'
351
352 getVenueList()
353 }
354
355 function selectVenue(v) {
356 currVenue.value = v
357 selectForm.value.latsId = v.id
358 selectForm.value.sessionType = null
359 selectForm.value.latstId = null
360 selectForm.value.id = null
361 selectForm.value.price = '--'
362 selectForm.value.priceEn = '--'
363
272 getTicketListType() 364 getTicketListType()
273 } 365 }
274 366
367 function selectSessionType(key) {
368 selectForm.value.sessionType = key
369
370 currTick.value = tickList.value[selectForm.value.sessionType][0]
371 selectForm.value.latstId = currTick.value?.id
372 selectForm.value.price = currTick.value?.price
373 selectForm.value.priceEn = currTick.value?.priceEn
374 }
375
275 function selectTick(v) { 376 function selectTick(v) {
276 if (v.isView != 0) { 377 currTick.value = v
277 selectForm.value.id = v.id 378 selectForm.value.latstId = v.id
278 selectForm.value.price = v.price 379 selectForm.value.price = v.price
279 selectForm.value.priceEn = v.priceEn 380 selectForm.value.priceEn = v.priceEn
280 }
281 } 381 }
282 382
283 function toSelectSeat() { 383 function toSelectSeat() {
284 if (!selectForm.value.latId) return ElMessage.error(language.value == 0 ? '请选择票档' : 'Please select a ticket file') 384 // if (!selectForm.value.latId) return ElMessage.error(language.value == 0 ? '请选择票档' : 'Please select a ticket file')
285 if (!selectForm.value.id) return ElMessage.error(language.value == 0 ? '请选择时间' : 'Please select time') 385 // if (!selectForm.value.id) return ElMessage.error(language.value == 0 ? '请选择时间' : 'Please select time')
286 if (!user.value) { 386 if (!user.value) {
287 useStore.setVisitor() 387 useStore.setVisitor()
288 return 388 return
...@@ -293,8 +393,7 @@ function toSelectSeat() { ...@@ -293,8 +393,7 @@ function toSelectSeat() {
293 name: 'confirmOrder', 393 name: 'confirmOrder',
294 params: { 394 params: {
295 activeId: activeId.value, 395 activeId: activeId.value,
296 latId: selectForm.value.latId, 396 latstId: selectForm.value.latstId
297 attId: selectForm.value.id
298 } 397 }
299 }) 398 })
300 } else { 399 } else {
......
...@@ -8,14 +8,13 @@ ...@@ -8,14 +8,13 @@
8 {{ languageFormat(language, "观影人管理", "Viewers") }} 8 {{ languageFormat(language, "观影人管理", "Viewers") }}
9 </span> 9 </span>
10 10
11 <span class="fr" style="cursor: pointer" @click="$router.go(-1)">{{ 11 <span class="fr" style="cursor: pointer" @click="$router.go(-1)">
12 language == 0 ? '返回' : 'Back' 12 {{ language == 0 ? '返回' : 'Back' }}
13 }}</span> 13 </span>
14 </div> 14 </div>
15 <div class="content"> 15 <div class="content">
16 <div class="people_box"> 16 <div class="people_box">
17 <div v-for="(it, index) in personnelList" :key="index" class="people_item" 17 <div v-for="(it, index) in personnelList" :key="index" class="people_item">
18 >
19 <div class="name">{{ it.name }}</div> 18 <div class="name">{{ it.name }}</div>
20 <div class="idcard"> 19 <div class="idcard">
21 {{ languageFormat(language, "证件号", "ID number") }}{{ it.idCard }} 20 {{ languageFormat(language, "证件号", "ID number") }}{{ it.idCard }}
...@@ -33,33 +32,31 @@ ...@@ -33,33 +32,31 @@
33 center 32 center
34 width="700" 33 width="700"
35 > 34 >
36 <el-form ref="formRef" :model="form" :rules="rules" label-width="100px" size="large" style="margin: 80px"> 35 <el-form
36 ref="formRef" :model="form" :rules="rules" label-width="100px" size="large"
37 style="margin: 80px"
38 >
37 <el-form-item :label="language==0?'姓名':'name'" prop="name" required> 39 <el-form-item :label="language==0?'姓名':'name'" prop="name" required>
38 <el-input v-model="form.name" :placeholder="language==0?'请输入':'Please input'"/> 40 <el-input v-model="form.name" :placeholder="language==0?'请输入':'Please input'" />
39 </el-form-item> 41 </el-form-item>
40 <el-form-item :label="language==0?'证件类型':'ID Type'" prop="idcType" required> 42 <el-form-item :label="language==0?'证件类型':'ID Type'" prop="idcType" required>
41 <el-select v-model="form.idcType" :placeholder="language==0?'请选择':'Please choose'"> 43 <el-select v-model="form.idcType" :placeholder="language==0?'请选择':'Please choose'">
42 <el-option :label="language==0?'身份证':'Identity card'" value="0"/> 44 <el-option :label="language==0?'身份证':'Identity card'" value="0" />
43 <el-option :label="language==0?'护照':'Passport'" value="1"/> 45 <el-option :label="language==0?'护照':'Passport'" value="1" />
44 <el-option :label="language==0?'其他':'Other'" value="2"/> 46 <el-option :label="language==0?'其他':'Other'" value="2" />
45 </el-select> 47 </el-select>
46 </el-form-item> 48 </el-form-item>
47 <el-form-item :label="language==0?'证件号':'ID number'" prop="idCard" required> 49 <el-form-item :label="language==0?'证件号':'ID number'" prop="idCard" required>
48 <el-input v-model="form.idCard" :placeholder="language==0?'请输入证件号':'Please enter the ID after ah'"/> 50 <el-input v-model="form.idCard" :placeholder="language==0?'请输入证件号':'Please enter the ID after ah'" />
49 </el-form-item> 51 </el-form-item>
50 </el-form> 52 </el-form>
51 53
52 <br> 54 <span class="dialog-footer">
53 <br>
54 <span slot="footer" class="dialog-footer">
55 <div style="text-align: center"> 55 <div style="text-align: center">
56 <el-button class="can_pay" @click="show = false">{{ language == 0 ? '取 消' : 'cancel' }}</el-button> 56 <el-button class="can_pay" @click="show = false">{{ language == 0 ? '取 消' : 'cancel' }}</el-button>
57 <el-button class="pay" type="primary" @click="submit">{{ language == 0 ? '确 定' : 'confirm' }}</el-button> 57 <el-button class="pay" type="primary" @click="submit">{{ language == 0 ? '确 定' : 'confirm' }}</el-button>
58 </div> 58 </div>
59 </span> 59 </span>
60 <br>
61 <br>
62 <br>
63 </el-dialog> 60 </el-dialog>
64 </el-card> 61 </el-card>
65 62
...@@ -67,13 +64,14 @@ ...@@ -67,13 +64,14 @@
67 64
68 65
69 <script setup> 66 <script setup>
70 import {ref, computed} from "vue"; 67 import { ref, computed } from 'vue'
71 import {aadCustomer, customerListApi, delCustomer} from '@/apiPc/booking' 68 import { aadCustomer, delCustomer, getMyFriends } from '@/apiPc/booking'
72 import {ElMessage, ElMessageBox} from "element-plus"; 69 import { ElMessage, ElMessageBox } from 'element-plus'
73 import {languageFormat} from "@/viewsPc/seat/utils/language.js"; 70 import { languageFormat } from '@/viewsPc/seat/utils/language.js'
74 import useUserStore from "/@/store/modules/user"; 71 import useUserStore from '/@/store/modules/user'
75 import {useStorage} from "@vueuse/core/index"; 72 import { useStorage } from '@vueuse/core/index'
76 import {triggerLanguage} from '@/utils/ruoyi' 73 import { triggerLanguage } from '@/utils/ruoyi'
74 import { useRoute } from 'vue-router'
77 75
78 const user = computed(() => useUserStore().user) 76 const user = computed(() => useUserStore().user)
79 const useStore = useUserStore() 77 const useStore = useUserStore()
...@@ -85,29 +83,25 @@ const form = ref({}) ...@@ -85,29 +83,25 @@ const form = ref({})
85 const formRef = ref(null) 83 const formRef = ref(null)
86 const rules = ref({ 84 const rules = ref({
87 name: [ 85 name: [
88 {required: true, message: triggerLanguage(language.value, '请输入姓名', 'Please input'), trigger: "blur"}, 86 { required: true, message: triggerLanguage(language.value, '请输入姓名', 'Please input'), trigger: 'blur' }
89 ], 87 ],
90 idCard: [ 88 idCard: [
91 { 89 {
92 required: true, 90 required: true,
93 message: triggerLanguage(language.value, '请输入证件号', 'Please enter the ID after ah'), 91 message: triggerLanguage(language.value, '请输入证件号', 'Please enter the ID after ah'),
94 trigger: "blur" 92 trigger: 'blur'
95 }, 93 }
96 ], 94 ],
97 idcType: [ 95 idcType: [
98 {required: true, message: triggerLanguage(language.value, '请选择证件类型', 'Please choose'), trigger: "blur"}, 96 { required: true, message: triggerLanguage(language.value, '请选择证件类型', 'Please choose'), trigger: 'blur' }
99 ], 97 ]
100 }) 98 })
101 99
102 customerList() 100 customerList()
103 101
104 async function customerList() { 102 async function customerList() {
105 const res = await customerListApi({ 103 const res = await getMyFriends()
106 activeId: route.query.activeId, 104 personnelList.value = res.data
107 attId: route.query.attId,
108 atId: route.query.atId
109 })
110 personnelList.value = res.rows
111 } 105 }
112 106
113 function addPeople() { 107 function addPeople() {
...@@ -125,19 +119,18 @@ function submit() { ...@@ -125,19 +119,18 @@ function submit() {
125 if (valid) { 119 if (valid) {
126 aadCustomer(form.value).then(res => { 120 aadCustomer(form.value).then(res => {
127 if (res.data == -100) { 121 if (res.data == -100) {
128 ElMessageBox.confirm(language.value == 0 ? '该观影人已存在' : "The viewer already exists", language.value == 0 ? '提示' : 'Reminder', { 122 ElMessageBox.confirm(language.value == 0 ? '该观影人已存在' : 'The viewer already exists', language.value == 0 ? '提示' : 'Reminder', {
129 confirmButtonText: language.value == 0 ? '确认' : 'confirm', 123 confirmButtonText: language.value == 0 ? '确认' : 'confirm',
130 cancelButtonText: language.value == 0 ? '取消' : 'cancel', 124 cancelButtonText: language.value == 0 ? '取消' : 'cancel',
131 type: "warning", 125 type: 'warning',
132 draggable: true, 126 draggable: true
133 }) 127 })
134
135 } else if (res.data == -101) { 128 } else if (res.data == -101) {
136 return ElMessageBox.confirm(language.value == 0 ? '该观影人实名认证未通过' : 'The real name authentication of the moviegoer failed', language.value == 0 ? '提示' : 'Reminder', { 129 return ElMessageBox.confirm(language.value == 0 ? '该观影人实名认证未通过' : 'The real name authentication of the moviegoer failed', language.value == 0 ? '提示' : 'Reminder', {
137 confirmButtonText: language.value == 0 ? '确认' : "confirm", 130 confirmButtonText: language.value == 0 ? '确认' : 'confirm',
138 cancelButtonText: language.value == 0 ? '取消' : 'cancel', 131 cancelButtonText: language.value == 0 ? '取消' : 'cancel',
139 type: "warning", 132 type: 'warning',
140 draggable: true, 133 draggable: true
141 }) 134 })
142 } else { 135 } else {
143 show.value = false 136 show.value = false
...@@ -153,23 +146,22 @@ function submit() { ...@@ -153,23 +146,22 @@ function submit() {
153 146
154 async function deletePeople(v) { 147 async function deletePeople(v) {
155 await ElMessageBox.confirm( 148 await ElMessageBox.confirm(
156 languageFormat(language.value, "确认删除该观影人吗?", "Are you sure to delete this viewer?"), 149 languageFormat(language.value, '确认删除该观影人吗?', 'Are you sure to delete this viewer?'),
157 languageFormat(language.value, "提示", "Reminder"), 150 languageFormat(language.value, '提示', 'Reminder'),
158 { 151 {
159 confirmButtonText: languageFormat(language.value, "确认", "confirm"), 152 confirmButtonText: languageFormat(language.value, '确认', 'confirm'),
160 cancelButtonText: languageFormat(language.value, "取消", "cancel"), 153 cancelButtonText: languageFormat(language.value, '取消', 'cancel'),
161 type: "warning", 154 type: 'warning',
162 draggable: true, 155 draggable: true
163 } 156 }
164 ) 157 )
165 .then(async () => { 158 .then(async() => {
166 const res = await delCustomer(v) 159 const res = await delCustomer(v)
167 if (res.code === 200) { 160 if (res.code === 200) {
168 ElMessage.success('删除成功') 161 ElMessage.success('删除成功')
169 await customerList() 162 await customerList()
170 } 163 }
171 }) 164 })
172
173 } 165 }
174 </script> 166 </script>
175 167
......
...@@ -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.243:8081', 85 // target: 'http://192.168.1.243: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!