Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
B
bigwood
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
罗超
bigwood
Commits
d30354f5
Commit
d30354f5
authored
Mar 30, 2023
by
youjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
50c3e056
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
134 additions
and
333 deletions
+134
-333
quasar.conf.js
quasar.conf.js
+2
-2
axiosJava.ts
src/api/axiosJava.ts
+1
-1
requestJava.ts
src/api/requestJava.ts
+3
-3
scheduledTrip.ts
src/api/scheduledTrip.ts
+13
-5
TripOrderHeader.vue
src/components/trip/order/TripOrderHeader.vue
+17
-126
TripOrderList.vue
src/components/trip/order/TripOrderList.vue
+49
-178
loginModule.ts
src/module/user/loginModule.ts
+1
-1
forget.vue
src/pages/auth/forget.vue
+1
-1
TripOrder.vue
src/pages/scheduledTrip/TripOrder.vue
+10
-16
tools.ts
src/utils/tools.ts
+37
-0
No files found.
quasar.conf.js
View file @
d30354f5
...
...
@@ -64,13 +64,13 @@ module.exports = configure(function (ctx) {
publicPath
:
ctx
.
dev
?
'/'
:
'./'
,
env
:
ctx
.
dev
?
{
BASE_APP_API
:
'http://192.168.10.
11:8083/api/common/post'
,
BASE_APP_API
:
'http://192.168.10.
9:8083/api/common/post'
,
//http://192.168.10.9:8083/api/common/post http://192.168.10.206:8015/api/common/post
JAVA_URL_API
:
'http://efficient.oytour.com'
,
VERSION
:
require
(
'./package.json'
).
version
,
}
:
{
BASE_APP_API
:
'https://reborn.oytour.com/api/common/post'
,
BASE_APP_API
:
'https://reborn.oytour.com/api/common/post'
,
//https://reborn.oytour.com/api/common/post
JAVA_URL_API
:
'http://efficient.oytour.com'
,
VERSION
:
require
(
'./package.json'
).
version
},
...
...
src/api/axiosJava.ts
View file @
d30354f5
...
...
@@ -77,7 +77,7 @@ const service = Axios.create({
timeout
:
20000
,
headers
:
{
'Content-Type'
:
'application/json'
,
'Referer-Viitto'
:
currentRouter
.
path
'Referer-Viitto'
:
window
.
history
.
state
.
current
}
})
...
...
src/api/requestJava.ts
View file @
d30354f5
...
...
@@ -33,18 +33,18 @@ const request = (cmd:string,msg:any): Promise<HttpResponse>=>{
let
timestamp
=
(
new
Date
()).
valueOf
();
if
(
Store
.
state
.
user
?.
token
)
{
token
=
Store
.
state
.
user
?.
token
?.
access_token
key
=
Store
.
state
.
user
?.
secretKey
//
key = Store.state.user?.secretKey
}
if
(
Store
.
state
.
user
?.
userDetail
)
{
groupId
=
Store
.
state
.
user
?.
userDetail
?.
groupId
}
var
encodeMsg
=
encodeURIComponent
(
JSON
.
stringify
(
msg
)).
toLowerCase
();
var
md5Str
=
md5
(
`
cmd=
${
cmd
}
&
msg=
${
encodeMsg
}
×tamp=
${
timestamp
}
&token=
${
token
}
&key=
${
key
}
`
);
var
md5Str
=
md5
(
`msg=
${
encodeMsg
}
×tamp=
${
timestamp
}
&token=
${
token
}
&key=
${
key
}
`
);
var
postData
=
{
"groupId"
:
groupId
,
"msg"
:
msg
,
// "cmd": cmd,
//
"timestamp": timestamp,
"timestamp"
:
timestamp
,
"token"
:
token
,
"sign"
:
md5Str
,
// "locale": language,
...
...
src/api/scheduledTrip.ts
View file @
d30354f5
import
{
HttpResponse
}
from
'../@types'
import
request
from
'./request'
import
requestJava
from
'./requestJava'
class
scheduledTripService
{
// 一日游订单列表
static
async
GetTravelOneDayOrderList
(
param
:
any
):
Promise
<
HttpResponse
>
{
return
request
(
'sellorder_post_GetTravelOneDayOrderList'
,
param
)
}
// 一日游订单提交
// 跟团订单列表
static
async
Getrecentorder
(
param
:
any
):
Promise
<
HttpResponse
>
{
return
requestJava
(
'/api/b2b/user/getrecentorder'
,
param
)
}
// 待处理跟团订单列表
static
async
GetWaitDealOrderPageList
(
param
:
any
):
Promise
<
HttpResponse
>
{
return
request
(
'b2b_get_GetWaitDealOrderPageList'
,
param
)
}
// static async GetTravelOneDayOrderList(param:any):Promise<HttpResponse>{
// return request('sellorder_post_GetTravelOneDayOrderList',param)
// }
// 跟团订单提交
static
async
SetOrderInfoForB2B
(
param
:
any
):
Promise
<
HttpResponse
>
{
return
request
(
'sellorder_post_SetOrderInfoForB2B'
,
param
)
}
...
...
src/components/trip/order/TripOrderHeader.vue
View file @
d30354f5
<
template
>
<div
class=
"rounded-borders bg-white row items-center q-pa-md"
>
<q-select
v-if=
"$q.platform.is.desktop"
class=
"q-mr-md"
style=
"min-width: 150px"
v-model=
"search.OrderStatus"
@
update:model-value=
"setOrderStatus"
dense
:options=
"status"
emit-value
option-label=
"StatusName"
option-value=
"StatusId"
map-options
:label=
"$t('hotelorder.search.status')"
standout
/>
<q-input
v-if=
"$q.platform.is.desktop"
class=
"q-mr-md"
v-model=
"search.OrderNo"
dense
standout
:label=
"$t('hotelorder.search.orderNum')"
/>
<q-field
v-if=
"$q.platform.is.desktop"
clearable
v-model=
"dateRangeFormat"
:label=
"$t('hotelorder.search.daterange')"
standout
class=
"col-2"
style=
"min-width: 190px"
dense
@
clear=
"getDateRange"
>
<div
class=
"self-center full-width no-outline"
tabindex=
"0"
>
{{
dateRangeFormat
}}
</div>
<q-popup-proxy
:offset=
"[0, 10]"
ref=
"qDateProxy"
>
<q-date
v-model=
"dateRange"
:options=
"optionsFn"
range
mask=
"YYYY/MM/DD"
landscape
@
range-end=
"dateRangeHandler"
></q-date>
</q-popup-proxy>
</q-field>
<q-select
v-if=
"$q.platform.is.desktop"
class=
"q-mr-md"
style=
"min-width: 150px"
v-model=
"search.orderState"
@
update:model-value=
"setorderState"
dense
:options=
"status"
emit-value
option-label=
"StatusName"
option-value=
"StatusId"
map-options
:label=
"$t('hotelorder.search.status')"
standout
/>
<q-select
class=
"q-mr-md"
style=
"min-width: 150px"
v-model=
"search.queryDays"
@
update:model-value=
"setorderDay"
dense
:options=
"Days"
emit-value
option-label=
"StatusName"
option-value=
"StatusId"
map-options
label=
"时间范围"
standout
/>
<div
class=
"col"
></div>
<q-btn
unelevated
class=
"bg-grey-3 hover q-mr-md"
:title=
"$t('morequery')"
>
<q-badge
rounded
class=
"din bg-red-2 text-red-14 text-weight-bold"
floating
:label=
"searchCnt"
v-if=
"searchCnt > 0"
/>
<svg-icon
color=
"dark"
icon=
"Text/Filter.svg"
:tips=
"$t('morequery')"
:size=
"20"
></svg-icon>
<q-tooltip>
{{
$t
(
'morequery'
)
}}
</q-tooltip>
<q-popup-proxy
class=
"no-shadow"
style=
"box-shadow: 0 0 50px #ddd !important"
:offset=
"[0, 20]"
:model-value=
"canHide"
>
<q-card
class=
"q-pa-md rounded-borders"
style=
"width: 300px"
>
<div
class=
"q-mb-md text-subtitle2"
>
{{
$t
(
'morequery'
)
}}
</div>
<div
class=
"q-mt-md row"
>
<q-input
v-model=
"search.OrderNo"
dense
standout
:label=
"$t('hotelorder.search.orderNum')"
class=
"mobile-only col q-mr-md"
/>
<q-input
v-model=
"search.OrderId"
dense
standout
:label=
"$t('hotelorder.search.orderId')"
class=
"col"
/>
</div>
<div
class=
"mobile-only q-mt-md"
>
<q-field
clearable
v-model=
"dateRangeFormat"
:label=
"$t('hotelorder.search.daterange')"
standout
style=
"min-width: 190px"
dense
@
clear=
"getDateRange"
>
<div
class=
"self-center full-width no-outline"
tabindex=
"0"
>
{{
dateRangeFormat
}}
</div>
<q-popup-proxy
:offset=
"[0, 10]"
ref=
"qDateProxy"
>
<q-date
v-model=
"dateRange"
:options=
"optionsFn"
range
mask=
"YYYY/MM/DD"
@
range-end=
"dateRangeHandler"
></q-date>
</q-popup-proxy>
</q-field>
</div>
<div
class=
"q-mt-md"
>
<q-field
clearable
v-model=
"dateRangeFormatUse"
:label=
"$t('v102.ticket.starttime')"
standout
style=
"min-width: 190px"
dense
@
clear=
"getDateRangeUse"
>
<div
class=
"self-center full-width no-outline"
tabindex=
"0"
>
{{
dateRangeFormatUse
}}
</div>
<q-popup-proxy
:offset=
"[0, 10]"
ref=
"qDateProxyUse"
>
<q-date
v-model=
"dateRangeUse"
:options=
"optionsFnUse"
range
mask=
"YYYY/MM/DD"
@
range-end=
"dateRangeHandlerUse"
></q-date>
</q-popup-proxy>
</q-field>
</div>
<!--
<div
class=
"q-mt-md"
>
<q-field
clearable
v-model=
"dateRangeFormatUse"
:label=
"$t('v102.ticket.starttime')"
standout
class=
"col"
style=
"min-width: 190px"
dense
@
clear=
"getDateRangeUse"
>
<div
class=
"self-center full-width no-outline"
tabindex=
"0"
>
{{
dateRangeFormatUse
}}
</div>
<q-popup-proxy
:offset=
"[0, 10]"
ref=
"qDateProxyUse"
>
<q-date
v-model=
"dateRangeUse"
:options=
"optionsFnUse"
range
mask=
"YYYY/MM/DD"
@
range-end=
"dateRangeHandlerUse"
></q-date>
</q-popup-proxy>
</q-field>
</div>
-->
<div
class=
"q-mt-md"
>
<q-input
v-model=
"search.Name"
dense
standout
:label=
"$t('v102.to.qjc')"
/>
</div>
<q-select
class=
"q-mt-md"
v-model=
"search.MailingState"
dense
:options=
"orderTypes"
emit-value
option-label=
"TypeName"
option-value=
"TypeId"
map-options
:label=
"$t('v102.to.qj')"
standout
/>
<q-input
v-model=
"search.CouponsName"
dense
standout
:label=
"$t('v102.to.ticketName')"
class=
"q-mt-md"
/>
<q-input
v-model=
"search.ContactNumber"
dense
standout
:label=
"$t('v102.to.qjp')"
class=
"q-mt-md"
/>
</q-card>
</q-popup-proxy>
</q-btn>
<q-btn
unelevated
class=
"bg-blue-1 text-primary hover q-mr-md"
:label=
"$t('hotelorder.recovery')"
/>
<q-btn
color=
"primary"
unelevated
:label=
"$t('query')"
@
click=
"setQueryHandler"
/>
</div>
<div
class=
"rounded-borders bg-white q-pa-sm q-mt-md mobile-only"
>
<q-tabs
v-model=
"search.
OrderStatus
"
class=
"text-cyan"
dense
>
<q-tab
:name=
"x.StatusId"
:label=
"x.StatusName"
v-for=
"x in status"
@
click=
"set
OrderStatus
(x.StatusId)"
/>
<q-tabs
v-model=
"search.
orderState
"
class=
"text-cyan"
dense
>
<q-tab
:name=
"x.StatusId"
:label=
"x.StatusName"
v-for=
"x in status"
@
click=
"set
orderState
(x.StatusId)"
/>
</q-tabs>
</div>
</
template
>
...
...
@@ -69,7 +16,7 @@
import
{
DirtionmaryHelper
}
from
'../../../config/dictionary'
import
{
computed
,
defineComponent
,
inject
,
reactive
,
ref
,
toRefs
}
from
'vue'
import
{
OrderType
,
RoomType
,
StandardStatus
}
from
'../../../@types'
import
{
get
HotelOrderStatus
,
getHotel
OrderType
,
getHotelRoomType
,
getTicketOrderType
}
from
'../../../utils/tools'
import
{
get
TripOrderStatus
,
getTrip
OrderType
,
getHotelRoomType
,
getTicketOrderType
}
from
'../../../utils/tools'
import
{
date
,
useQuasar
}
from
'quasar'
import
svgIcon
from
'../../global/svg-icon.vue'
...
...
@@ -81,90 +28,34 @@ export default defineComponent({
const
$q
=
useQuasar
()
const
data
=
reactive
({
Days
:[]
as
Array
<
StandardStatus
>
,
status
:
[]
as
Array
<
StandardStatus
>
,
cancelStatus
:
{}
as
StandardStatus
|
undefined
,
dateRangeFormat
:
''
,
dateRangeFormatUse
:
''
,
dateRange
:
{}
as
any
,
dateRangeUse
:
{}
as
any
,
orderTypes
:
[]
as
Array
<
OrderType
>
,
canHide
:
false
})
const
realSearch
=
inject
(
DirtionmaryHelper
.
TICKET_ORDER_SEARCH
)
as
any
const
search
=
reactive
(
JSON
.
parse
(
JSON
.
stringify
(
realSearch
)))
as
any
const
methods
=
{
initStatus
()
{
//通用的訂單類型
let
allStatus
=
getHotelOrderStatus
()
data
.
status
=
allStatus
.
filter
((
x
:
StandardStatus
)
=>
{
return
x
.
StatusId
!=
3
})
data
.
cancelStatus
=
allStatus
.
find
((
x
:
StandardStatus
)
=>
{
return
x
.
StatusId
==
3
})
data
.
orderTypes
=
getTicketOrderType
(
true
)
},
optionsFnUse
(
cd
:
any
)
{
return
true
},
optionsFn
(
cd
:
any
)
{
return
cd
<
date
.
formatDate
(
date
.
addToDate
(
new
Date
(),
{
days
:
1
}),
'YYYY/MM/DD'
)
},
getDateRangeUse
(
value
){
search
.
UseSTime
=
''
search
.
UseETime
=
''
data
.
dateRangeFormatUse
=
''
},
getDateRange
(
value
){
search
.
StartTime
=
''
search
.
EndTime
=
''
data
.
dateRangeFormat
=
''
},
dateRangeHandlerUse
(
e
:
any
)
{
search
.
UseSTime
=
`
${
e
.
from
.
year
}
/
${
e
.
from
.
month
}
/
${
e
.
from
.
day
}
`
search
.
UseETime
=
`
${
e
.
to
.
year
}
/
${
e
.
to
.
month
}
/
${
e
.
to
.
day
}
`
data
.
dateRangeFormatUse
=
`
${
search
.
UseSTime
}
-
${
search
.
UseETime
}
`
if
(
qDateProxyUse
.
value
)
qDateProxyUse
.
value
.
hide
()
},
dateRangeHandler
(
e
:
any
)
{
search
.
StartTime
=
`
${
e
.
from
.
year
}
/
${
e
.
from
.
month
}
/
${
e
.
from
.
day
}
`
search
.
EndTime
=
`
${
e
.
to
.
year
}
/
${
e
.
to
.
month
}
/
${
e
.
to
.
day
}
`
data
.
dateRangeFormat
=
`
${
search
.
StartTime
}
-
${
search
.
EndTime
}
`
if
(
qDateProxy
.
value
)
qDateProxy
.
value
.
hide
()
//跟团订单通用的訂單類型
let
allStatus
=
getTripOrderStatus
()
data
.
status
=
allStatus
data
.
Days
=
getTripOrderType
(
true
)
},
setQueryHandler
()
{
realSearch
.
OrderId
=
search
.
OrderId
realSearch
.
RoomType
=
search
.
RoomType
realSearch
.
StartTime
=
search
.
StartTime
realSearch
.
EndTime
=
search
.
EndTime
realSearch
.
UseSTime
=
search
.
UseSTime
realSearch
.
UseETime
=
search
.
UseETime
realSearch
.
OrderStatus
=
search
.
OrderStatus
realSearch
.
OrderNo
=
search
.
OrderNo
realSearch
.
MailingState
=
search
.
MailingState
realSearch
.
Name
=
search
.
Name
realSearch
.
CouponsName
=
search
.
CouponsName
realSearch
.
ContactNumber
=
search
.
ContactNumber
console
.
log
(
realSearch
)
realSearch
.
queryDays
=
search
.
queryDays
realSearch
.
orderState
=
search
.
orderState
},
setOrderStatus
(
statusId
:
number
)
{
realSearch
.
OrderStatus
=
statusId
setorderState
(
statusId
:
number
)
{
realSearch
.
orderState
=
statusId
},
setorderDay
(
statusId
:
number
)
{
search
.
queryDays
=
statusId
}
}
const
searchCnt
=
computed
(()
=>
{
let
setCnt
=
0
if
(
$q
.
platform
.
is
.
mobile
)
{
if
(
search
.
OrderStatus
>
0
)
setCnt
++
if
(
search
.
StartTime
.
length
>
0
)
setCnt
++
if
(
search
.
OrderNo
>
0
)
setCnt
++
}
if
(
search
.
OrderId
>
0
)
setCnt
++
if
(
search
.
UseSTime
.
length
>
0
)
setCnt
++
if
(
search
.
MailingState
>
0
)
setCnt
++
if
(
search
.
Name
)
setCnt
++
if
(
search
.
CouponsName
)
setCnt
++
if
(
search
.
ContactNumber
)
setCnt
++
return
setCnt
})
...
...
src/components/trip/order/TripOrderList.vue
View file @
d30354f5
This diff is collapsed.
Click to expand it.
src/module/user/loginModule.ts
View file @
d30354f5
...
...
@@ -44,7 +44,7 @@ const userUserLoginModule = () => {
const
param
=
{
account
:
userModel
.
username
,
password
:
userModel
.
password
,
platform
:
0
platform
:
3
}
let
r
=
await
dispatchAction
<
UserActionsType
>
(
'user'
,
'userLogin'
,
param
)
as
[
boolean
,
string
]
if
(
!
r
[
0
]){
...
...
src/pages/auth/forget.vue
View file @
d30354f5
...
...
@@ -114,7 +114,7 @@ export default defineComponent({
if
(
!
accountRefVal
.
value
.
hasError
){
data
.
loading
=
true
//hasError
UserService
.
sendVerify
({
account
:
data
.
account
,
platform
:
0
}).
then
(
r
=>
{
UserService
.
sendVerify
({
account
:
data
.
account
,
platform
:
3
}).
then
(
r
=>
{
console
.
log
(
r
)
data
.
loading
=
false
if
(
r
.
data
.
resultCode
==
ApiResult
.
SUCCESS
){
...
...
src/pages/scheduledTrip/TripOrder.vue
View file @
d30354f5
...
...
@@ -6,6 +6,7 @@
</
template
>
<
script
lang=
"ts"
>
import
Store
from
'../../store'
import
{
defineComponent
,
inject
,
provide
,
reactive
,
toRefs
,
onMounted
}
from
'vue'
import
{
currentRouter
}
from
'src/router'
import
useMetaModule
from
'../../module/meta/metaModule'
...
...
@@ -22,24 +23,17 @@ export default defineComponent({
const
pageTitle
=
inject
(
DirtionmaryHelper
.
PAGE_TITLE_KEY
)
as
any
pageTitle
.
value
=
t
(
'v102.to.pageTitle'
)
setTitle
(
pageTitle
.
value
)
let
CustomerId
if
(
Store
.
state
&&
Store
.
state
.
user
?.
userDetail
)
{
CustomerId
=
Store
.
state
.
user
?.
userDetail
?.
customerId
}
const
search
=
reactive
({
OrderId
:
''
,
OrderNo
:
''
,
OrderStatus
:
0
,
StartTime
:
''
,
EndTime
:
''
,
// TicketName:'',//景区名称
CouponsName
:
''
,
//景区名称
ContactNumber
:
''
,
//电话
Name
:
''
,
//顾客名称
UseSTime
:
''
,
//门票开始时间
UseETime
:
''
,
//门票结束时间
MailingState
:
-
1
orderType
:
7
,
//7跟团订单
queryDays
:
0
,
//10天内
orderState
:
-
1
,
//订单状态
CustomerId
:
CustomerId
,
//用户id
})
search
.
OrderId
=
currentRouter
.
currentRoute
.
value
.
params
.
orderId
//
search.OrderId = currentRouter.currentRoute.value.params.orderId
provide
(
DirtionmaryHelper
.
TICKET_ORDER_SEARCH
,
search
)
const
menu
=
inject
(
DirtionmaryHelper
.
MENU_KEYS
)
as
any
...
...
src/utils/tools.ts
View file @
d30354f5
...
...
@@ -193,6 +193,43 @@ export function getHotelOrderStatus():Array<StandardStatus>{
return
status
}
// 行程订单状态
export
function
getTripOrderStatus
():
Array
<
StandardStatus
>
{
let
status
=
[]
as
Array
<
StandardStatus
>
let
text
=
[
'全部'
,
'待付定金'
,
'待付尾款'
,
'待发团'
,
'交易完成'
,
'取消'
]
let
color
=
[
''
,
'positive'
,
'dark'
,
'orange'
,
'negative'
,
'orange'
,
'negative'
]
let
icons
=
[
''
,
'update'
,
'done'
,
'offline_bolt'
,
'cached'
,
'offline_bolt'
,
'cached'
]
text
.
forEach
((
x
,
i
:
number
)
=>
{
status
.
push
({
StatusId
:
i
-
1
,
StatusName
:
x
,
Icon
:
icons
[
i
],
Color
:
`text-
${
color
[
i
]}
`
})
})
return
status
}
// 行程订单天数
export
function
getTripOrderType
():
Array
<
StandardStatus
>
{
let
status
=
[]
as
Array
<
StandardStatus
>
let
text
=
[
'全部'
,
'10天内'
,
'30天内'
,
'60天内'
]
let
days
=
[
0
,
10
,
30
,
60
]
let
color
=
[
''
,
'positive'
,
'dark'
,
'orange'
]
let
icons
=
[
''
,
'update'
,
'done'
,
'offline_bolt'
]
text
.
forEach
((
x
,
i
:
number
)
=>
{
status
.
push
({
StatusId
:
days
[
i
],
StatusName
:
x
,
Icon
:
icons
[
i
],
Color
:
`text-
${
color
[
i
]}
`
})
})
return
status
}
export
function
getStrokeStatus
():
Array
<
StandardStatus
>
{
let
status
=
[]
as
Array
<
StandardStatus
>
let
text
=
[
t
(
'hotelorder.orderStatus.normal'
),
t
(
'v102.vehicle.strokestatus.d1'
),
t
(
'v102.vehicle.strokestatus.d2'
),
t
(
'v102.vehicle.strokestatus.d3'
)]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
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 comment