0e1113e9 by zhangmeng

票务

1 parent 427bbc09
...@@ -512,9 +512,9 @@ export function getTicketTotalApi(data) { ...@@ -512,9 +512,9 @@ export function getTicketTotalApi(data) {
512 } 512 }
513 513
514 // 下单 514 // 下单
515 export function TicketOrderBoApi(data) { 515 export function submitOrderTicket(data) {
516 return request({ 516 return request({
517 url: `/ota/orderTicket/TicketOrderBo`, 517 url: `/ota/norder/submitOrderTicket`,
518 method: 'POST', 518 method: 'POST',
519 data 519 data
520 }) 520 })
......
...@@ -21,18 +21,18 @@ ...@@ -21,18 +21,18 @@
21 </div> 21 </div>
22 22
23 <div class="form"> 23 <div class="form">
24 <el-form label-width="100px"> 24 <el-form ref="formRef" :model="orderForm" :rules="rules" label-width="100px">
25 <!-- <el-form-item-->
26 <!-- :label="language == 0 ? '联系人' : 'contact'" prop="contacts"-->
27 <!-- >-->
28 <!-- <el-input-->
29 <!-- v-model="orderForm.contacts"-->
30 <!-- :placeholder=" language == 0 ? '请输入联系人' : 'Please enter the contact'"-->
31 <!-- style="width: 320px"-->
32 <!-- />-->
33 <!-- </el-form-item>-->
25 <el-form-item 34 <el-form-item
26 :label="language == 0 ? '联系人' : 'contact'" 35 :label="language == 0 ? '联系人电话' : 'contact phone'" prop="phone"
27 >
28 <el-input
29 v-model="orderForm.contacts"
30 :placeholder=" language == 0 ? '请输入联系人' : 'Please enter the contact'"
31 style="width: 320px"
32 />
33 </el-form-item>
34 <el-form-item
35 :label="language == 0 ? '联系人电话' : 'contact phone'"
36 > 36 >
37 <el-input 37 <el-input
38 v-model="orderForm.phone" 38 v-model="orderForm.phone"
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
40 style="width: 320px" 40 style="width: 320px"
41 /> 41 />
42 </el-form-item> 42 </el-form-item>
43 <el-form-item :label="language == 0 ? '观看人' : 'Viewer'"> 43 <el-form-item :label="language == 0 ? '观看人' : 'Viewer'" prop="customerList">
44 <div class="p_box"> 44 <div class="p_box">
45 <div class="people"> 45 <div class="people">
46 <el-checkbox-group v-model="orderForm.customerList" @change="changeGroup"> 46 <el-checkbox-group v-model="orderForm.customerList" @change="changeGroup">
...@@ -75,33 +75,17 @@ ...@@ -75,33 +75,17 @@
75 <div class="detail"> 75 <div class="detail">
76 <div class="detail_top"> 76 <div class="detail_top">
77 <div class="time"> 77 <div class="time">
78 {{ order.data?.dateStr }} 78 {{ tickType.name }}
79 <span v-if="order.data?.ticketType == 1" class="tag_t"> 79 <span v-if="tickType.ticketType == 1" class="tag_t">
80 {{ languageFormat(language, "套票", "Package ticket") }} 80 {{ languageFormat(language, "套票", "Package ticket") }}
81 </span> 81 </span>
82 </div> 82 </div>
83 <div class="ticket"> 83 <div class="ticket">
84 {{ order?.singlePrice }}<span v-if="language == 0"></span 84 {{ tickType.price }}
85 >{{ languageFormat(language, "票档", "Ticket file") }} x{{ 85 <span> {{ language == 0 ? '元' : 'Euro' }}</span>
86 order?.seatInfo?.length 86 {{ languageFormat(language, "票档", "Ticket file") }}
87 }}{{ languageFormat(language, "张", "tickets") }} 87 x 1
88 </div> 88 {{ languageFormat(language, "张", "tickets") }}
89 </div>
90 <div class="detail_center">
91 <div
92 v-for="(it, index) in order.seatInfo"
93 :key="index"
94 class="ticket"
95 >
96 <span v-if="it.venueId == 1"
97 >{{ it.area }}{{ languageFormat(language, "区", "Zones") }}
98 </span>
99 {{ it.pai }}
100 {{ languageFormat(language, "排", "Row") }}
101 {{ it.no }}
102 {{ languageFormat(language, "座", "Seat") }}
103 ({{ it.venueId == 1 ? "B6" : "B4" }}
104 {{ languageFormat(language, "馆", "Venue") }})
105 </div> 89 </div>
106 </div> 90 </div>
107 <div class="detail_b"> 91 <div class="detail_b">
...@@ -126,10 +110,10 @@ ...@@ -126,10 +110,10 @@
126 </span> 110 </span>
127 <span class="value"> 111 <span class="value">
128 <span>{{ language == 0 ? "¥" : "€" }}</span> 112 <span>{{ language == 0 ? "¥" : "€" }}</span>
129 {{ order.data?.paymentAmount }} 113 {{ language == 0 ? price.total_cn : price.total_en }}
130 </span> 114 </span>
131 </div> 115 </div>
132 <div class="pay" @click="payment.paymentHandle()"> 116 <div class="pay" @click="paymentHandle">
133 {{ languageFormat(language, "立即支付", "Pay Now") }} 117 {{ languageFormat(language, "立即支付", "Pay Now") }}
134 </div> 118 </div>
135 </div> 119 </div>
...@@ -151,12 +135,14 @@ ...@@ -151,12 +135,14 @@
151 135
152 <script setup> 136 <script setup>
153 import {ref} from 'vue' 137 import {ref} from 'vue'
154 import {customerListApi, getTicketTotalApi, TicketOrderBoApi, listApi} from '@/apiPc/booking' 138 import {customerListApi, getTicketTotalApi, submitOrderTicket, listApi} from '@/apiPc/booking'
155 import {ElMessage} from "element-plus"; 139 import {ElMessage} from "element-plus";
156 import {languageFormat} from "@/viewsPc/seat/utils/language.js"; 140 import {languageFormat} from "@/viewsPc/seat/utils/language.js";
157 import {useStorage} from "@vueuse/core/index"; 141 import useUserStore from "/@/store/modules/user";
158 142
159 const language = useStorage("language", 0); 143 const useStore = useUserStore()
144 const language = useStore.language;
145 console.log(language)
160 const loading = ref(false); 146 const loading = ref(false);
161 const route = useRoute(); 147 const route = useRoute();
162 const router = useRouter(); 148 const router = useRouter();
...@@ -173,16 +159,42 @@ const orderForm = ref({ ...@@ -173,16 +159,42 @@ const orderForm = ref({
173 activeId: route.params.activeId, 159 activeId: route.params.activeId,
174 atId: route.params.latId, 160 atId: route.params.latId,
175 attId: route.params.attId, 161 attId: route.params.attId,
176 orderId: null, 162 ticketDate: null,
177 contacts: null, 163 ticketType: null,
178 phone: null, 164 phone: null,
179 remarks: null,
180 customerList: [], 165 customerList: [],
181 num: 0, 166 num: 0,
182 total: null 167 total: null
183 }) 168 })
184 const price = ref({}) 169 const price = ref({
170 total_en: 0,
171 total_cn: 0
172 })
185 const tickType = ref({}) 173 const tickType = ref({})
174 const rules = ref({
175 contacts: [
176 {
177 required: true,
178 message: languageFormat(language, "请输入联系人", "Please enter the contact person"),
179 trigger: "blur"
180 },
181 ],
182 phone: [
183 {
184 required: true,
185 message: languageFormat(language, "请输入联系电话", "Please enter the contact phone number"),
186 trigger: "blur"
187 },
188 ],
189 customerList: [
190 {
191 required: true,
192 message: languageFormat(language, "请选择观众", "Please select the audience"),
193 trigger: "blur"
194 },
195 ],
196 })
197 const formRef = ref(null)
186 let timer = null; 198 let timer = null;
187 199
188 200
...@@ -300,31 +312,35 @@ function changeGroup() { ...@@ -300,31 +312,35 @@ function changeGroup() {
300 async function customerList() { 312 async function customerList() {
301 const res = await customerListApi() 313 const res = await customerListApi()
302 personnelList.value = res.rows 314 personnelList.value = res.rows
303 console.log(res)
304 } 315 }
305 316
306
307 // 获取价格 317 // 获取价格
308 async function getTicketTotal() { 318 async function getTicketTotal() {
309 const res = await getTicketTotalApi(orderForm.value) 319 const res = await getTicketTotalApi(orderForm.value)
310 price.value = res.data 320 price.value = res.data
321 orderForm.value.total = language == 0 ? price.value.total_cn : price.value.total_en
322 console.log(orderForm.value)
311 } 323 }
312 324
313 getTicketTotal()
314
315 // 获取票档信息 325 // 获取票档信息
316 async function getTicketListType() { 326 async function getTicketListType() {
317 const res = await listApi({latId: orderForm.value.latId}) 327 const res = await listApi({latId: orderForm.value.latId})
318 tickType.value = res.rows.find(item => item.id == orderForm.value.attId) 328 tickType.value = res.rows.find(item => item.id == orderForm.value.attId)
329 orderForm.value.ticketDate = tickType.value.name
330 orderForm.value.ticketType = tickType.value.ticketType
319 } 331 }
320 332
321 getTicketListType() 333 getTicketListType()
322 334
323 335 // 提交
324 // 下单 336 async function paymentHandle() {
325 async function confirmOrder() { 337 await formRef.value.validate()
326 const res = await TicketOrderBoApi(orderForm.value) 338 const res = await submitOrderTicket(orderForm.value)
339 if (res.code == 200) {
340 ElMessage.success('提交成功')
341 }
327 } 342 }
343
328 </script> 344 </script>
329 345
330 346
...@@ -496,7 +512,7 @@ div { ...@@ -496,7 +512,7 @@ div {
496 512
497 .time { 513 .time {
498 font-weight: 500; 514 font-weight: 500;
499 font-size: 18px; 515 font-size: 20px;
500 color: #2d373f; 516 color: #2d373f;
501 line-height: 25px; 517 line-height: 25px;
502 margin-bottom: 8px; 518 margin-bottom: 8px;
......
...@@ -98,9 +98,11 @@ import {dayjs} from "element-plus"; ...@@ -98,9 +98,11 @@ import {dayjs} from "element-plus";
98 import {ElMessageBox, ElMessage} from "element-plus"; 98 import {ElMessageBox, ElMessage} from "element-plus";
99 import {languageFormat, getDayName} from "@/viewsPc/seat/utils/language"; 99 import {languageFormat, getDayName} from "@/viewsPc/seat/utils/language";
100 import {fillImgUrl} from "/@/utils/ruoyi"; 100 import {fillImgUrl} from "/@/utils/ruoyi";
101 import {useStorage} from "@vueuse/core/index"; 101 import useUserStore from "/@/store/modules/user";
102 102
103 const language = useStorage("language", 0); 103 const useStore = useUserStore()
104 const language = useStore.language;
105 const user = useStore.user
104 const route = useRoute(); 106 const route = useRoute();
105 const router = useRouter(); 107 const router = useRouter();
106 const activeId = ref(route.params.activeId) 108 const activeId = ref(route.params.activeId)
...@@ -152,6 +154,11 @@ function selectTick(v) { ...@@ -152,6 +154,11 @@ function selectTick(v) {
152 function toSelectSeat() { 154 function toSelectSeat() {
153 if (!selectForm.value.latId) return ElMessage.error(language.value == 0 ? "请选择票档" : 'Please select a ticket file') 155 if (!selectForm.value.latId) return ElMessage.error(language.value == 0 ? "请选择票档" : 'Please select a ticket file')
154 if (!selectForm.value.id) return ElMessage.error(language.value == 0 ? "请选择时间" : 'Please select time') 156 if (!selectForm.value.id) return ElMessage.error(language.value == 0 ? "请选择时间" : 'Please select time')
157 console.log(user)
158 if (!user) {
159 useStore().setVisitor()
160 return
161 }
155 router.push({ 162 router.push({
156 name: 'confirmOrder', 163 name: 'confirmOrder',
157 params: { 164 params: {
......
...@@ -65,9 +65,10 @@ import {ref} from "vue"; ...@@ -65,9 +65,10 @@ import {ref} from "vue";
65 import {aadCustomer, customerListApi, delCustomer} from '@/apiPc/booking' 65 import {aadCustomer, customerListApi, delCustomer} from '@/apiPc/booking'
66 import {ElMessage, ElMessageBox} from "element-plus"; 66 import {ElMessage, ElMessageBox} from "element-plus";
67 import {languageFormat} from "@/viewsPc/seat/utils/language.js"; 67 import {languageFormat} from "@/viewsPc/seat/utils/language.js";
68 import {useStorage} from "@vueuse/core/index"; 68 import useUserStore from "/@/store/modules/user";
69 69
70 const language = useStorage("language", 0); 70 const useStore = useUserStore()
71 const language = useStore.language;
71 72
72 const personnelList = ref([]) 73 const personnelList = ref([])
73 const show = ref(false) 74 const show = ref(false)
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!