Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
jijin
/
dance-pc
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
0e1113e9
authored
2024-08-07 15:53:14 +0800
by
zhangmeng
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
票务
1 parent
427bbc09
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
85 additions
and
61 deletions
src/apiPc/booking.js
src/viewsPc/booking/ticket/confirmOrder.vue
src/viewsPc/booking/ticket/index.vue
src/viewsPc/booking/ticket/peopleManage.vue
src/apiPc/booking.js
View file @
0e1113e
...
...
@@ -512,9 +512,9 @@ export function getTicketTotalApi(data) {
}
// 下单
export
function
TicketOrderBoApi
(
data
)
{
export
function
submitOrderTicket
(
data
)
{
return
request
({
url
:
`/ota/
orderTicket/TicketOrderBo
`
,
url
:
`/ota/
norder/submitOrderTicket
`
,
method
:
'POST'
,
data
})
...
...
src/viewsPc/booking/ticket/confirmOrder.vue
View file @
0e1113e
...
...
@@ -21,18 +21,18 @@
</div>
<div
class=
"form"
>
<el-form
label-width=
"100px"
>
<el-form
ref=
"formRef"
:model=
"orderForm"
:rules=
"rules"
label-width=
"100px"
>
<!--
<el-form-item-->
<!-- :label="language == 0 ? '联系人' : 'contact'" prop="contacts"-->
<!-- >-->
<!--
<el-input-->
<!-- v-model="orderForm.contacts"-->
<!-- :placeholder=" language == 0 ? '请输入联系人' : 'Please enter the contact'"-->
<!-- style="width: 320px"-->
<!-- />-->
<!--
</el-form-item>
-->
<el-form-item
:label=
"language == 0 ? '联系人' : 'contact'"
>
<el-input
v-model=
"orderForm.contacts"
:placeholder=
" language == 0 ? '请输入联系人' : 'Please enter the contact'"
style=
"width: 320px"
/>
</el-form-item>
<el-form-item
:label=
"language == 0 ? '联系人电话' : 'contact phone'"
:label=
"language == 0 ? '联系人电话' : 'contact phone'"
prop=
"phone"
>
<el-input
v-model=
"orderForm.phone"
...
...
@@ -40,7 +40,7 @@
style=
"width: 320px"
/>
</el-form-item>
<el-form-item
:label=
"language == 0 ? '观看人' : 'Viewer'"
>
<el-form-item
:label=
"language == 0 ? '观看人' : 'Viewer'"
prop=
"customerList"
>
<div
class=
"p_box"
>
<div
class=
"people"
>
<el-checkbox-group
v-model=
"orderForm.customerList"
@
change=
"changeGroup"
>
...
...
@@ -75,33 +75,17 @@
<div
class=
"detail"
>
<div
class=
"detail_top"
>
<div
class=
"time"
>
{{
order
.
data
?.
dateStr
}}
<span
v-if=
"
order.data?
.ticketType == 1"
class=
"tag_t"
>
{{
languageFormat
(
language
,
"套票"
,
"Package ticket"
)
}}
</span>
{{
tickType
.
name
}}
<span
v-if=
"
tickType
.ticketType == 1"
class=
"tag_t"
>
{{
languageFormat
(
language
,
"套票"
,
"Package ticket"
)
}}
</span>
</div>
<div
class=
"ticket"
>
{{
order
?.
singlePrice
}}
<span
v-if=
"language == 0"
>
元
</span
>
{{
languageFormat
(
language
,
"票档"
,
"Ticket file"
)
}}
x
{{
order
?.
seatInfo
?.
length
}}{{
languageFormat
(
language
,
"张"
,
"tickets"
)
}}
</div>
</div>
<div
class=
"detail_center"
>
<div
v-for=
"(it, index) in order.seatInfo"
:key=
"index"
class=
"ticket"
>
<span
v-if=
"it.venueId == 1"
>
{{
it
.
area
}}{{
languageFormat
(
language
,
"区"
,
"Zones"
)
}}
</span>
{{
it
.
pai
}}
{{
languageFormat
(
language
,
"排"
,
"Row"
)
}}
{{
it
.
no
}}
{{
languageFormat
(
language
,
"座"
,
"Seat"
)
}}
(
{{
it
.
venueId
==
1
?
"B6"
:
"B4"
}}
{{
languageFormat
(
language
,
"馆"
,
"Venue"
)
}}
)
{{
tickType
.
price
}}
<span>
{{
language
==
0
?
'元'
:
'Euro'
}}
</span>
{{
languageFormat
(
language
,
"票档"
,
"Ticket file"
)
}}
x 1
{{
languageFormat
(
language
,
"张"
,
"tickets"
)
}}
</div>
</div>
<div
class=
"detail_b"
>
...
...
@@ -126,10 +110,10 @@
</span>
<span
class=
"value"
>
<span>
{{
language
==
0
?
"¥"
:
"€"
}}
</span>
{{
order
.
data
?.
paymentAmount
}}
{{
language
==
0
?
price
.
total_cn
:
price
.
total_en
}}
</span>
</div>
<div
class=
"pay"
@
click=
"payment
.paymentHandle()
"
>
<div
class=
"pay"
@
click=
"payment
Handle
"
>
{{
languageFormat
(
language
,
"立即支付"
,
"Pay Now"
)
}}
</div>
</div>
...
...
@@ -151,12 +135,14 @@
<
script
setup
>
import
{
ref
}
from
'vue'
import
{
customerListApi
,
getTicketTotalApi
,
TicketOrderBoApi
,
listApi
}
from
'@/apiPc/booking'
import
{
customerListApi
,
getTicketTotalApi
,
submitOrderTicket
,
listApi
}
from
'@/apiPc/booking'
import
{
ElMessage
}
from
"element-plus"
;
import
{
languageFormat
}
from
"@/viewsPc/seat/utils/language.js"
;
import
{
useStorage
}
from
"@vueuse/core/index
"
;
import
useUserStore
from
"/@/store/modules/user
"
;
const
language
=
useStorage
(
"language"
,
0
);
const
useStore
=
useUserStore
()
const
language
=
useStore
.
language
;
console
.
log
(
language
)
const
loading
=
ref
(
false
);
const
route
=
useRoute
();
const
router
=
useRouter
();
...
...
@@ -173,16 +159,42 @@ const orderForm = ref({
activeId
:
route
.
params
.
activeId
,
atId
:
route
.
params
.
latId
,
attId
:
route
.
params
.
attId
,
orderId
:
null
,
contacts
:
null
,
ticketDate
:
null
,
ticketType
:
null
,
phone
:
null
,
remarks
:
null
,
customerList
:
[],
num
:
0
,
total
:
null
})
const
price
=
ref
({})
const
price
=
ref
({
total_en
:
0
,
total_cn
:
0
})
const
tickType
=
ref
({})
const
rules
=
ref
({
contacts
:
[
{
required
:
true
,
message
:
languageFormat
(
language
,
"请输入联系人"
,
"Please enter the contact person"
),
trigger
:
"blur"
},
],
phone
:
[
{
required
:
true
,
message
:
languageFormat
(
language
,
"请输入联系电话"
,
"Please enter the contact phone number"
),
trigger
:
"blur"
},
],
customerList
:
[
{
required
:
true
,
message
:
languageFormat
(
language
,
"请选择观众"
,
"Please select the audience"
),
trigger
:
"blur"
},
],
})
const
formRef
=
ref
(
null
)
let
timer
=
null
;
...
...
@@ -300,31 +312,35 @@ function changeGroup() {
async
function
customerList
()
{
const
res
=
await
customerListApi
()
personnelList
.
value
=
res
.
rows
console
.
log
(
res
)
}
// 获取价格
async
function
getTicketTotal
()
{
const
res
=
await
getTicketTotalApi
(
orderForm
.
value
)
price
.
value
=
res
.
data
orderForm
.
value
.
total
=
language
==
0
?
price
.
value
.
total_cn
:
price
.
value
.
total_en
console
.
log
(
orderForm
.
value
)
}
getTicketTotal
()
// 获取票档信息
async
function
getTicketListType
()
{
const
res
=
await
listApi
({
latId
:
orderForm
.
value
.
latId
})
tickType
.
value
=
res
.
rows
.
find
(
item
=>
item
.
id
==
orderForm
.
value
.
attId
)
orderForm
.
value
.
ticketDate
=
tickType
.
value
.
name
orderForm
.
value
.
ticketType
=
tickType
.
value
.
ticketType
}
getTicketListType
()
// 下单
async
function
confirmOrder
()
{
const
res
=
await
TicketOrderBoApi
(
orderForm
.
value
)
// 提交
async
function
paymentHandle
()
{
await
formRef
.
value
.
validate
()
const
res
=
await
submitOrderTicket
(
orderForm
.
value
)
if
(
res
.
code
==
200
)
{
ElMessage
.
success
(
'提交成功'
)
}
}
</
script
>
...
...
@@ -496,7 +512,7 @@ div {
.time
{
font-weight
:
500
;
font-size
:
18
px
;
font-size
:
20
px
;
color
:
#2d373f
;
line-height
:
25px
;
margin-bottom
:
8px
;
...
...
src/viewsPc/booking/ticket/index.vue
View file @
0e1113e
...
...
@@ -98,9 +98,11 @@ import {dayjs} from "element-plus";
import
{
ElMessageBox
,
ElMessage
}
from
"element-plus"
;
import
{
languageFormat
,
getDayName
}
from
"@/viewsPc/seat/utils/language"
;
import
{
fillImgUrl
}
from
"/@/utils/ruoyi"
;
import
{
useStorage
}
from
"@vueuse/core/index
"
;
import
useUserStore
from
"/@/store/modules/user
"
;
const
language
=
useStorage
(
"language"
,
0
);
const
useStore
=
useUserStore
()
const
language
=
useStore
.
language
;
const
user
=
useStore
.
user
const
route
=
useRoute
();
const
router
=
useRouter
();
const
activeId
=
ref
(
route
.
params
.
activeId
)
...
...
@@ -152,6 +154,11 @@ function selectTick(v) {
function
toSelectSeat
()
{
if
(
!
selectForm
.
value
.
latId
)
return
ElMessage
.
error
(
language
.
value
==
0
?
"请选择票档"
:
'Please select a ticket file'
)
if
(
!
selectForm
.
value
.
id
)
return
ElMessage
.
error
(
language
.
value
==
0
?
"请选择时间"
:
'Please select time'
)
console
.
log
(
user
)
if
(
!
user
)
{
useStore
().
setVisitor
()
return
}
router
.
push
({
name
:
'confirmOrder'
,
params
:
{
...
...
src/viewsPc/booking/ticket/peopleManage.vue
View file @
0e1113e
...
...
@@ -65,9 +65,10 @@ import {ref} from "vue";
import
{
aadCustomer
,
customerListApi
,
delCustomer
}
from
'@/apiPc/booking'
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
languageFormat
}
from
"@/viewsPc/seat/utils/language.js"
;
import
{
useStorage
}
from
"@vueuse/core/index
"
;
import
useUserStore
from
"/@/store/modules/user
"
;
const
language
=
useStorage
(
"language"
,
0
);
const
useStore
=
useUserStore
()
const
language
=
useStore
.
language
;
const
personnelList
=
ref
([])
const
show
=
ref
(
false
)
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment