Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
jz_Travel
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
Merge Requests
0
Merge Requests
0
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
zhengke
jz_Travel
Commits
37b33e72
Commit
37b33e72
authored
Apr 21, 2025
by
youjie
Browse files
Options
Browse Files
Download
Plain Diff
酒店
parents
5e45e1c7
391066a7
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1465 additions
and
1428 deletions
+1465
-1428
AggregateOrdersList.vue
pages/AggregateOrders/AggregateOrdersList.vue
+103
-95
AggregateOrdersSearch.vue
pages/AggregateOrders/AggregateOrdersSearch.vue
+155
-136
header.vue
pages/AggregateOrders/components/header.vue
+232
-214
orders.vue
pages/AggregateOrders/components/orders.vue
+490
-466
hotelRoom.vue
pages/hotel/components/hotelRoom.vue
+28
-17
detail.vue
pages/hotel/detail.vue
+15
-77
list.vue
pages/hotel/list.vue
+0
-13
order.vue
pages/hotel/order.vue
+377
-351
producttypeenum.js
utils/producttypeenum.js
+65
-59
No files found.
pages/AggregateOrders/AggregateOrdersList.vue
View file @
37b33e72
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.AggOrdBox
{
.AggOrdBox
{
height
:
100vh
;
background
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772246864278108.jpg')
no-repeat
#F3F1EF
;
background-size
:
100%
240rpx
;
.AggOrdHeader
{
.AggOrdHeader
{
padding-bottom
:
20rpx
;
// background: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772246864278108.jpg')no-repeat;
// background-size: 100% 100%;
}
.AggOrdStatus
{
.AggOrdStatus
{
padding-top
:
20rpx
;
.AggOrdT
{
.AggOrdT
{
width
:
25%
;
padding
:
10rpx
20rpx
;
font-size
:
28rpx
;
color
:
#080A09
;
position
:
relative
;
}
.AggOrdT.active
{
.AggOrdT.active
{
color
:
#B99846
;
font-weight
:
bold
;
}
.AggOrdT
text
{
.AggOrdT
text
{
display
:
block
;
text-align
:
center
;
}
.AggOrdT
view
{
.AggOrdT
view
{
position
:
absolute
;
left
:
0
;
right
:
0
;
bottom
:
0
;
}
.AggOrdT
view
view
{
.AggOrdT
view
view
{
width
:
60rpx
;
height
:
10rpx
;
margin
:
auto
;
...
...
@@ -42,36 +50,31 @@
}
}
/
deep
/
.showModalInfo
.u-drawer-bottom
{
background-color
:
rgba
(
23
,
23
,
23
,
0
)
!
important
;
/
deep
/
.showModalInfo
.u-drawer-bottom
{
background-color
:
rgba
(
23
,
23
,
23
,
0
)
!
important
;
}
</
style
>
<
template
>
<view
class=
"AggOrdBox column"
>
<view
class=
"AggOrdHeader"
:style=
"[titleStyle]"
>
<AggOrdHeader
:title=
"pageTitle"
@
change=
"getOrderType"
:params=
"msg"
></AggOrdHeader>
<AggOrdHeader
:title=
"pageTitle"
@
change=
"getOrderType"
:params=
"msg"
></AggOrdHeader>
<view
class=
"AggOrdStatus row items-center"
>
<template>
<view
class=
"AggOrdT"
v-for=
"(item,index) in statusList"
:key=
"index"
:class=
"[msg.OrderStatus==item.ID?'active':'']"
@
click=
"getStatus(item.ID)"
>
<view
class=
"AggOrdT"
v-for=
"(item,index) in statusList"
:key=
"index"
:class=
"[msg.OrderStatus==item.ID?'active':'']"
@
click=
"getStatus(item.ID)"
>
<text>
{{
item
.
Name
}}
</text>
</view>
</
template
>
</view>
</view>
<view
class=
"col"
style=
"height: 1px;flex: 1;overflow: hidden;padding-top: 10rpx;"
>
<scroll-view
:scroll-y=
"true"
:enable-back-to-top=
"true"
:enable-flex=
"true"
@
scrolltolower=
"lower"
style=
"height: 100%;"
>
<scroll-view
:scroll-y=
"true"
:enable-back-to-top=
"true"
:enable-flex=
"true"
@
scrolltolower=
"lower"
style=
"height: 100%;"
>
<orders
:orders=
"g"
@
research=
"research"
></orders>
<u-empty
v-if=
"g.length==0"
text=
"暂无数据"
mode=
"data"
padding-top=
"20"
></u-empty>
<u-loadmore
v-else
:status=
"status"
:load-text=
"loadText"
:font-size=
"24"
:margin-top=
"20"
:margin-bottom=
"20"
bg-color=
"#F3F1EF"
/>
<u-loadmore
v-else
:status=
"status"
:load-text=
"loadText"
:font-size=
"24"
:margin-top=
"20"
:margin-bottom=
"20"
bg-color=
"#F3F1EF"
/>
<view
style=
"width: 100%;height: 20rpx;"
></view>
</scroll-view>
</view>
...
...
@@ -79,22 +82,25 @@
</template>
<
script
>
import
{
mappingListType
,
mappingListTypeTy
}
from
"../../utils/producttypeenum"
;
import
{
mappingListType
,
mappingListTypeTy
}
from
"../../utils/producttypeenum"
;
import
EnumHelper
from
'../../utils/enumhelper'
;
import
OrderStatusEnum
from
'../../utils/orderStautsEnum'
;
import
AggOrdHeader
from
"./components/header.vue"
;
import
orders
from
"./components/orders.vue"
;
export
default
{
export
default
{
components
:
{
AggOrdHeader
,
orders
,
},
data
()
{
return
{
data
()
{
return
{
pageTitle
:
'所有订单'
,
msg
:{
pageSize
:
10
,
pageIndex
:
1
,
msg
:
{
pageSize
:
10
,
pageIndex
:
1
,
OrderStatus
:
0
,
GoodsName
:
''
,
OrderTypeStr
:
''
...
...
@@ -106,19 +112,19 @@
},
status
:
"loadmore"
,
showModal
:
false
,
barshow
:
0
,
barshow
:
0
,
statusList
:
[],
g
:
[],
page_count
:
1
,
index
:
0
,
payindex
:
0
,
showAuth
:
false
,
titleStyle
:{},
titleStyle
:
{},
}
},
onLoad
(
options
)
{
if
(
options
.
OrderTypeStr
)
this
.
msg
.
OrderTypeStr
=
options
.
OrderTypeStr
if
(
options
.
OrderStatus
)
this
.
msg
.
OrderStatus
=
options
.
OrderStatus
onLoad
(
options
)
{
if
(
options
.
OrderTypeStr
)
this
.
msg
.
OrderTypeStr
=
options
.
OrderTypeStr
if
(
options
.
OrderStatus
)
this
.
msg
.
OrderStatus
=
options
.
OrderStatus
this
.
research
()
},
created
()
{
...
...
@@ -131,15 +137,14 @@
},
});
this
.
getOrderEnums
()
},
methods
:
{
getStatus
(
ID
){
this
.
msg
.
OrderStatus
=
ID
methods
:
{
getStatus
(
ID
)
{
this
.
msg
.
OrderStatus
=
ID
this
.
research
()
},
research
(
status
){
if
(
status
)
this
.
msg
.
OrderStatus
=
status
;
research
(
status
)
{
if
(
status
)
this
.
msg
.
OrderStatus
=
status
;
this
.
msg
.
pageIndex
=
1
;
this
.
msg
.
pageSize
=
10
;
this
.
status
=
"loadmore"
;
...
...
@@ -147,12 +152,12 @@
this
.
g
=
[];
this
.
init
()
},
getOrderType
(
item
){
getOrderType
(
item
)
{
this
.
msg
.
OrderTypeStr
=
item
.
Id
this
.
pageTitle
=
item
.
Name
this
.
research
()
},
init
()
{
init
()
{
uni
.
showLoading
({
title
:
'加载中...'
})
...
...
@@ -163,19 +168,20 @@
this
.
OrderPageTY
();
// #endif
},
OrderPageTY
(){
this
.
apipost
(
'b2b_get_GetB2BAllOrderPageList'
,
this
.
msg
,
OrderPageTY
()
{
this
.
apipost
(
'b2b_get_GetB2BAllOrderPageList'
,
this
.
msg
,
res
=>
{
if
(
res
.
resultCode
==
1
)
{
uni
.
hideLoading
()
res
.
data
.
pageData
.
forEach
(
x
=>
{
res
.
data
.
pageData
.
forEach
(
x
=>
{
// #ifdef MP-DI
x
.
goodTypeEnum
=
mappingListType
(
x
.
goodsType
)
// #endif
// #ifdef MP-AG
x
.
goodTypeEnum
=
mappingListTypeTy
(
x
.
goodsType
)
// #endif
x
.
orderStatusInfo
=
EnumHelper
.
ParseToEnum
(
OrderStatusEnum
,
x
.
orderStatus
,
'value'
)
x
.
orderStatusInfo
=
EnumHelper
.
ParseToEnum
(
OrderStatusEnum
,
x
.
orderStatus
,
'value'
)
})
this
.
g
=
this
.
g
.
concat
(
res
.
data
.
pageData
);
this
.
page_count
=
res
.
data
.
pageCount
;
...
...
@@ -189,14 +195,15 @@
}
);
},
OrderPageZK
(){
this
.
apipost
(
'GetMyDirectOrderPageList_post'
,
this
.
msg
,
OrderPageZK
()
{
this
.
apipost
(
'GetMyDirectOrderPageList_post'
,
this
.
msg
,
res
=>
{
if
(
res
.
resultCode
==
1
)
{
uni
.
hideLoading
()
res
.
data
.
pageData
.
forEach
(
x
=>
{
res
.
data
.
pageData
.
forEach
(
x
=>
{
x
.
goodTypeEnum
=
mappingListType
(
x
.
goodsType
)
x
.
orderStatusInfo
=
EnumHelper
.
ParseToEnum
(
OrderStatusEnum
,
x
.
orderStatus
,
'value'
)
x
.
orderStatusInfo
=
EnumHelper
.
ParseToEnum
(
OrderStatusEnum
,
x
.
orderStatus
,
'value'
)
})
this
.
g
=
this
.
g
.
concat
(
res
.
data
.
pageData
);
this
.
page_count
=
res
.
data
.
pageCount
;
...
...
@@ -221,23 +228,25 @@
},
getOrderEnums
()
{
this
.
apipost
(
"GetDirectOrderStatusEnum_post"
,
{},
"GetDirectOrderStatusEnum_post"
,
{},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
// #ifdef MP-DI
this
.
statusList
=
res
.
data
.
filter
(
x
=>
x
.
ID
!=
4
);
this
.
statusList
=
res
.
data
.
filter
(
x
=>
x
.
ID
!=
4
);
// #endif
// #ifdef MP-AG
this
.
statusList
=
res
.
data
.
filter
(
x
=>
x
.
ID
!=
5
);
this
.
statusList
=
res
.
data
.
filter
(
x
=>
x
.
ID
!=
5
);
// #endif
this
.
statusList
.
splice
(
0
,
0
,{
ID
:
0
,
Name
:
'全部'
})
this
.
statusList
.
forEach
(
x
=>
{
if
(
x
.
Name
==
'已付款'
)
x
.
Name
=
'待出行'
this
.
statusList
.
splice
(
0
,
0
,
{
ID
:
0
,
Name
:
'全部'
})
this
.
statusList
.
forEach
(
x
=>
{
if
(
x
.
Name
==
'已付款'
)
x
.
Name
=
'待出行'
})
}
},
err
=>
{
err
=>
{
uni
.
showToast
({
title
:
err
.
message
,
icon
:
"none"
,
...
...
@@ -248,4 +257,3 @@
},
}
</
script
>
\ No newline at end of file
pages/AggregateOrders/AggregateOrdersSearch.vue
View file @
37b33e72
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.AggOrdBox
{
.AggOrdBox
{
height
:
100vh
;
background
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772246864278108.jpg')
no-repeat
#F3F1EF
;
background-size
:
100%
240rpx
;
.AggOrdHeader
{
}
.AggOrdStatus
{
.AggOrdHeader
{}
.AggOrdStatus
{
padding-top
:
10rpx
;
.AggOrdT
{
.AggOrdT
{
width
:
25%
;
padding
:
10rpx
20rpx
;
font-size
:
28rpx
;
color
:
#080A09
;
position
:
relative
;
}
.AggOrdT.active
{
.AggOrdT.active
{
font-weight
:
bold
;
}
.AggOrdT
text
{
.AggOrdT
text
{
display
:
block
;
text-align
:
center
;
}
.AggOrdT
view
{
.AggOrdT
view
{
position
:
absolute
;
left
:
0
;
right
:
0
;
bottom
:
0
;
}
.AggOrdT
view
view
{
.AggOrdT
view
view
{
width
:
60rpx
;
height
:
10rpx
;
margin
:
auto
;
...
...
@@ -37,22 +43,26 @@
border-radius
:
10rpx
;
}
}
.AggregateTitle
{
.AggregateTitle
{
padding
:
40rpx
30rpx
40rpx
30rpx
;
font-size
:
36rpx
;
font-weight
:
bold
;
text-align
:
left
;
}
.AggregateTypeBox
{
.AggregateTypeBox
{
flex-wrap
:
wrap
;
padding
:
0
15rpx
;
}
.AggregateType
{
.AggregateType
{
width
:
33
.33%
;
padding
:
0
15rpx
;
margin-bottom
:
30rpx
;
}
.AggregateType
view
{
.AggregateType
view
{
display
:
block
;
padding
:
10rpx
0
15rpx
35rpx
;
background
:
#E3E6D2
;
...
...
@@ -60,7 +70,8 @@
border
:
1rpx
solid
#E3E6D2
;
overflow
:
hidden
;
}
.AggregateType
img
{
.AggregateType
img
{
width
:
40rpx
;
height
:
40rpx
;
display
:
inline-block
;
...
...
@@ -68,10 +79,12 @@
top
:
10rpx
;
right
:
20rpx
;
}
.AggregateType
text
{
.AggregateType
text
{
display
:
inline-block
;
}
.AggregateType.active
view
{
.AggregateType.active
view
{
border
:
1rpx
solid
#B99846
;
}
}
...
...
@@ -79,19 +92,16 @@
<
template
>
<view
class=
"AggOrdBox column"
>
<view
class=
"AggOrdHeader"
:style=
"[titleStyle]"
>
<AggOrdSearch
@
change=
"change"
:params=
"msg"
></AggOrdSearch>
<AggOrdSearch
@
change=
"change"
:params=
"msg"
></AggOrdSearch>
</view>
<view
class=
"col"
style=
"height: 1px;flex: 1;overflow: hidden;padding-top: 40rpx;"
>
<view
v-if=
"!msg.keyword"
>
<view
class=
"AggregateTitle"
>
订单类型
</view>
<view
class=
"AggregateTypeBox row"
>
<view
class=
"AggregateType"
v-for=
"(item,index) in orderTypeList"
:key=
"index"
:class=
"[msg.OrderTypeStr==item.Id?'active':'']"
@
click=
"getTypeId(item)"
>
:class=
"[msg.OrderTypeStr==item.Id?'active':'']"
@
click=
"getTypeId(item)"
>
<view
class=
"row"
>
<img
:src=
"item.icon"
/>
<img
:src=
"item.icon"
/>
<text>
{{
item
.
Name
}}
</text>
...
...
@@ -100,13 +110,12 @@
</view>
</view>
</view>
<scroll-view
v-else
:scroll-y=
"true"
:enable-back-to-top=
"true"
:enable-flex=
"true"
@
scrolltolower=
"lower"
style=
"height: 100%;"
>
<scroll-view
v-else
:scroll-y=
"true"
:enable-back-to-top=
"true"
:enable-flex=
"true"
@
scrolltolower=
"lower"
style=
"height: 100%;"
>
<orders
:orders=
"g"
></orders>
<u-empty
v-if=
"g.length==0"
text=
"暂无数据"
mode=
"data"
padding-top=
"20"
></u-empty>
<u-loadmore
v-else
:status=
"status"
:load-text=
"loadText"
:font-size=
"24"
:margin-top=
"20"
:margin-bottom=
"20"
bg-color=
"#F3F1EF"
/>
<u-loadmore
v-else
:status=
"status"
:load-text=
"loadText"
:font-size=
"24"
:margin-top=
"20"
:margin-bottom=
"20"
bg-color=
"#F3F1EF"
/>
<view
style=
"width: 100%;height: 20rpx;"
></view>
</scroll-view>
</view>
...
...
@@ -118,21 +127,24 @@
</
template
>
<
script
>
import
{
mappingListType
,
mappingListTypeTy
}
from
"../../utils/producttypeenum"
;
import
{
mappingListType
,
mappingListTypeTy
}
from
"../../utils/producttypeenum"
;
import
EnumHelper
from
'../../utils/enumhelper'
;
import
OrderStatusEnum
from
'../../utils/orderStautsEnum'
;
import
AggOrdSearch
from
"./components/searchHeader.vue"
;
import
orders
from
"./components/orders.vue"
;
export
default
{
export
default
{
components
:
{
AggOrdSearch
,
orders
,
},
data
()
{
return
{
msg
:{
pageSize
:
10
,
pageIndex
:
1
,
data
()
{
return
{
msg
:
{
pageSize
:
10
,
pageIndex
:
1
,
OrderStatus
:
0
,
GoodsName
:
''
,
OrderTypeStr
:
''
,
...
...
@@ -145,7 +157,7 @@
},
status
:
"loadmore"
,
showModal
:
false
,
barshow
:
0
,
barshow
:
0
,
g
:
[],
page_count
:
1
,
index
:
0
,
...
...
@@ -186,7 +198,7 @@
Name
:
'景点门票'
}
],
icons
:[
icons
:
[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772246968492575.jpg'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247052998903.jpg'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247084971514.jpg'
,
...
...
@@ -197,8 +209,8 @@
titleStyle
:
{},
}
},
onLoad
(
options
)
{
if
(
options
.
OrderTypeStr
)
{
onLoad
(
options
)
{
if
(
options
.
OrderTypeStr
)
{
this
.
msg
.
OrderTypeStr
=
options
.
OrderTypeStr
}
},
...
...
@@ -215,26 +227,32 @@
this
.
getEnumList
()
// #endif
},
methods
:
{
methods
:
{
getEnumList
()
{
this
.
apipost
(
"CarSingle_post_GetOrderTypeEnumList"
,
{},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
orderTypeList
=
[]
res
.
data
.
forEach
(
x
=>
{
if
(
x
.
Name
==
'团队'
){
x
.
Name
=
'线路'
}
if
(
x
.
Name
!=
'Jalan酒店'
){
res
.
data
.
forEach
(
x
=>
{
if
(
x
.
Name
==
'团队'
)
{
x
.
Name
=
'线路'
}
if
(
x
.
Name
!=
'Jalan酒店'
)
{
let
icon
=
''
if
(
x
.
Id
==
'1'
)
icon
=
this
.
icons
[
1
]
if
(
x
.
Id
==
'2'
)
icon
=
this
.
icons
[
0
]
if
(
x
.
Id
==
'3'
)
icon
=
this
.
icons
[
3
]
if
(
x
.
Id
==
'4'
)
icon
=
this
.
icons
[
5
]
if
(
x
.
Id
==
'5'
)
icon
=
this
.
icons
[
4
]
if
(
x
.
Id
==
'6'
)
icon
=
this
.
icons
[
2
]
if
(
x
.
Id
==
'1'
)
icon
=
this
.
icons
[
1
]
if
(
x
.
Id
==
'2'
)
icon
=
this
.
icons
[
0
]
if
(
x
.
Id
==
'3'
)
icon
=
this
.
icons
[
3
]
if
(
x
.
Id
==
'4'
)
icon
=
this
.
icons
[
5
]
if
(
x
.
Id
==
'5'
)
icon
=
this
.
icons
[
4
]
if
(
x
.
Id
==
'6'
)
icon
=
this
.
icons
[
2
]
let
obj
=
{
Id
:
x
.
Id
,
Name
:
x
.
Name
+
'订单'
,
Name
:
x
.
Name
+
'订单'
,
icon
:
icon
}
//酒店切换为道旅酒店
if
(
obj
.
Id
==
'3'
)
{
obj
.
Id
=
'7'
;
}
this
.
orderTypeList
.
push
(
obj
)
}
})
...
...
@@ -246,7 +264,7 @@
});
})
},
research
(){
research
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
msg
.
pageSize
=
10
;
this
.
status
=
"loadmore"
;
...
...
@@ -259,16 +277,16 @@
this
.
msg
.
keyword
=
item
.
Name
this
.
research
()
},
change
(
item
)
{
change
(
item
)
{
this
.
msg
.
keyword
=
item
.
keyword
this
.
msg
.
OrderTypeStr
=
item
.
OrderTypeStr
this
.
research
()
},
init
()
{
if
(
!
this
.
msg
.
keyword
)
return
if
(
!
this
.
msg
.
OrderTypeStr
)
{
init
()
{
if
(
!
this
.
msg
.
keyword
)
return
if
(
!
this
.
msg
.
OrderTypeStr
)
{
this
.
msg
.
GoodsName
=
this
.
msg
.
keyword
}
else
{
}
else
{
this
.
msg
.
GoodsName
=
''
}
uni
.
showLoading
({
...
...
@@ -281,18 +299,19 @@
this
.
OrderPageTY
();
// #endif
},
OrderPageTY
(){
this
.
apipost
(
'b2b_get_GetB2BAllOrderPageList'
,
this
.
msg
,
OrderPageTY
()
{
this
.
apipost
(
'b2b_get_GetB2BAllOrderPageList'
,
this
.
msg
,
res
=>
{
if
(
res
.
resultCode
==
1
)
{
res
.
data
.
pageData
.
forEach
(
x
=>
{
res
.
data
.
pageData
.
forEach
(
x
=>
{
// #ifdef MP-DI
x
.
goodTypeEnum
=
mappingListType
(
x
.
goodsType
)
// #endif
// #ifdef MP-AG
x
.
goodTypeEnum
=
mappingListTypeTy
(
x
.
goodsType
)
// #endif
x
.
orderStatusInfo
=
EnumHelper
.
ParseToEnum
(
OrderStatusEnum
,
x
.
orderStatus
,
'value'
)
x
.
orderStatusInfo
=
EnumHelper
.
ParseToEnum
(
OrderStatusEnum
,
x
.
orderStatus
,
'value'
)
})
this
.
g
=
this
.
g
.
concat
(
res
.
data
.
pageData
);
this
.
page_count
=
res
.
data
.
pageCount
;
...
...
@@ -307,13 +326,14 @@
}
);
},
OrderPageZK
(){
this
.
apipost
(
'GetMyDirectOrderPageList_post'
,
this
.
msg
,
OrderPageZK
()
{
this
.
apipost
(
'GetMyDirectOrderPageList_post'
,
this
.
msg
,
res
=>
{
if
(
res
.
resultCode
==
1
)
{
res
.
data
.
pageData
.
forEach
(
x
=>
{
res
.
data
.
pageData
.
forEach
(
x
=>
{
x
.
goodTypeEnum
=
mappingListType
(
x
.
goodsType
)
x
.
orderStatusInfo
=
EnumHelper
.
ParseToEnum
(
OrderStatusEnum
,
x
.
orderStatus
,
'value'
)
x
.
orderStatusInfo
=
EnumHelper
.
ParseToEnum
(
OrderStatusEnum
,
x
.
orderStatus
,
'value'
)
})
this
.
g
=
this
.
g
.
concat
(
res
.
data
.
pageData
);
this
.
page_count
=
res
.
data
.
pageCount
;
...
...
@@ -348,4 +368,3 @@
},
}
</
script
>
\ No newline at end of file
pages/AggregateOrders/components/header.vue
View file @
37b33e72
...
...
@@ -11,10 +11,12 @@
</view>
<view
class=
"carrHeader-right row"
>
<view
class=
"carrHeader-S row items-center justify-center"
>
<img
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772246934795585.jpg"
@
click=
"goSearch"
/>
<img
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772246934795585.jpg"
@
click=
"goSearch"
/>
</view>
<view
class=
"carrHeader-T row items-center justify-center"
>
<img
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247012340060.jpg"
@
click=
"showModal=true"
/>
<img
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247012340060.jpg"
@
click=
"showModal=true"
/>
</view>
</view>
</view>
...
...
@@ -22,10 +24,8 @@
<view
style=
"padding: 0 20rpx;"
>
<view
class=
"AggregateTitle"
>
订单类型
</view>
<view
class=
"AggregateTypeBox row"
>
<view
class=
"AggregateType"
v-for=
"(item,index) in orderTypeList"
:key=
"index"
:class=
"[params.OrderTypeStr==item.Id?'active':'']"
@
click=
"getTypeId(item)"
>
<view
class=
"AggregateType"
v-for=
"(item,index) in orderTypeList"
:key=
"index"
:class=
"[params.OrderTypeStr==item.Id?'active':'']"
@
click=
"getTypeId(item)"
>
<text>
{{
item
.
Name
}}
</text>
</view>
</view>
...
...
@@ -34,13 +34,12 @@
</view>
</
template
>
<
script
>
export
default
{
props
:[
'title'
,
'params'
],
export
default
{
props
:
[
'title'
,
'params'
],
data
()
{
return
{
titleStyle
:{},
orderTypeList
:
[
{
titleStyle
:
{},
orderTypeList
:
[{
Id
:
''
,
Name
:
'所有订单'
},
...
...
@@ -70,7 +69,7 @@ export default {
}
],
showModal
:
false
,
icons
:
[
icons
:
[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772246968492575.jpg'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247052998903.jpg'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247084971514.jpg'
,
...
...
@@ -80,12 +79,12 @@ export default {
]
}
},
watch
:
{
params
:
{
watch
:
{
params
:
{
handler
(
newVal
,
oldVal
)
{
},
deep
:
true
deep
:
true
}
},
mounted
()
{
...
...
@@ -93,30 +92,35 @@ export default {
this
.
getEnumList
()
// #endif
},
methods
:
{
methods
:
{
getEnumList
()
{
this
.
apipost
(
"CarSingle_post_GetOrderTypeEnumList"
,
{},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
orderTypeList
=
[]
res
.
data
.
forEach
(
x
=>
{
if
(
x
.
Name
==
'团队'
){
x
.
Name
=
'线路'
}
if
(
x
.
Name
!=
'Jalan酒店'
){
res
.
data
.
forEach
(
x
=>
{
if
(
x
.
Name
==
'团队'
)
{
x
.
Name
=
'线路'
}
if
(
x
.
Name
!=
'Jalan酒店'
)
{
let
icon
=
''
if
(
x
.
Id
==
'1'
)
icon
=
this
.
icons
[
1
]
if
(
x
.
Id
==
'2'
)
icon
=
this
.
icons
[
0
]
if
(
x
.
Id
==
'3'
)
icon
=
this
.
icons
[
3
]
if
(
x
.
Id
==
'4'
)
icon
=
this
.
icons
[
5
]
if
(
x
.
Id
==
'5'
)
icon
=
this
.
icons
[
4
]
if
(
x
.
Id
==
'6'
)
icon
=
this
.
icons
[
2
]
if
(
x
.
Id
==
'1'
)
icon
=
this
.
icons
[
1
]
if
(
x
.
Id
==
'2'
)
icon
=
this
.
icons
[
0
]
if
(
x
.
Id
==
'3'
)
icon
=
this
.
icons
[
3
]
if
(
x
.
Id
==
'4'
)
icon
=
this
.
icons
[
5
]
if
(
x
.
Id
==
'5'
)
icon
=
this
.
icons
[
4
]
if
(
x
.
Id
==
'6'
)
icon
=
this
.
icons
[
2
]
let
obj
=
{
Id
:
x
.
Id
,
Name
:
x
.
Name
+
'订单'
,
Name
:
x
.
Name
+
'订单'
,
icon
:
icon
}
//酒店切换为道旅酒店
if
(
obj
.
Id
==
'3'
)
{
obj
.
Id
=
'7'
;
}
this
.
orderTypeList
.
push
(
obj
)
}
})
// this.orderTypeList = res.data
this
.
orderTypeList
.
unshift
({
Id
:
''
,
Name
:
'所有订单'
...
...
@@ -133,61 +137,70 @@ export default {
this
.
$emit
(
'change'
,
item
)
this
.
showModal
=
false
;
},
goSearch
(){
// ?OrderTypeStr=${this.params.OrderTypeStr}
goSearch
()
{
uni
.
navigateTo
({
url
:
`/pages/AggregateOrders/AggregateOrdersSearch`
})
},
goBack
(){
uni
.
navigateBack
({
delta
:
-
1
})
goBack
()
{
uni
.
navigateBack
({
delta
:
-
1
})
}
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.AggregateTitle
{
@import
url("@/asset/css/flex.css")
;
.AggregateTitle
{
padding
:
40rpx
30rpx
40rpx
30rpx
;
font-size
:
32rpx
;
font-weight
:
bold
;
text-align
:
left
;
}
.AggregateTypeBox
{
}
.AggregateTypeBox
{
flex-wrap
:
wrap
;
padding
:
0
15rpx
;
}
.AggregateType
{
}
.AggregateType
{
width
:
33
.33%
;
padding
:
0
15rpx
;
margin-bottom
:
30rpx
;
}
.AggregateType
text
{
}
.AggregateType
text
{
display
:
block
;
line-height
:
60rpx
;
background
:
#f5f5f5
;
border
:
1rpx
solid
#E3E6D2
;
border-radius
:
60rpx
;
text-align
:
center
;
}
.AggregateType.active
text
{
}
.AggregateType.active
text
{
border
:
1rpx
solid
#B99846
;
color
:
#B99846
;
}
.carrHeader-title
{
}
.carrHeader-title
{
position
:
relative
;
left
:
60rpx
;
right
:
0
;
text-align
:
left
;
font-size
:
32rpx
;
}
.carrHeader-left
{
}
.carrHeader-left
{
position
:
absolute
;
left
:
32rpx
;
bottom
:
23rpx
;
z-index
:
3
;
}
.carrHeaderBox
{
}
.carrHeaderBox
{
width
:
100%
;
height
:
88rpx
;
padding
:
0
32rpx
;
...
...
@@ -195,28 +208,33 @@ export default {
align-items
:
center
;
justify-content
:
space-between
;
position
:
relative
;
}
.carrHeader
{
}
.carrHeader
{
// padding-top: 85rpx;
}
.carrHeader-right
{
}
.carrHeader-right
{
padding-right
:
200rpx
;
display
:
flex
;
}
.carrHeader-right
img
{
}
.carrHeader-right
img
{
width
:
35rpx
;
height
:
35rpx
;
}
.carrHeader-S
{
}
.carrHeader-S
{
width
:
63rpx
;
height
:
63rpx
;
margin-right
:
20rpx
;
}
.carrHeader-T
{
}
.carrHeader-T
{
width
:
63rpx
;
height
:
63rpx
;
border-radius
:
50%
;
border
:
1px
solid
#CFC089
;
margin-right
:
20rpx
;
}
}
</
style
>
\ No newline at end of file
pages/AggregateOrders/components/orders.vue
View file @
37b33e72
This diff is collapsed.
Click to expand it.
pages/hotel/components/hotelRoom.vue
View file @
37b33e72
...
...
@@ -3,24 +3,29 @@
<view
style=
"padding: 0 31rpx;"
>
<view
class=
"hotelDetailBox activeTag"
v-for=
"(item,index) in RoomList"
:key=
"index"
>
<view
class=
"hotelDetailTag"
>
热门房型
{{
item
.
RoomName_CN
}}
</view>
<template
v-for=
"(subItem,subindex) in item.RatePlanList"
>
<view
class=
"hotelDetail row"
v-if=
"!subindex"
>
<template
v-if=
"item.images&&item.images.length>0"
>
<view
class=
"hotelDetailL"
@
click=
"openPicture(item.images)"
>
<image
mode=
"heightFix"
:src=
"item.Path
"
/>
<image
mode=
"heightFix"
:src=
"item.images[0].Url
"
/>
<view
class=
"hotelDetailLImgs"
v-if=
"item.images&&item.images.length>1"
>
{{
item
.
images
.
length
}}
</view>
</view>
</
template
>
<
template
v-else
>
<view
class=
"hotelDetailL"
>
<image
mode=
"heightFix"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/defaultHotelImg.png"
/>
</view>
</
template
>
<view
class=
"hotelDetailR column"
>
<view
class=
"hotelDetailRTitle row items-center"
>
<view>
<!--
{{
getRoomType
(
subItem
.
BedType
)
}}
-->
</view>
<!--
<img
:src=
"openImg[0]"
/>
-->
</view>
<view
class=
"hotelDetailRRoom"
>
{{ subItem.RoomName_CN }}
...
...
@@ -287,17 +292,23 @@
return
mealtypeName
;
},
goUrl
(
subItem
)
{
let
HotelInfo
=
{
let
pHotel
=
{
hotelid
:
this
.
HotelInfo
.
hotelid
,
name
:
this
.
HotelInfo
.
name
,
location
:
this
.
HotelInfo
.
location
,
address
:
this
.
HotelInfo
.
address
,
destination
:
this
.
HotelInfo
.
destination
,
country
:
this
.
HotelInfo
.
country
,
images
:
this
.
HotelInfo
.
images
,
address
:
""
,
images
:
[],
}
if
(
this
.
HotelInfo
)
{
if
(
this
.
HotelInfo
.
images
&&
this
.
HotelInfo
.
images
.
length
>
0
)
{
pHotel
.
images
.
push
(
this
.
HotelInfo
.
images
[
0
].
url
);
}
if
(
this
.
HotelInfo
.
location
&&
this
.
HotelInfo
.
location
.
address
)
{
pHotel
.
address
=
this
.
HotelInfo
.
location
.
address
;
}
}
console
.
log
(
"hotelRoom"
,
pHotel
);
uni
.
navigateTo
({
url
:
`/pages/hotel/order?searchObj=
${
JSON
.
stringify
(
this
.
searchObj
)}
&dayObj=
${
JSON
.
stringify
(
this
.
dayObj
)}
&HotelInfo=
${
JSON
.
stringify
(
HotelInfo
)}
&RoomInfo=
${
JSON
.
stringify
(
subItem
)}
`
,
url
:
`/pages/hotel/order?searchObj=
${
JSON
.
stringify
(
this
.
searchObj
)}
&dayObj=
${
JSON
.
stringify
(
this
.
dayObj
)}
&HotelInfo=
${
JSON
.
stringify
(
pHotel
)}
&RoomInfo=
${
JSON
.
stringify
(
subItem
)}
`
,
});
},
openPicture
(
item
)
{
...
...
pages/hotel/detail.vue
View file @
37b33e72
...
...
@@ -16,19 +16,12 @@
style=
"width: 37rpx; height: 44rpx"
mode=
""
></image>
</view>
</view>
<!--
<view
class=
"type-box"
v-if=
"videoUrl!=''"
>
<u-tabs
bg-color=
"rgba(0,0,0,0)"
:is-scroll=
"false"
name=
"Name"
:list=
"typeList"
:active-color=
"mainColor"
:current=
"active"
@
change=
"changeHandler"
:show-bar=
"true"
:bold=
"false"
height=
"50"
duration=
"0"
font-size=
"24"
:activeFontSize=
"24"
:typeStyle=
"2"
>
</u-tabs>
</view>
-->
<view
class=
"media-info"
v-if=
"dataList.images"
>
<view
class=
"flex"
>
<view
class=
"mi-left"
>
<view
v-if=
"dataList.images.length > 0"
class=
"type-img-box"
>
<image
:src=
"dataList.images[0].url"
mode=
"aspectFill"
></image>
<view
class=
"content"
>
<!--
<u-icon
name=
"photo"
size=
"26"
color=
"#FFF"
></u-icon>
-->
<text>
{{
dataList
.
images
.
length
}}
</text>
</view>
</view>
...
...
@@ -205,8 +198,6 @@
<hotelPolicy
ref=
"hotelPolicy"
id=
"hotelPolicy"
:dataList=
"dataList"
></hotelPolicy>
<hotelFacilities
ref=
"hotelFacilities"
id=
"hotelFacilities"
:dataList=
"dataList"
>
</hotelFacilities>
</view>
</view>
</view>
...
...
@@ -351,7 +342,10 @@
loading
:
false
,
DidaHotelRoomDetails
:
{},
qRoomTypeList
:
[],
qMealTypeList
:
[],
qMealTypeList
:
[{
ID
:
''
,
MTypeName
:
"全部"
}],
HotelMealTypes
:
[],
qMsg
:
{
RoomTypeName
:
""
,
//房型筛选
...
...
@@ -483,7 +477,6 @@
if
(
options
.
searchObj
)
{
this
.
searchObj
=
JSON
.
parse
(
options
.
searchObj
);
}
// this.getRecomHotel();
this
.
getHotelPrices
()
this
.
getdidaMealType
()
},
...
...
@@ -561,32 +554,21 @@
console
.
log
(
"dmc_post_GetDiDaPriceSearchList"
,
tempData
);
this
.
DidaHotelRoomDetails
=
tempData
;
this
.
qRoomTypeList
=
tempData
.
qRoomTypeList
;
console
.
log
(
"qRoomTypeList"
,
this
.
qRoomTypeList
);
if
(
this
.
qRoomTypeList
&&
this
.
qRoomTypeList
.
length
>
0
)
this
.
qRoomTypeList
.
unshift
({
if
(
this
.
qRoomTypeList
&&
this
.
qRoomTypeList
.
length
>
0
)
{
this
.
qRoomTypeList
.
unshift
({
RoomTypeID
:
-
1
,
RoomName_CN
:
'全部
'
RoomName_CN
:
'房型(全部)
'
})
var
tempMealArray
=
tempData
.
qMealTypeList
;
if
(
tempMealArray
&&
tempMealArray
.
length
>
0
)
{
tempMealArray
.
forEach
(
mItem
=>
{
var
MTypeName
=
that
.
getMealtype
(
mItem
.
MealType
);
if
(
mItem
.
MealAmount
>
0
)
{
MTypeName
+=
mItem
.
MealAmount
+
"份"
;
}
mItem
.
MTypeName
=
MTypeName
});
}
this
.
qMealTypeList
=
tempMealArray
;
console
.
log
(
"qMealTypeList"
,
this
.
qMealTypeList
);
if
(
this
.
qMealTypeList
&&
this
.
qMealTypeList
.
length
>
0
)
this
.
qMealTypeList
.
unshift
({
MTypeName
:
"全部"
,
this
.
qMealTypeList
=
tempData
.
qMealTypeList
;
if
(
this
.
qMealTypeList
&&
this
.
qMealTypeList
.
length
>
0
)
{
this
.
qMealTypeList
.
unshift
({
MTypeName
:
"餐型(全部)"
,
MealAmount
:
0
,
MealType
:
0
,
})
}
}
})
},
//获取道旅餐食类型
...
...
@@ -628,7 +610,6 @@
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
// console.log(res, '推荐酒店');
this
.
HotelArr
=
[];
let
tempHotel
=
res
.
data
.
pageData
;
tempHotel
.
forEach
((
x
)
=>
{
...
...
@@ -785,9 +766,7 @@
longPressActions
:
{
itemList
:
[
"发送给朋友"
,
"保存图片"
,
"收藏"
],
success
:
function
(
data
)
{},
fail
:
function
(
err
)
{
// console.log(err.errMsg);
},
fail
:
function
(
err
)
{},
},
});
},
...
...
@@ -843,20 +822,8 @@
for
(
let
i
=
0
;
i
<
res
.
data
.
images
.
length
;
i
++
)
{
res
.
data
.
images
[
i
].
Path
=
res
.
data
.
images
[
i
].
url
}
// for(let i=0;i
<
res
.
data
.
rooms
.
length
;
i
++
){
// let list = res.data.rooms[i].images.filter(x=>{
// return x.isDefault
// })
// res.data.rooms[i].images.forEach(x=>{
// x.Path = x.url
// })
// if(list.length>0) res.data.rooms[i].Path = list[0].url
// else res.data.rooms[i].Path = res.data.rooms[i].images.length>0&&res.data.rooms[i].images[0].url?res.data.rooms[i].images[0].url:''
// this.RoomList.push(res.data.rooms[i])
// }
this
.
hotelData
.
hotelid
=
this
.
dataList
.
hotelid
;
this
.
hotelData
.
name
=
this
.
dataList
.
name
;
// this.hotelData.Booking = this.dataList.Booking;
setTimeout
(()
=>
{
this
.
hotelFacilities
.
forEach
((
x
)
=>
{
const
query
=
uni
.
createSelectorQuery
().
select
(
`#
${
x
.
val
}
`
);
...
...
@@ -867,35 +834,6 @@
},
1000
);
}
})
// let msg = {
// hotelid: id,
// StartDate: this.dayObj.start,
// EndDate: this.dayObj.end,
// };
// this.request2(
// {
// url: "/api/Hotel/GetHotelInfo",
// data: msg,
// },
// (res) => {
// if (res.resultCode == 1) {
// // console.log(res, '详情数据');
// this.dataList = res.data;
// this.RoomList = this.dataList.RoomList;
// this.hotelData.hotelid = this.dataList.hotelid;
// this.hotelData.name = this.dataList.name;
// this.hotelData.Booking = this.dataList.Booking;
// setTimeout(() => {
// this.hotelFacilities.forEach((x)=>{
// const query = uni.createSelectorQuery().select(`#${x.val}`);
// query.boundingClientRect((rect) => {
// x.top = rect.top+250;
// }).exec();
// })
// }, 1000);
// }
// }
// );
},
// #ifdef MP-WEIXIN
//分享朋友圈
...
...
pages/hotel/list.vue
View file @
37b33e72
...
...
@@ -46,15 +46,6 @@
pageIndex
:
1
,
pageSize
:
15
,
KeyWords
:
""
,
//关键字
// StartPrice: 0,
// EndPrice: 1000,
// QStartDate: "",//开始日期
// QEndDate: "",//结束日期
// OrderByType: "1", //排序类型
// QStars: "", //星级
// TagList: [], //查询标签
// City: 262, //市
// District: 0, //区
},
HotelList
:
[],
//酒店数据
tempRateAndPrice
:
{
...
...
@@ -251,13 +242,10 @@
}
.hotel-list
.hotel-city
{
// width: 105rpx;
height
:
40rpx
;
padding
:
0rpx
0
8rpx
0rpx
;
margin-right
:
27rpx
;
text-align
:
center
;
/* color: #DFBE6E; */
// border-right: 1px solid #e2e2e2;
font-size
:
28rpx
;
white-space
:
nowrap
;
overflow
:
hidden
;
...
...
@@ -277,7 +265,6 @@
}
.hotel-list
.search-box
.date
{
// width: 82rpx;
height
:
50rpx
;
font-size
:
20rpx
;
font-weight
:
500
;
...
...
pages/hotel/order.vue
View file @
37b33e72
This diff is collapsed.
Click to expand it.
utils/producttypeenum.js
View file @
37b33e72
import
EnumHelper
from
"./enumhelper.js"
import
ListProductTypeEnum
from
"./listProductType.js"
const
ProductTypeEnum
=
[
{
const
ProductTypeEnum
=
[{
value
:
1
,
desc
:
'机票产品'
},
...
...
@@ -41,7 +40,10 @@ const ProductTypeEnum = [
value
:
6
,
desc
:
'签证产品'
},
{
value
:
7
,
desc
:
'酒店产品'
},
]
const
mappingRules
=
[
...
...
@@ -68,7 +70,7 @@ const mappingListType = (value) => {
const
mappingListTypeTy
=
(
type
)
=>
{
let
val
=
ProductTypeEnum
.
findIndex
(
x
=>
{
return
x
.
value
==
Number
(
type
)
return
x
.
value
==
Number
(
type
)
})
return
ProductTypeEnum
[
val
]
}
...
...
@@ -79,4 +81,8 @@ const transProductEnum = (value) => {
export
default
ProductTypeEnum
export
{
mappingListType
,
transProductEnum
,
mappingListTypeTy
}
\ No newline at end of file
export
{
mappingListType
,
transProductEnum
,
mappingListTypeTy
}
\ No newline at end of file
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