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
cb41a0bd
Commit
cb41a0bd
authored
Jul 08, 2025
by
youjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
领队报账 相关页面
parent
ea4eb5ec
Hide whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
2961 additions
and
39 deletions
+2961
-39
flex.css
asset/css/flex.css
+70
-2
manifest.json
manifest.json
+1
-1
pages.json
pages.json
+46
-0
billDetails.vue
pages/teamLeader/billDetails.vue
+249
-0
QRCode.vue
pages/teamLeader/components/QRCode.vue
+150
-0
passengerInfo.vue
pages/teamLeader/components/passengerInfo.vue
+211
-0
otherInfor1.vue
pages/teamLeader/components/report/otherInfor1.vue
+2
-2
otherInfor2.vue
pages/teamLeader/components/report/otherInfor2.vue
+2
-2
otherInfor3.vue
pages/teamLeader/components/report/otherInfor3.vue
+2
-2
otherInfor4.vue
pages/teamLeader/components/report/otherInfor4.vue
+2
-2
otherInfor5.vue
pages/teamLeader/components/report/otherInfor5.vue
+2
-2
otherInfor6.vue
pages/teamLeader/components/report/otherInfor6.vue
+2
-2
productInfor1.vue
pages/teamLeader/components/report/productInfor1.vue
+2
-2
productInfor2.vue
pages/teamLeader/components/report/productInfor2.vue
+2
-2
productInfor3.vue
pages/teamLeader/components/report/productInfor3.vue
+2
-2
productInfor4.vue
pages/teamLeader/components/report/productInfor4.vue
+2
-2
infor1.vue
pages/teamLeader/components/schedule/infor1.vue
+96
-0
infor2.vue
pages/teamLeader/components/schedule/infor2.vue
+65
-0
infor3.vue
pages/teamLeader/components/schedule/infor3.vue
+76
-0
infor4.vue
pages/teamLeader/components/schedule/infor4.vue
+97
-0
infor5.vue
pages/teamLeader/components/schedule/infor5.vue
+97
-0
infor6.vue
pages/teamLeader/components/schedule/infor6.vue
+89
-0
infor7.vue
pages/teamLeader/components/schedule/infor7.vue
+69
-0
infor8.vue
pages/teamLeader/components/schedule/infor8.vue
+70
-0
infor9.vue
pages/teamLeader/components/schedule/infor9.vue
+79
-0
index.vue
pages/teamLeader/index.vue
+16
-6
itineraryDetails.vue
pages/teamLeader/itineraryDetails.vue
+374
-0
itineraryInformation.vue
pages/teamLeader/itineraryInformation.vue
+326
-0
opinionSurvey.vue
pages/teamLeader/opinionSurvey.vue
+92
-0
reimbursementInfor.vue
pages/teamLeader/reimbursementInfor.vue
+10
-10
roomAllocation.vue
pages/teamLeader/roomAllocation.vue
+192
-0
schedule.vue
pages/teamLeader/schedule.vue
+466
-0
No files found.
asset/css/flex.css
View file @
cb41a0bd
...
@@ -230,6 +230,9 @@
...
@@ -230,6 +230,9 @@
.fontWeight400
{
.fontWeight400
{
font-weight
:
400
;
font-weight
:
400
;
}
}
.fontWeight500
{
font-weight
:
500
;
}
.fontBold
{
.fontBold
{
font-weight
:
bold
;
font-weight
:
bold
;
}
}
...
@@ -295,12 +298,18 @@
...
@@ -295,12 +298,18 @@
.fz30
{
.fz30
{
font-size
:
30
rpx
;
font-size
:
30
rpx
;
}
}
.fz3
6
{
.fz3
2
{
font-size
:
3
6
rpx
;
font-size
:
3
2
rpx
;
}
}
.fz34
{
.fz34
{
font-size
:
34
rpx
;
font-size
:
34
rpx
;
}
}
.fz36
{
font-size
:
36
rpx
;
}
.fz38
{
font-size
:
38
rpx
;
}
.fz40
{
.fz40
{
font-size
:
40
rpx
;
font-size
:
40
rpx
;
}
}
...
@@ -319,6 +328,9 @@
...
@@ -319,6 +328,9 @@
.ML20
{
.ML20
{
margin-left
:
20
rpx
;
margin-left
:
20
rpx
;
}
}
.ML23
{
margin-left
:
23
rpx
;
}
.ML25
{
.ML25
{
margin-left
:
25
rpx
;
margin-left
:
25
rpx
;
}
}
...
@@ -415,6 +427,9 @@
...
@@ -415,6 +427,9 @@
.MB10
{
.MB10
{
margin-bottom
:
10
rpx
;
margin-bottom
:
10
rpx
;
}
}
.MB15
{
margin-bottom
:
15
rpx
;
}
.MB20
{
.MB20
{
margin-bottom
:
20
rpx
;
margin-bottom
:
20
rpx
;
}
}
...
@@ -460,18 +475,42 @@
...
@@ -460,18 +475,42 @@
.PA50
{
.PA50
{
padding
:
50
rpx
;
padding
:
50
rpx
;
}
}
.PT10
{
padding-top
:
10
rpx
;
}
.PT15
{
padding-top
:
15
rpx
;
}
.PT20
{
.PT20
{
padding-top
:
20
rpx
;
padding-top
:
20
rpx
;
}
}
.PT25
{
padding-top
:
25
rpx
;
}
.PT30
{
padding-top
:
30
rpx
;
}
.PT38
{
.PT38
{
padding-top
:
38
rpx
;
padding-top
:
38
rpx
;
}
}
.PT40
{
padding-top
:
40
rpx
;
}
.PT50
{
padding-top
:
50
rpx
;
}
.PT65
{
.PT65
{
padding-top
:
65
rpx
;
padding-top
:
65
rpx
;
}
}
.PT123
{
.PT123
{
padding-top
:
123
rpx
;
padding-top
:
123
rpx
;
}
}
.PB10
{
padding-bottom
:
10
rpx
;
}
.PB15
{
padding-bottom
:
15
rpx
;
}
.PB20
{
.PB20
{
padding-bottom
:
20
rpx
;
padding-bottom
:
20
rpx
;
}
}
...
@@ -484,6 +523,9 @@
...
@@ -484,6 +523,9 @@
.PB50
{
.PB50
{
padding-bottom
:
50
rpx
;
padding-bottom
:
50
rpx
;
}
}
.PB60
{
padding-bottom
:
60
rpx
;
}
.PB200
{
.PB200
{
padding-bottom
:
200
rpx
;
padding-bottom
:
200
rpx
;
}
}
...
@@ -493,6 +535,14 @@
...
@@ -493,6 +535,14 @@
.PB300
{
.PB300
{
padding-bottom
:
300
rpx
;
padding-bottom
:
300
rpx
;
}
}
.PY10
{
padding-top
:
10
rpx
;
padding-bottom
:
10
rpx
;
}
.PY15
{
padding-top
:
15
rpx
;
padding-bottom
:
15
rpx
;
}
.PY20
{
.PY20
{
padding-top
:
20
rpx
;
padding-top
:
20
rpx
;
padding-bottom
:
20
rpx
;
padding-bottom
:
20
rpx
;
...
@@ -604,6 +654,24 @@
...
@@ -604,6 +654,24 @@
.color2EC726
{
.color2EC726
{
color
:
#2EC726
;
color
:
#2EC726
;
}
}
.colorF99710
{
color
:
#F99710
;
}
.color9C9C9C
{
color
:
#9C9C9C
;
}
.color666
{
color
:
#666666
;
}
.color999
{
color
:
#999999
;
}
.color333
{
color
:
#333333
;
}
.colorE1432E
{
color
:
#E1432E
;
}
.bgFFF
{
.bgFFF
{
background
:
#fff
;
background
:
#fff
;
}
}
...
...
manifest.json
View file @
cb41a0bd
...
@@ -69,7 +69,7 @@
...
@@ -69,7 +69,7 @@
"quickapp"
:
{},
"quickapp"
:
{},
/*
小程序特有相关
*/
/*
小程序特有相关
*/
"mp-weixin"
:
{
"mp-weixin"
:
{
"appid"
:
"wx
cf0727a7c78b501e
"
,
"appid"
:
"wx
5564525562e92ddb
"
,
"navigateToMiniProgramAppIdList"
:
[
"wxacd9f8cc3480d29e"
],
"navigateToMiniProgramAppIdList"
:
[
"wxacd9f8cc3480d29e"
],
"setting"
:
{
"setting"
:
{
"urlCheck"
:
true
,
"urlCheck"
:
true
,
...
...
pages.json
View file @
cb41a0bd
...
@@ -1088,6 +1088,52 @@
...
@@ -1088,6 +1088,52 @@
"navigationBarTitleText"
:
"报账"
,
"navigationBarTitleText"
:
"报账"
,
"navigationStyle"
:
"custom"
"navigationStyle"
:
"custom"
}
}
},
{
"path"
:
"billDetails"
,
"style"
:{
"navigationBarTitleText"
:
"账单明细"
,
"navigationStyle"
:
"custom"
}
},
{
"path"
:
"itineraryInformation"
,
"style"
:{
"navigationBarTitleText"
:
"行程信息"
,
"navigationStyle"
:
"custom"
}
},
{
"path"
:
"itineraryDetails"
,
//行程详情
"enablePullDownRefresh"
:
true
,
"style"
:
{
"navigationStyle"
:
"custom"
,
"mp-alipay"
:
{
"transparentTitle"
:
"always"
,
"titlePenetrate"
:
"YES"
}
}
},
{
"path"
:
"roomAllocation"
,
"style"
:{
"navigationBarTitleText"
:
"分房表"
,
"navigationStyle"
:
"custom"
}
},
{
"path"
:
"schedule"
,
"style"
:{
"navigationBarTitleText"
:
"领队导游运行计划表"
,
"navigationStyle"
:
"custom"
}
},
{
"path"
:
"opinionSurvey"
,
"style"
:{
"navigationBarTitleText"
:
"意见调查"
,
"navigationStyle"
:
"custom"
}
}
}
]
]
}
}
...
...
pages/teamLeader/billDetails.vue
0 → 100644
View file @
cb41a0bd
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.billDetailsHeaderBox
{
background
:
linear-gradient
(
-30deg
,
#4779FF
,
#47A5FF
);
}
.billDetailsTitle
{
position
:
relative
;
z-index
:
3
}
.billDetailsTitle.fixed
{
position
:
fixed
;
left
:
0
;
top
:
0
;
right
:
0
;
z-index
:
2
;
background
:
linear-gradient
(
-30deg
,
#4779FF
,
#47A5FF
);
}
.billDetailsTitle.fixed
.billDetailsTsBox
{
top
:
22rpx
;
}
.teamLeader-currency
{
font-size
:
24rpx
;
border-radius
:
30rpx
;
// border: 1px solid #fff;
padding
:
8rpx
20rpx
;
position
:
absolute
;
right
:
210rpx
;
top
:
115rpx
;
color
:
#fff
;
}
.teamLeader-currency
text
{
margin-right
:
15rpx
;
}
.triangle
{
width
:
0
;
height
:
0
;
border-left
:
8rpx
solid
transparent
;
border-right
:
8rpx
solid
transparent
;
border-top
:
8rpx
solid
#fff
;
}
.billDetailsHeaderNBox
{
padding
:
0
30rpx
;
position
:
relative
;
}
.billDetailsHeaderNBox
img
{
width
:
100%
;
height
:
298rpx
;
position
:
absolute
;
top
:
-50rpx
;
left
:
0
;
right
:
0
;
}
.billDetailsHeaderNum
{
padding
:
60rpx
50rpx
57rpx
50rpx
;
background
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874803742697756.png')
no-repeat
#fff
;
background-size
:
100%
auto
;
position
:
relative
;
z-index
:
2
;
.label
{
font-size
:
24rpx
;
}
.value
{
font-size
:
32rpx
;
margin-top
:
20rpx
;
text
{
font-size
:
24rpx
;
margin-right
:
10rpx
;
}
}
}
.billDetailsCTop
{
margin
:
39rpx
30rpx
30rpx
30rpx
;
border-radius
:
8rpx
;
overflow
:
hidden
;
box-shadow
:
0rpx
10rpx
10rpx
0rpx
rgba
(
114
,
114
,
114
,
0
.16
);
}
.billDetailsCHeader
{
background
:
#EDF5FF
;
padding
:
28rpx
31rpx
;
}
.billDetailsCHeaderR
img
{
width
:
18rpx
;
height
:
12rpx
;
}
.billDetailsCCBox
{
padding
:
30rpx
;
}
.billDetailsCCBox
img
{
width
:
72rpx
;
height
:
72rpx
;
}
.billDetailsCCR
{
padding
:
30rpx
0
;
border-bottom
:
1px
solid
#eee
;
}
.billDetailsCCBox
:last-child
.billDetailsCCR
{
border-bottom
:
0
;
}
.billDetailsCHeader.billDetailsCHeaderOth
{
background
:
#FFF5ED
;
}
.billDetailsCCBox.billDetailsCCBoxOth
{
background
:
#F5F5F5
;
padding
:
25rpx
22rpx
;
margin
:
0
30rpx
;
}
.billDetailsCCBoxOth
:first-child
{
margin-top
:
20rpx
;
}
.billDetailsCCBoxOth
:nth-child
(
2
)
{
background
:
#fff
;
}
</
style
>
<
template
>
<view
style=
"height: 100vh;"
>
<scroll-view
class=
"billDetailsBox"
scroll-y=
"true"
:enable-back-to-top=
"true"
:enable-flex=
"true"
@
scroll=
"scroll"
style=
"height: 100vh;"
>
<view
class=
"billDetailsHeaderBox PB40"
>
<view
class=
"billDetailsTitle"
>
<headers
textAlign=
"left"
:title=
"pageTitle"
color=
"#fff"
></headers>
<view
class=
"teamLeader-currency row items-center"
@
click=
"currencyVisible=true"
><text>
日元
</text>
<view
class=
"triangle"
></view></view>
</view>
<view
class=
"billDetailsTitle fixed"
:style=
"
{ opacity: boxOption + '%' }">
<headers
textAlign=
"left"
:title=
"pageTitle"
color=
"#fff"
></headers>
<view
class=
"teamLeader-currency row items-center"
@
click=
"currencyVisible=true"
><text>
日元
</text>
<view
class=
"triangle"
></view></view>
</view>
<view
class=
"billDetailsHeaderNBox MT50"
>
<img
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874816517253757.png"
/>
<view
class=
"billDetailsHeaderNum row justify-between"
>
<view
class=
"column"
>
<text
class=
"label"
>
自费收入
</text>
<text
class=
"value"
><text>
¥
</text>
600.00
</text>
</view>
<view
class=
"column"
>
<text
class=
"label"
>
自费支出
</text>
<text
class=
"value"
><text>
¥
</text>
520.00
</text>
</view>
<view
class=
"column"
>
<text
class=
"label"
>
小费收入
</text>
<text
class=
"value"
><text>
¥
</text>
200.00
</text>
</view>
</view>
</view>
</view>
<view>
<view
class=
"billDetailsCTop"
>
<view
class=
"billDetailsCHeader row justify-between items-center"
>
<view
class=
"billDetailsCHeaderL"
>
<view
class=
"fz28"
>
1月16日
</view>
<view
class=
"fz20 MT10"
>
2019年
</view>
</view>
<view
class=
"billDetailsCHeaderR row items-center fontBold"
>
<text>
¥2389.00
</text>
<img
class=
"ML20"
:src=
"downImg[0]"
/>
</view>
</view>
<view>
<view
class=
"billDetailsCCBox row items-center fz28"
>
<img
:src=
"typeImgs[0]"
/>
<view
class=
"billDetailsCCR flex1 row justify-between items-center"
>
<view
class=
"ML23 fz28"
>
车
</view>
<text
class=
"fz28 fontWeight500"
>
¥126
</text>
</view>
</view>
</view>
</view>
<view
class=
"billDetailsCTop"
>
<view
class=
"billDetailsCHeader billDetailsCHeaderOth row justify-between items-center"
>
<view
class=
"billDetailsCHeaderL"
>
<view
class=
"fz28"
>
其他费用
</view>
</view>
<view
class=
"billDetailsCHeaderR row items-center fontBold"
>
<text>
¥2389.00
</text>
<img
class=
"ML20"
:src=
"downImg[0]"
/>
</view>
</view>
<view>
<view
v-for=
"(item,index) in 3"
class=
"billDetailsCCBox billDetailsCCBoxOth row items-center justify-between fz28"
>
<view
class=
"billDetailsCCROth row items-center"
>
<view
class=
""
>
06-01
</view>
<view
class=
"ML23"
>
车
</view>
</view>
<text
class=
"fontWeight500"
>
¥126
</text>
</view>
</view>
</view>
</view>
</scroll-view>
<currencyBottom
v-if=
"currencyVisible"
:current=
"currentId"
:currencyList=
"currencyList"
@
close=
"close"
@
change=
"popupCurrency"
></currencyBottom>
</view>
</
template
>
<
script
>
import
headers
from
"@/components/header/header"
;
import
currencyBottom
from
"./components/currencyBottom"
;
export
default
{
components
:
{
headers
,
currencyBottom
,
},
data
()
{
return
{
pageTitle
:
'账单明细'
,
boxOption
:
0
,
currencyVisible
:
false
,
currencyList
:
[],
currentId
:
0
,
currentIndex
:
0
,
downImg
:[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874827170491438.png'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874827279495359.png'
,
],
typeImgs
:[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829614812469.png'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612434651.png'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829685012792.png'
],
}
},
onLoad
(
option
){
},
created
()
{
},
mounted
()
{
},
methods
:
{
popupCurrency
(
value
){
this
.
currencyVisible
=
false
this
.
currentId
=
value
this
.
currentIndex
=
this
.
dataList
.
findIndex
(
item
=>
item
.
CurrencyId
==
value
)
},
scroll
(
e
)
{
this
.
boxOption
=
Math
.
floor
((
e
.
detail
.
scrollTop
-
100
)
/
1.5
);
this
.
$forceUpdate
();
},
},
}
</
script
>
\ No newline at end of file
pages/teamLeader/components/QRCode.vue
0 → 100644
View file @
cb41a0bd
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.orcodeBox
{
background
:
#fff
;
border-radius
:
8rpx
;
}
.Title
{
}
.orcodeImg
img
{
width
:
500rpx
;
height
:
500rpx
;
}
.SureBox
{
font-size
:
28rpx
;
border-top
:
1px
solid
#F2F2F2
;
}
.SureBox
view
:last-child
{
color
:
#295EEB
;
}
.SureBox
view
:first-child
{
border-right
:
1px
solid
#ddd
;
color
:
#8C8C8C
;
}
</
style
>
<
template
>
<u-popup
mode=
"center"
border-radius=
"20"
:popup=
"false"
v-model=
"currencyVisible"
:maskCloseAble=
"true"
length=
"80%"
:safeAreaInsetBottom=
"true"
@
close=
"close"
:z-index=
"9999"
>
<view
class=
"orcodeBox"
>
<view
class=
"Title PY30 color000 column justify-center items-center"
>
<text
class=
"fz28"
>
领队小程序码(1/1)
</text>
<text
class=
"fz24"
>
KJKSWDGGHFHGV
</text>
</view>
<view
class=
"orcodeImg row items-center justify-center PX40"
>
<img
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638868977886703780.png"
/>
</view>
<view
class=
"SureBox row MT40"
>
<view
class=
"flex1 PY20 text-center"
@
click=
"close"
>
取消
</view>
<view
class=
"flex1 PY20 text-center"
@
click=
"preservation"
>
保存
</view>
</view>
</view>
</u-popup>
</
template
>
<
script
>
export
default
{
props
:[
'title'
],
data
()
{
return
{
currencyVisible
:
true
,
textarea
:
''
,
}
},
watch
:
{
title
:{
handler
(
newVal
,
oldVal
){
},
deep
:
true
,
immediate
:
true
,
}
},
mounted
()
{
this
.
currencyVisible
=
true
},
methods
:
{
close
(){
this
.
currencyVisible
=
false
this
.
$emit
(
'close'
)
},
preservation
(){
uni
.
showLoading
({
title
:
"正在生成"
,
});
let
that
=
this
;
uni
.
canvasToTempFilePath
({
canvasId
:
"firstCanvas"
,
success
:
(
res
)
=>
{
uni
.
hideLoading
();
uni
.
showLoading
({
title
:
"正在保存"
,
});
uni
.
saveImageToPhotosAlbum
({
filePath
:
res
.
tempFilePath
,
success
:
function
()
{
uni
.
showToast
({
title
:
"保存成功"
,
});
},
fail
:
function
(
err
)
{
if
(
err
.
errMsg
===
"saveImageToPhotosAlbum:fail auth deny"
)
{
uni
.
authorize
({
scope
:
'scope.writePhotosAlbum'
,
success
:
(
res
)
=>
{
console
.
log
(
'11111'
);
},
fail
:
(
res
)
=>
{
uni
.
showModal
({
content
:
'检测到您没打开保存到相册权限,是否去设置打开?'
,
confirmText
:
"确认"
,
cancelText
:
'取消'
,
success
:
(
res
)
=>
{
if
(
res
.
confirm
)
{
uni
.
openSetting
({
success
:
(
res
)
=>
{
console
.
log
(
res
);
if
(
res
.
authSetting
[
'scope.writePhotosAlbum'
])
{
that
.
preservation
()
}
}
})
}
else
{
console
.
log
(
'取消'
);
}
}
})
}
})
}
else
{
that
.
$refs
.
uTips
.
show
({
title
:
"保存失败,请稍后重试"
,
type
:
"error"
,
duration
:
"2300"
,
});
}
},
complete
:
function
()
{
uni
.
hideLoading
();
},
});
},
fail
:
function
(
e
)
{
console
.
log
(
e
);
that
.
$refs
.
uTips
.
show
({
title
:
"生成失败,请稍后重试"
,
type
:
"error"
,
duration
:
"2300"
,
});
},
},
this
);
},
}
}
</
script
>
\ No newline at end of file
pages/teamLeader/components/passengerInfo.vue
0 → 100644
View file @
cb41a0bd
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.passHeader
{
background
:
linear-gradient
(
-30deg
,
#4FA9FF
,
#4779FF
);
}
.carrHeader-title
{
width
:
100%
;
position
:
relative
;
left
:
0
;
right
:
0
;
font-size
:
32rpx
;
}
.carrHeader-title.carrHeader-titleL
{
text-indent
:
80rpx
;
}
.carrHeader-left
{
position
:
absolute
;
left
:
32rpx
;
z-index
:
3
;
}
.carrHeaderBox
{
width
:
100%
;
height
:
88rpx
;
padding
:
0
32rpx
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
position
:
relative
;
}
.carrHeader
{
padding-top
:
48rpx
;
}
.passCenter
{
margin-bottom
:
25rpx
;
}
.passCenter-L
{
width
:
150rpx
;
}
.passCenter-R
view
{
font-weight
:
500
;
}
</
style
>
<
template
>
<u-popup
mode=
"center"
border-radius=
"20"
:popup=
"false"
v-model=
"showVisible"
:maskCloseAble=
"true"
length=
"100%"
:safeAreaInsetBottom=
"true"
@
close=
"close"
:z-index=
"9999"
>
<view
class=
"column"
style=
"height: 100vh;"
>
<view
class=
"passHeader"
>
<view
class=
"carrHeader"
:style=
"[titleStyle]"
>
<view
class=
"carrHeaderBox"
>
<view
class=
"carrHeader-left"
>
<view
class=
"carrHeader-left-icon"
@
click=
"close"
>
<uni-icons
name=
""
type=
"closeempty"
size=
"25"
color=
"#fff"
></uni-icons>
</view>
</view>
<view
class=
"carrHeader-title"
:style=
"
{'color':'#fff','text-align':'center'}">
<slot>
{{
pageTitle
}}
</slot>
</view>
</view>
</view>
</view>
<scroll-view
class=
"flex1"
:scroll-y=
"true"
:enable-back-to-top=
"true"
:enable-flex=
"true"
style=
"background: #ffff;"
>
<view
class=
"passCenterBox PA30"
>
<view
class=
"passCenter row items-center"
>
<view
class=
"passCenter-L fz24"
>
旅客
</view>
<view
class=
"passCenter-R row"
>
<view
class=
"fz28"
>
姓名
</view>
<text
class=
"ML10 color999"
>
()
</text>
</view>
</view>
<view
class=
"passCenter row items-center"
>
<view
class=
"passCenter-L fz24"
>
性别
</view>
<view
class=
"passCenter-R row"
>
<view
class=
"fz28"
>
-
</view>
</view>
</view>
<view
class=
"passCenter row items-center"
>
<view
class=
"passCenter-L fz24"
>
出生日期
</view>
<view
class=
"passCenter-R row"
>
<view
class=
"fz28"
>
-
</view>
</view>
</view>
<view
class=
"passCenter row items-center"
>
<view
class=
"passCenter-L fz24"
>
年龄类型
</view>
<view
class=
"passCenter-R row"
>
<view
class=
"fz28"
>
-
</view>
</view>
</view>
<view
class=
"passCenter row items-center"
>
<view
class=
"passCenter-L fz24"
>
出生地
</view>
<view
class=
"passCenter-R row"
>
<view
class=
"fz28"
>
-
</view>
</view>
</view>
<view
class=
"passCenter row items-center"
>
<view
class=
"passCenter-L fz24"
>
护照号
</view>
<view
class=
"passCenter-R row"
>
<view
class=
"fz28"
>
-
</view>
</view>
</view>
<view
class=
"passCenter row items-center"
>
<view
class=
"passCenter-L fz24"
>
签发地
</view>
<view
class=
"passCenter-R row"
>
<view
class=
"fz28"
>
-
</view>
</view>
</view>
<view
class=
"passCenter row items-center"
>
<view
class=
"passCenter-L fz24"
>
签发日期
</view>
<view
class=
"passCenter-R row"
>
<view
class=
"fz28"
>
-
</view>
</view>
</view>
<view
class=
"passCenter row items-center"
>
<view
class=
"passCenter-L fz24"
>
护照有效期
</view>
<view
class=
"passCenter-R row"
>
<view
class=
"fz28"
>
-
</view>
</view>
</view>
<view
class=
"passCenter row items-center"
>
<view
class=
"passCenter-L fz24"
>
客户手机
</view>
<view
class=
"passCenter-R row"
>
<view
class=
"fz28"
>
-
</view>
</view>
</view>
<view
class=
"passCenter row items-center"
>
<view
class=
"passCenter-L fz24"
>
身份证
</view>
<view
class=
"passCenter-R row"
>
<view
class=
"fz28"
>
-
</view>
</view>
</view>
<view
class=
"passCenter row items-center"
>
<view
class=
"passCenter-L fz24"
>
单价
</view>
<view
class=
"passCenter-R row"
>
<view
class=
"fz28"
>
-
</view>
</view>
</view>
<view
class=
"passCenter row items-center"
>
<view
class=
"passCenter-L fz24"
>
业务员
</view>
<view
class=
"passCenter-R row"
>
<view
class=
"fz28"
>
-
</view>
</view>
</view>
<view
class=
"passCenter row items-center"
>
<view
class=
"passCenter-L fz24"
>
方式
</view>
<view
class=
"passCenter-R row"
>
<view
class=
"fz28"
>
-
</view>
</view>
</view>
<view
class=
"passCenter row items-center"
>
<view
class=
"passCenter-L fz24"
>
航位
</view>
<view
class=
"passCenter-R row"
>
<view
class=
"fz28"
>
-
</view>
</view>
</view>
<view
class=
"passCenter row items-center"
>
<view
class=
"passCenter-L fz24"
>
签证类型
</view>
<view
class=
"passCenter-R row"
>
<view
class=
"fz28"
>
-
</view>
</view>
</view>
</view>
</scroll-view>
</view>
</u-popup>
</
template
>
<
script
>
import
headers
from
"@/components/header/header"
;
export
default
{
props
:[
''
],
components
:
{
headers
},
data
()
{
return
{
pageTitle
:
'旅客'
,
showVisible
:
true
,
newCurrent
:
0
,
titleStyle
:
{},
}
},
watch
:
{
current
:{
handler
(
newVal
,
oldVal
){
this
.
newCurrent
=
newVal
},
immediate
:
true
,
},
},
mounted
()
{
const
that
=
this
uni
.
getSystemInfo
({
success
(
res
)
{
that
.
titleStyle
=
{
paddingTop
:
`
${
res
.
statusBarHeight
}
px`
};
},
});
this
.
showVisible
=
true
},
methods
:
{
close
(){
this
.
showVisible
=
false
this
.
$emit
(
'close'
)
},
}
}
</
script
>
\ No newline at end of file
pages/teamLeader/components/otherInfor1.vue
→
pages/teamLeader/components/
report/
otherInfor1.vue
View file @
cb41a0bd
...
@@ -205,8 +205,8 @@
...
@@ -205,8 +205,8 @@
</view>
</view>
</template>
</template>
<
script
>
<
script
>
import
upload
from
"./upload"
;
import
upload
from
".
.
/upload"
;
import
singleChoice
from
"./singleChoice"
;
import
singleChoice
from
".
.
/singleChoice"
;
export
default
{
export
default
{
props
:[
'data'
,
'options'
,
'currencyList'
],
props
:[
'data'
,
'options'
,
'currencyList'
],
components
:
{
components
:
{
...
...
pages/teamLeader/components/otherInfor2.vue
→
pages/teamLeader/components/
report/
otherInfor2.vue
View file @
cb41a0bd
...
@@ -207,8 +207,8 @@
...
@@ -207,8 +207,8 @@
</view>
</view>
</template>
</template>
<
script
>
<
script
>
import
upload
from
"./upload"
;
import
upload
from
".
.
/upload"
;
import
singleChoice
from
"./singleChoice"
;
import
singleChoice
from
".
.
/singleChoice"
;
export
default
{
export
default
{
props
:[
'data'
,
'options'
,
'currencyList'
],
props
:[
'data'
,
'options'
,
'currencyList'
],
components
:
{
components
:
{
...
...
pages/teamLeader/components/otherInfor3.vue
→
pages/teamLeader/components/
report/
otherInfor3.vue
View file @
cb41a0bd
...
@@ -207,8 +207,8 @@
...
@@ -207,8 +207,8 @@
</view>
</view>
</template>
</template>
<
script
>
<
script
>
import
upload
from
"./upload"
;
import
upload
from
".
.
/upload"
;
import
singleChoice
from
"./singleChoice"
;
import
singleChoice
from
".
.
/singleChoice"
;
export
default
{
export
default
{
props
:[
'data'
,
'options'
,
'currencyList'
],
props
:[
'data'
,
'options'
,
'currencyList'
],
components
:
{
components
:
{
...
...
pages/teamLeader/components/otherInfor4.vue
→
pages/teamLeader/components/
report/
otherInfor4.vue
View file @
cb41a0bd
...
@@ -206,8 +206,8 @@
...
@@ -206,8 +206,8 @@
</view>
</view>
</template>
</template>
<
script
>
<
script
>
import
upload
from
"./upload"
;
import
upload
from
".
.
/upload"
;
import
singleChoice
from
"./singleChoice"
;
import
singleChoice
from
".
.
/singleChoice"
;
export
default
{
export
default
{
props
:[
'data'
,
'options'
,
'currencyList'
],
props
:[
'data'
,
'options'
,
'currencyList'
],
components
:
{
components
:
{
...
...
pages/teamLeader/components/otherInfor5.vue
→
pages/teamLeader/components/
report/
otherInfor5.vue
View file @
cb41a0bd
...
@@ -206,8 +206,8 @@
...
@@ -206,8 +206,8 @@
</view>
</view>
</template>
</template>
<
script
>
<
script
>
import
upload
from
"./upload"
;
import
upload
from
".
.
/upload"
;
import
singleChoice
from
"./singleChoice"
;
import
singleChoice
from
".
.
/singleChoice"
;
export
default
{
export
default
{
props
:[
'data'
,
'options'
,
'currencyList'
],
props
:[
'data'
,
'options'
,
'currencyList'
],
components
:
{
components
:
{
...
...
pages/teamLeader/components/otherInfor6.vue
→
pages/teamLeader/components/
report/
otherInfor6.vue
View file @
cb41a0bd
...
@@ -205,8 +205,8 @@
...
@@ -205,8 +205,8 @@
</view>
</view>
</template>
</template>
<
script
>
<
script
>
import
upload
from
"./upload"
;
import
upload
from
".
.
/upload"
;
import
singleChoice
from
"./singleChoice"
;
import
singleChoice
from
".
.
/singleChoice"
;
export
default
{
export
default
{
props
:[
'data'
,
'options'
,
'currencyList'
],
props
:[
'data'
,
'options'
,
'currencyList'
],
components
:
{
components
:
{
...
...
pages/teamLeader/components/productInfor1.vue
→
pages/teamLeader/components/
report/
productInfor1.vue
View file @
cb41a0bd
...
@@ -195,8 +195,8 @@
...
@@ -195,8 +195,8 @@
</view>
</view>
</template>
</template>
<
script
>
<
script
>
import
upload
from
"./upload"
;
import
upload
from
".
.
/upload"
;
import
singleChoice
from
"./singleChoice"
;
import
singleChoice
from
".
.
/singleChoice"
;
export
default
{
export
default
{
props
:[
'data'
,
'optionList'
],
props
:[
'data'
,
'optionList'
],
components
:
{
components
:
{
...
...
pages/teamLeader/components/productInfor2.vue
→
pages/teamLeader/components/
report/
productInfor2.vue
View file @
cb41a0bd
...
@@ -183,8 +183,8 @@
...
@@ -183,8 +183,8 @@
</view>
</view>
</template>
</template>
<
script
>
<
script
>
import
upload
from
"./upload"
;
import
upload
from
".
.
/upload"
;
import
singleChoice
from
"./singleChoice"
;
import
singleChoice
from
".
.
/singleChoice"
;
export
default
{
export
default
{
props
:[
'data'
,
'optionList'
],
props
:[
'data'
,
'optionList'
],
components
:
{
components
:
{
...
...
pages/teamLeader/components/productInfor3.vue
→
pages/teamLeader/components/
report/
productInfor3.vue
View file @
cb41a0bd
...
@@ -183,8 +183,8 @@
...
@@ -183,8 +183,8 @@
</view>
</view>
</template>
</template>
<
script
>
<
script
>
import
upload
from
"./upload"
;
import
upload
from
".
.
/upload"
;
import
singleChoice
from
"./singleChoice"
;
import
singleChoice
from
".
.
/singleChoice"
;
export
default
{
export
default
{
props
:[
'data'
,
'optionList'
],
props
:[
'data'
,
'optionList'
],
components
:
{
components
:
{
...
...
pages/teamLeader/components/productInfor4.vue
→
pages/teamLeader/components/
report/
productInfor4.vue
View file @
cb41a0bd
...
@@ -183,8 +183,8 @@
...
@@ -183,8 +183,8 @@
</view>
</view>
</template>
</template>
<
script
>
<
script
>
import
upload
from
"./upload"
;
import
upload
from
".
.
/upload"
;
import
singleChoice
from
"./singleChoice"
;
import
singleChoice
from
".
.
/singleChoice"
;
export
default
{
export
default
{
props
:[
'data'
,
'optionList'
],
props
:[
'data'
,
'optionList'
],
components
:
{
components
:
{
...
...
pages/teamLeader/components/schedule/infor1.vue
0 → 100644
View file @
cb41a0bd
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.infor1-box
{
background
:
#FFFFFF
;
box-shadow
:
0rpx
3rpx
32rpx
0rpx
rgba
(
71
,
71
,
71
,
0
.16
);
border-radius
:
8rpx
;
overflow
:
hidden
;
}
.infor1-box
>
view
{
padding
:
20rpx
0
;
border-bottom
:
1px
solid
#ddd
;
}
.infor1-box
>
view
:last-child
{
border-bottom
:
0
;
}
.infor1-box.infor1-boxWin
>
view
{
padding
:
3rpx
0
;
border-bottom
:
0
;
}
</
style
>
<
template
>
<view
class=
"PX20 PT40"
>
<view
class=
"infor1-title fz28 PB20"
>
部门负责人
</view>
<view
class=
"infor1-box PX30 bjFFF fz28 color333"
>
<view
class=
"row"
>
<view
class=
"MR40"
>
机票
</view>
<view
class=
"flex1"
>
周月
</view>
</view>
<view
class=
"row"
>
<view
class=
"MR40"
>
订房
</view>
<view
class=
"flex1"
>
周月
</view>
</view>
<view
class=
"row"
>
<view
class=
"MR40"
>
车辆
</view>
<view
class=
"flex1"
>
周月
</view>
</view>
<view
class=
"row"
>
<view
class=
"MR40"
>
订餐
</view>
<view
class=
"flex1"
>
周月
</view>
</view>
<view
class=
"row"
>
<view
class=
"MR40"
>
门票
</view>
<view
class=
"flex1"
>
周月
</view>
</view>
</view>
<view
class=
"infor1-title fz28 PY20"
>
注意事项
</view>
<view
class=
"infor1-box infor1-boxWin PX30 PY30 bjFFF fz28 color333"
>
<view
class=
"row"
>
<view
class=
"MR10"
>
不要签证
</view>
<view
class=
"flex1"
>
姓名:
</view>
</view>
<view
class=
"row"
>
<view
class=
"MR10"
>
不占床
</view>
<view
class=
"flex1"
>
姓名:
</view>
</view>
<view
class=
"row"
>
<view
class=
"MR10"
>
单地接
</view>
<view
class=
"flex1"
>
姓名:
</view>
</view>
<view
class=
"row"
>
<view
class=
"MR10"
>
单机票
</view>
<view
class=
"flex1"
>
姓名:
</view>
</view>
<view
class=
"row"
>
<view
class=
"MR10"
>
不去景点
</view>
<view
class=
"flex1"
>
姓名:
</view>
</view>
</view>
<view
style=
"height: 50rpx;"
></view>
</view>
</
template
>
<
script
>
export
default
{
props
:[
'data'
],
data
()
{
return
{
}
},
watch
:
{
data
:{
handler
(
newVal
,
oldVal
){
},
deep
:
true
,
immediate
:
false
},
},
mounted
()
{
},
methods
:{
}
}
</
script
>
\ No newline at end of file
pages/teamLeader/components/schedule/infor2.vue
0 → 100644
View file @
cb41a0bd
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.infor2-box
{
background
:
#FFFFFF
;
box-shadow
:
0rpx
3rpx
32rpx
0rpx
rgba
(
71
,
71
,
71
,
0
.16
);
border-radius
:
8rpx
;
overflow
:
hidden
;
}
.infor2-line
{
border-bottom
:
1px
dashed
#AAA
;
}
.infor2-line
img
{
width
:
110rpx
;
height
:
9rpx
;
}
</
style
>
<
template
>
<view
class=
"PX20 PT40"
>
<view>
<view
class=
"infor2-box PX30 bjFFF MB20"
>
<view
class=
"infor2-line PY20 row justify-between items-center"
>
<view>
<view
class=
"fz32 color000"
>
09:00
</view>
<view
class=
"fz20 color666 MT10"
>
双流国际机场/CTU
</view>
</view>
<img
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875792006204423.png"
/>
<view
class=
"text-right"
>
<view
class=
"fz32 color000"
>
09:00
</view>
<view
class=
"fz20 color666 MT10"
>
双流国际机场/CTU
</view>
</view>
</view>
<view
class=
"PY20 fz24 color333 row justify-between"
>
<view>
航班号:NH948
</view>
<view>
出发时间:2019-04-16
</view>
</view>
</view>
</view>
<view
style=
"height: 50rpx;"
></view>
</view>
</
template
>
<
script
>
export
default
{
props
:[
'data'
],
data
()
{
return
{
}
},
watch
:
{
data
:{
handler
(
newVal
,
oldVal
){
},
deep
:
true
,
immediate
:
false
},
},
mounted
()
{
},
methods
:{
}
}
</
script
>
\ No newline at end of file
pages/teamLeader/components/schedule/infor3.vue
0 → 100644
View file @
cb41a0bd
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.infor1-box
{
background
:
#FFFFFF
;
box-shadow
:
0rpx
3rpx
32rpx
0rpx
rgba
(
71
,
71
,
71
,
0
.16
);
border-radius
:
8rpx
;
overflow
:
hidden
;
}
.infor1-box
>
view
{
padding
:
20rpx
0
;
border-bottom
:
1px
solid
#ddd
;
}
.infor1-box
>
view
:last-child
{
border-bottom
:
0
;
}
.infor1-box.infor1-boxWin
>
view
{
padding
:
3rpx
0
;
border-bottom
:
0
;
}
</
style
>
<
template
>
<view
class=
"PX20 PT40"
>
<view
class=
"infor1-box PX30 bjFFF fz28 color333"
>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
车配号
</view>
<view
class=
""
>
周月
</view>
</view>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
车辆公司
</view>
<view
class=
""
>
周月
</view>
</view>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
用车时间
</view>
<view
class=
""
>
周月
</view>
</view>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
车牌号
</view>
<view
class=
""
>
周月
</view>
</view>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
司机姓名
</view>
<view
class=
""
>
周月
</view>
</view>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
司机电话
</view>
<view
class=
""
>
周月
</view>
</view>
</view>
<view
style=
"height: 50rpx;"
></view>
</view>
</
template
>
<
script
>
export
default
{
props
:[
'data'
],
data
()
{
return
{
}
},
watch
:
{
data
:{
handler
(
newVal
,
oldVal
){
},
deep
:
true
,
immediate
:
false
},
},
mounted
()
{
},
methods
:{
}
}
</
script
>
\ No newline at end of file
pages/teamLeader/components/schedule/infor4.vue
0 → 100644
View file @
cb41a0bd
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.infor1-box
{
background
:
#FFFFFF
;
box-shadow
:
0rpx
3rpx
32rpx
0rpx
rgba
(
71
,
71
,
71
,
0
.16
);
border-radius
:
8rpx
;
overflow
:
hidden
;
}
.infor1-center
>
view
{
padding
:
20rpx
0
;
border-bottom
:
1px
solid
#ddd
;
}
.infor1-center
>
view
:first-child
{
width
:
100rpx
;
flex-shrink
:
0
;
margin-right
:
20rpx
;
}
.infor1-center
>
view
:last-child
{
border-bottom
:
0
;
}
.infor1-header
{
background
:
#4985FF
;
}
.infor1-header
img
{
width
:
24rpx
;
height
:
32rpx
;
display
:
inline-block
;
}
</
style
>
<
template
>
<view
class=
"PX20 PT40"
>
<view
class=
"infor1-box MB20 bjFFF fz28 color333"
>
<view
class=
"infor1-header PY30 colorFFF"
>
<view
class=
"fz32 PX30"
>
水口世纪酒店
</view>
<view
class=
"row items-center MT10 PX30"
>
<view
class=
"row"
>
<img
class=
""
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875688769461022.png"
/>
</view>
<text
class=
"ML20 fz28 flex1"
>
水口町名坂170-1
</text>
</view>
</view>
<view
class=
"infor1-center PX30"
>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
订房号
</view>
<view
class=
""
>
周月
</view>
</view>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
入住时间
</view>
<view
class=
""
>
周月
</view>
</view>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
占床/不占床
</view>
<view
class=
""
>
周月
</view>
</view>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
实际用房
</view>
<view
class=
""
>
周月
</view>
</view>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
联系电话
</view>
<view
class=
""
>
周月
</view>
</view>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
备注
</view>
<view
class=
"flex1"
>
周月
</view>
</view>
</view>
</view>
<view
style=
"height: 50rpx;"
></view>
</view>
</
template
>
<
script
>
export
default
{
props
:[
'data'
],
data
()
{
return
{
}
},
watch
:
{
data
:{
handler
(
newVal
,
oldVal
){
},
deep
:
true
,
immediate
:
false
},
},
mounted
()
{
},
methods
:{
}
}
</
script
>
\ No newline at end of file
pages/teamLeader/components/schedule/infor5.vue
0 → 100644
View file @
cb41a0bd
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.infor1-box
{
background
:
#FFFFFF
;
box-shadow
:
0rpx
3rpx
32rpx
0rpx
rgba
(
71
,
71
,
71
,
0
.16
);
border-radius
:
8rpx
;
overflow
:
hidden
;
}
.infor1-center
>
view
{
padding
:
20rpx
0
;
border-bottom
:
1px
solid
#ddd
;
}
.infor1-center
>
view
:first-child
{
width
:
100rpx
;
flex-shrink
:
0
;
margin-right
:
20rpx
;
}
.infor1-center
>
view
:last-child
{
border-bottom
:
0
;
}
.infor1-header
{
background
:
#4985FF
;
}
.infor1-header
img
{
width
:
24rpx
;
height
:
32rpx
;
display
:
inline-block
;
}
</
style
>
<
template
>
<view
class=
"PX20 PT40"
>
<view
class=
"infor1-box MB20 bjFFF fz28 color333"
>
<view
class=
"infor1-header PY30 colorFFF"
>
<view
class=
"fz32 PX30"
>
水口世纪酒店
</view>
<view
class=
"row items-center MT10 PX30"
>
<view
class=
"row"
>
<img
class=
""
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875688769461022.png"
/>
</view>
<text
class=
"ML20 fz28 flex1"
>
水口町名坂170-1
</text>
</view>
</view>
<view
class=
"infor1-center PX30"
>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
订餐号
</view>
<view
class=
""
>
周月
</view>
</view>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
用餐时间
</view>
<view
class=
""
>
周月
</view>
</view>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
总人数
</view>
<view
class=
""
>
周月
</view>
</view>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
类别
</view>
<view
class=
""
>
周月
</view>
</view>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
联系电话
</view>
<view
class=
""
>
周月
</view>
</view>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
备注
</view>
<view
class=
"flex1"
>
周月
</view>
</view>
</view>
</view>
<view
style=
"height: 50rpx;"
></view>
</view>
</
template
>
<
script
>
export
default
{
props
:[
'data'
],
data
()
{
return
{
}
},
watch
:
{
data
:{
handler
(
newVal
,
oldVal
){
},
deep
:
true
,
immediate
:
false
},
},
mounted
()
{
},
methods
:{
}
}
</
script
>
\ No newline at end of file
pages/teamLeader/components/schedule/infor6.vue
0 → 100644
View file @
cb41a0bd
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.infor1-box
{
background
:
#FFFFFF
;
box-shadow
:
0rpx
3rpx
32rpx
0rpx
rgba
(
71
,
71
,
71
,
0
.16
);
border-radius
:
8rpx
;
overflow
:
hidden
;
}
.infor1-center
>
view
{
padding
:
20rpx
0
;
border-bottom
:
1px
solid
#ddd
;
}
.infor1-center
>
view
:first-child
{
width
:
100rpx
;
flex-shrink
:
0
;
margin-right
:
20rpx
;
}
.infor1-center
>
view
:last-child
{
border-bottom
:
0
;
}
.infor1-header
{
background
:
#4985FF
;
}
.infor1-header
img
{
width
:
24rpx
;
height
:
32rpx
;
display
:
inline-block
;
}
</
style
>
<
template
>
<view
class=
"PX20 PT40"
>
<view
class=
"infor1-box MB20 bjFFF fz28 color333"
>
<view
class=
"infor1-header PY30 colorFFF"
>
<view
class=
"fz32 PX30"
>
水口世纪酒店
</view>
<view
class=
"row items-center MT10 PX30"
>
<view
class=
"row"
>
<img
class=
""
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875688769461022.png"
/>
</view>
<text
class=
"ML20 fz28 flex1"
>
水口町名坂170-1
</text>
</view>
</view>
<view
class=
"infor1-center PX30"
>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
游览时间
</view>
<view
class=
""
>
周月
</view>
</view>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
总人数
</view>
<view
class=
""
>
周月
</view>
</view>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
联系电话
</view>
<view
class=
""
>
周月
</view>
</view>
<view
class=
"row justify-between"
>
<view
class=
"MR40"
>
备注
</view>
<view
class=
"flex1"
>
周月
</view>
</view>
</view>
</view>
<view
style=
"height: 50rpx;"
></view>
</view>
</
template
>
<
script
>
export
default
{
props
:[
'data'
],
data
()
{
return
{
}
},
watch
:
{
data
:{
handler
(
newVal
,
oldVal
){
},
deep
:
true
,
immediate
:
false
},
},
mounted
()
{
},
methods
:{
}
}
</
script
>
\ No newline at end of file
pages/teamLeader/components/schedule/infor7.vue
0 → 100644
View file @
cb41a0bd
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.infor1-box
{
background
:
#FFFFFF
;
box-shadow
:
0rpx
3rpx
32rpx
0rpx
rgba
(
71
,
71
,
71
,
0
.16
);
border-radius
:
8rpx
;
overflow
:
hidden
;
}
.infor1-center
{
border-bottom
:
1px
solid
#ddd
;
}
.infor1-center
:last-child
{
border-bottom
:
0
;
}
.infor1-header
{
background
:
#4985FF
;
}
.infor1-header
img
{
width
:
24rpx
;
height
:
32rpx
;
display
:
inline-block
;
}
</
style
>
<
template
>
<view
class=
"PX20 PT40"
>
<view
class=
"infor1-box MB20 bjFFF fz28 color333"
>
<view
class=
"infor1-header PY30 colorFFF"
>
<view
class=
"fz32 PX30"
>
水口世纪酒店
</view>
<view
class=
"row items-center MT10 PX30"
>
<view
class=
"row"
>
<img
class=
""
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875688769461022.png"
/>
</view>
<text
class=
"ML20 fz28 flex1"
>
水口町名坂170-1
</text>
</view>
</view>
<view
class=
"infor1-center PX30 PY20 row justify-between"
>
<view
class=
"MR40"
>
进店时间
</view>
<view
class=
""
>
周月
</view>
</view>
</view>
<view
style=
"height: 50rpx;"
></view>
</view>
</
template
>
<
script
>
export
default
{
props
:[
'data'
],
data
()
{
return
{
}
},
watch
:
{
data
:{
handler
(
newVal
,
oldVal
){
},
deep
:
true
,
immediate
:
false
},
},
mounted
()
{
},
methods
:{
}
}
</
script
>
\ No newline at end of file
pages/teamLeader/components/schedule/infor8.vue
0 → 100644
View file @
cb41a0bd
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.infor1-box
{
background
:
#FFFFFF
;
box-shadow
:
0rpx
3rpx
32rpx
0rpx
rgba
(
71
,
71
,
71
,
0
.16
);
border-radius
:
8rpx
;
overflow
:
hidden
;
}
.infor1-center
{
border-bottom
:
1px
solid
#ddd
;
margin-left
:
30rpx
;
margin-right
:
30rpx
;
}
.infor1-c-name
{
width
:
80rpx
;
}
.imgbox
{
margin-left
:
20rpx
;
margin-right
:
20rpx
;
}
.imgbox
img
{
width
:
33rpx
;
height
:
33rpx
;
display
:
block
;
}
</
style
>
<
template
>
<view
class=
"PT40"
>
<view
class=
"infor1-box MB20 bjFFF fz28 color333"
>
<view
class=
"infor1-center PY20 row items-center justify-between"
>
<view
class=
"row items-center"
>
<view
class=
"infor1-c-name fz32"
>
姓名
</view>
<view
class=
"imgbox"
>
<img
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875723517488195.png"
/>
</view>
<view
class=
"time fz28"
>
2025-06-10
</view>
<view
class=
"tisp fz28 ML20"
>
退休人员
</view>
</view>
<view>
ED1281216
</view>
</view>
</view>
<view
style=
"height: 50rpx;"
></view>
</view>
</
template
>
<
script
>
export
default
{
props
:[
'data'
],
data
()
{
return
{
}
},
watch
:
{
data
:{
handler
(
newVal
,
oldVal
){
},
deep
:
true
,
immediate
:
false
},
},
mounted
()
{
},
methods
:{
}
}
</
script
>
\ No newline at end of file
pages/teamLeader/components/schedule/infor9.vue
0 → 100644
View file @
cb41a0bd
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.infor1-box
{
background
:
#FFFFFF
;
box-shadow
:
0rpx
3rpx
32rpx
0rpx
rgba
(
71
,
71
,
71
,
0
.16
);
border-radius
:
8rpx
;
overflow
:
hidden
;
}
.infor1-center
{
border-bottom
:
1px
solid
#ddd
;
}
.infor1-center
:last-child
{
border-bottom
:
0
;
}
.infor1-c-l
view
{
width
:
46rpx
;
height
:
46rpx
;
background
:
#4985FF
;
border-radius
:
50%
;
}
.infor1-c-l
view
img
{
width
:
30rpx
;
height
:
28rpx
;
}
.day
{
color
:
#4985FF
;
}
.text
{
font-weight
:
500
;
line-height
:
50rpx
;
}
</
style
>
<
template
>
<view
class=
"PX20 PT40"
>
<view
class=
"infor1-box PX30 MB20 bjFFF fz30"
>
<view
class=
"infor1-center row"
v-for=
"item in 5"
>
<view
class=
"infor1-c-l PY30 row"
>
<view
class=
"row items-center justify-center"
>
<img
class=
""
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638869669341003114.png"
/>
</view>
</view>
<view
class=
"infor1-c-r PY30 colorFFF flex1"
>
<view
class=
"day fz32 PX30"
>
Day01
</view>
<view
class=
"color333 text row items-center MT10 PX30"
>
枯山水景致·大池禅寺,枯山水景致·大池禅寺(包含:茶道体验),骏河湾游船.喂海鸥.远眺富士山美景,富士山芝樱名所
</view>
</view>
</view>
</view>
<view
style=
"height: 50rpx;"
></view>
</view>
</
template
>
<
script
>
export
default
{
props
:[
'data'
],
data
()
{
return
{
}
},
watch
:
{
data
:{
handler
(
newVal
,
oldVal
){
},
deep
:
true
,
immediate
:
false
},
},
mounted
()
{
},
methods
:{
}
}
</
script
>
\ No newline at end of file
pages/teamLeader/index.vue
View file @
cb41a0bd
...
@@ -127,7 +127,7 @@
...
@@ -127,7 +127,7 @@
<view
class=
"row items-flex-end"
>
<view
class=
"row items-flex-end"
>
<text
class=
"stip"
>
¥
</text>
<text
class=
"stip"
>
¥
</text>
</view>
</view>
<text
class=
"num"
>
{{
dataList
[
current
].
PlanTotalPrice
}}
</text>
<text
class=
"num"
>
{{
dataList
[
current
Index
].
PlanTotalPrice
}}
</text>
</view>
</view>
</view>
</view>
</view>
</view>
...
@@ -191,7 +191,8 @@
...
@@ -191,7 +191,8 @@
<view
class=
"teamLeaderPath column"
>
<view
class=
"teamLeaderPath column"
>
<view
class=
"teamLeaderListBox row"
>
<view
class=
"teamLeaderListBox row"
>
<template
v-for=
"(item,index) in pathList"
>
<template
v-for=
"(item,index) in pathList"
>
<view
v-if=
"index
<3
"
class=
"teamLeaderList column justify-center"
>
<view
v-if=
"index
<3
"
class=
"teamLeaderList column justify-center"
@
click=
"goUrl(item.path)"
>
<view
class=
"teamLeaderList-top"
>
<view
class=
"teamLeaderList-top"
>
<img
:src=
"item.src"
>
<img
:src=
"item.src"
>
</view>
</view>
...
@@ -201,7 +202,8 @@
...
@@ -201,7 +202,8 @@
</view>
</view>
<view
class=
"teamLeaderListBox row"
>
<view
class=
"teamLeaderListBox row"
>
<
template
v-for=
"(item,index) in pathList"
>
<
template
v-for=
"(item,index) in pathList"
>
<view
v-if=
"index>=3"
class=
"teamLeaderList column justify-center"
>
<view
v-if=
"index>=3"
class=
"teamLeaderList column justify-center"
@
click=
"goUrl(item.path)"
>
<view
class=
"teamLeaderList-top"
>
<view
class=
"teamLeaderList-top"
>
<img
:src=
"item.src"
>
<img
:src=
"item.src"
>
</view>
</view>
...
@@ -214,15 +216,18 @@
...
@@ -214,15 +216,18 @@
:current=
"currentId"
:current=
"currentId"
:currencyList=
"currencyList"
:currencyList=
"currencyList"
@
close=
"close"
@
change=
"popupCurrency"
></currencyBottom>
@
close=
"close"
@
change=
"popupCurrency"
></currencyBottom>
<QRCode
v-if=
"showQRCode"
></QRCode>
</view>
</view>
</template>
</template>
<
script
>
<
script
>
import
headers
from
"@/components/header/header"
;
import
headers
from
"@/components/header/header"
;
import
currencyBottom
from
"./components/currencyBottom"
;
import
currencyBottom
from
"./components/currencyBottom"
;
import
QRCode
from
"./components/QRCode"
;
export
default
{
export
default
{
components
:
{
components
:
{
headers
,
headers
,
currencyBottom
currencyBottom
,
QRCode
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -231,7 +236,7 @@ export default {
...
@@ -231,7 +236,7 @@ export default {
{
{
name
:
"账单"
,
name
:
"账单"
,
src
:
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638868998200434106.png"
,
src
:
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638868998200434106.png"
,
path
:
""
,
path
:
"
/pages/teamLeader/billDetails
"
,
id
:
1
,
id
:
1
,
},
},
{
{
...
@@ -275,7 +280,7 @@ export default {
...
@@ -275,7 +280,7 @@ export default {
currencyList
:
[],
currencyList
:
[],
currentId
:
0
,
currentId
:
0
,
currentIndex
:
0
,
currentIndex
:
0
,
newCurrent
:
0
,
showQRCode
:
false
,
}
}
},
},
onLoad
(
option
){
onLoad
(
option
){
...
@@ -295,6 +300,11 @@ export default {
...
@@ -295,6 +300,11 @@ export default {
},
},
methods
:
{
methods
:
{
goUrl
(
url
){
uni
.
navigateTo
({
url
:
url
,
})
},
goBookkeeping
(){
goBookkeeping
(){
uni
.
navigateTo
({
uni
.
navigateTo
({
url
:
`/pages/teamLeader/reimbursementInfor?TCIDs=
${
this
.
msg
.
TCIDs
}
`
,
url
:
`/pages/teamLeader/reimbursementInfor?TCIDs=
${
this
.
msg
.
TCIDs
}
`
,
...
...
pages/teamLeader/itineraryDetails.vue
0 → 100644
View file @
cb41a0bd
<
style
lang=
"scss"
>
@import
url("@/asset/css/flex.css")
;
.backBox
{
width
:
45rpx
;
height
:
45rpx
;
background
:
rgba
(
23
,
23
,
23
,.
5
);
border-radius
:
50%
;
margin-top
:
22rpx
;
}
.backIcon
{
display
:
inline-block
;
margin-top
:
6rpx
;
}
.backBox
img
{
width
:
19rpx
;
height
:
24rpx
;
display
:
inline-block
;
margin-top
:
10rpx
;
}
.itiner-title
{
line-height
:
45px
!
important
;
font-size
:
16px
;
text-align
:
center
;
position
:
fixed
;
left
:
0
;
top
:
0
;
width
:
100%
;
color
:
#111
;
box-sizing
:
content-box
;
z-index
:
5
;
display
:
flex
;
align-items
:
center
;
background-color
:
#f6f6f6
;
padding-left
:
6rpx
;
}
.bjLine
{
background
:
#F5F5F5
;
height
:
30rpx
;
}
.itiner-c-title
{
font-weight
:
bold
;
}
.itiner-xincheng
img
{
width
:
31rpx
;
height
:
33rpx
;
}
.itiner-xincheng-left
{
color
:
#838383
;
}
.itiner-xincheng-right
view
{
border
:
1rpx
solid
#3581DA
;
color
:
#3581DA
;
border-radius
:
8rpx
;
padding
:
0
8rpx
;
}
.itiner-left-line
{
width
:
9rpx
;
height
:
25rpx
;
border-radius
:
100rpx
;
background
:
#000
;
}
.itiner-titleBox
{
border-bottom
:
1px
solid
#eee
;
}
.itiner-title-c
{
padding
:
25rpx
20rpx
;
}
.itiner-title-c.active
{
position
:
relative
;
color
:
#327FDE
;
}
.
itiner-title-c
.
active
:
:
after
{
content
:
''
;
position
:
absolute
;
left
:
0
;
bottom
:
0
;
width
:
100%
;
height
:
5rpx
;
background
:
#3581DA
;
}
.itiner-feiyong
{
background
:
#FF9702
;
color
:
#fff
;
border-radius
:
10rpx
;
padding
:
0rpx
20rpx
;
}
</
style
>
<
template
>
<scroll-view
ref=
"scrollView"
scroll-y=
"true"
style=
"width: 100%; height: 100vh;"
@
scroll=
"scroll"
:scroll-top=
"scrollTop"
>
<view
class=
"media"
:style=
"
{ opacity: 100 - boxOption + '%' }"
@click="openPicture">
<u-swiper
:list=
"imgsList"
:effect3d=
"false"
:height=
"545"
:interval=
"5000"
:border-radius=
"0"
name=
"url"
mode=
"number"
indicatorPos=
"bottomRight"
>
</u-swiper>
<view
@
click=
"goback"
:style=
"[titleStyle,
{ opacity: '100% !important' }]"
style="position: fixed; top: 0; left: 0; padding-left: 6rpx">
<view
class=
"backBox text-center"
>
<u-icon
class=
"backIcon"
name=
"arrow-left"
size=
"32"
color=
"#FFF"
></u-icon>
</view>
</view>
<view
@
click=
"goback"
:style=
"[titleStyle,
{ opacity: '100% !important' }]"
style="position: fixed; top: 0; right: 200rpx; padding-right: 6rpx">
<view
class=
"backBox text-center"
>
<img
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638762515984923148.png"
/>
</view>
</view>
</view>
<view
class=
"itiner-title"
:style=
"[titleStyle]"
>
<view
@
click=
"goback"
>
<u-icon
name=
"arrow-left"
size=
"38"
></u-icon>
</view>
<view
style=
"flex: 1; margin-left: 30rpx; text-align: left"
class=
"name-ali"
>
名称
</view>
</view>
<view
class=
"itiner-content"
>
<view
class=
"PX30 PB20"
>
<view
class=
"PT25 PB30 fz32 itiner-c-title"
>
名称
</view>
<view
class=
"row justify-between items-center"
>
<view
class=
"row items-center"
>
<view
class=
"row items-center"
><view
class=
"fz28 color9C9C9C"
>
同业价:
</view>
<text
class=
"fontBold fz38 colorF99710"
>
0
</text><text
class=
"fz24 ML10"
>
/ 人
</text></view>
<view
class=
"row items-center ML30"
><view
class=
"fz28 color9C9C9C"
>
统一售价:
</view>
<text
class=
"fontBold fz38 colorF99710"
>
0
</text><text
class=
"fz24 ML10"
>
/ 人
</text></view>
</view>
<view>
<u-icon
class=
"backIcon"
name=
"arrow-down"
size=
"32"
color=
"#9D9D9D"
></u-icon>
<u-icon
class=
"backIcon"
name=
"arrow-up"
size=
"32"
color=
"#9D9D9D"
></u-icon>
</view>
</view>
<view
class=
"colorE1432E fz28 PT10"
>
op备注:
</view>
</view>
<view
class=
"bjLine"
></view>
<view
class=
"PX30 PB20"
>
<view
class=
"MT15 itiner-xincheng row items-center"
>
<img
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875112655075900.png"
/>
<view
class=
"itiner-xincheng-left ML30 MR30 fz26"
>
行程天数
</view>
<view
class=
"itiner-xincheng-right fz28 row items-center"
>
7
<text
class=
"ML10 MR10"
>
天
</text>
6
<tetx
class=
"ML10 MR10"
>
晚
</tetx>
跟团游
<view
class=
"ML30 MR10"
>
行程下载
</view></view>
</view>
<view
class=
"MT10 itiner-xincheng row items-center"
>
<img
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875112698474332.png"
/>
<view
class=
"itiner-xincheng-left ML30 MR30 fz26"
>
出发城市
</view>
<view
class=
"itiner-xincheng-right fz28 row items-center"
>
上海
</view>
</view>
</view>
<view
class=
"bjLine"
></view>
<view
class=
"PX30"
>
<view
class=
"PY20 row justify-between items-center"
>
<view
class=
"row items-center"
>
<view
class=
"itiner-left-line"
>
</view>
<text
class=
"fz32 fontBold ML20"
>
报名清单
</text>
</view>
<view>
<u-icon
class=
"backIcon"
name=
"arrow-down"
size=
"32"
color=
"#9D9D9D"
></u-icon>
<u-icon
class=
"backIcon"
name=
"arrow-up"
size=
"32"
color=
"#9D9D9D"
></u-icon>
</view>
</view>
<view
class=
""
>
<view
class=
"fz28"
>
本团机位
</view>
<view
class=
"fz28 PT15 PB20"
>
报名人数
</view>
</view>
</view>
<view
class=
"bjLine"
></view>
<view
class=
"PX30"
>
<view
class=
"PY20 row justify-between items-center"
>
<view
class=
"row items-center"
>
<view
class=
"itiner-left-line"
>
</view>
<text
class=
"fz32 fontBold ML20"
>
本团卖店
</text>
</view>
<view>
<u-icon
class=
"backIcon"
name=
"arrow-down"
size=
"32"
color=
"#9D9D9D"
></u-icon>
<u-icon
class=
"backIcon"
name=
"arrow-up"
size=
"32"
color=
"#9D9D9D"
></u-icon>
</view>
</view>
<view
class=
""
>
<view
class=
"fz28"
></view>
<view
class=
"fz28 PB20"
style=
"color: #7B7B7B;"
>
暂未填写
</view>
</view>
</view>
<view
class=
"bjLine"
></view>
<view
class=
"PX30"
>
<view
class=
"PY20 row justify-between items-center"
>
<view
class=
"row items-center"
>
<view
class=
"itiner-left-line"
>
</view>
<text
class=
"fz32 fontBold ML20"
>
航班信息
</text>
</view>
<view>
<u-icon
class=
"backIcon"
name=
"arrow-down"
size=
"32"
color=
"#9D9D9D"
></u-icon>
<u-icon
class=
"backIcon"
name=
"arrow-up"
size=
"32"
color=
"#9D9D9D"
></u-icon>
</view>
</view>
<view
class=
""
>
<view
class=
"fz28"
></view>
<view
class=
"fz28 PB20"
style=
"color: #7B7B7B;"
>
暂未航班信息
</view>
</view>
</view>
<view
class=
"bjLine"
></view>
<view
class=
"PX30 itiner-titleBox row items-center justify-between"
>
<view
class=
"itiner-title-c fz30"
:class=
"[current==item.ID?'active':'']"
v-for=
"(item,index) in titlesList"
:key=
"index"
>
{{
item
.
Name
}}
</view>
</view>
<view
class=
"PX30"
id=
"title1"
>
<view
class=
"PY20 row items-center"
>
<view
class=
"itiner-left-line"
>
</view>
<text
class=
"fz32 fontBold ML20"
>
行程特色
</text>
</view>
<view>
<img
src=
""
/>
</view>
</view>
<view
class=
"PX30"
id=
"title2"
>
<view
class=
"PY20 row items-center"
>
<view
class=
"itiner-left-line"
>
</view>
<text
class=
"fz32 fontBold ML20"
>
行程介绍
</text>
</view>
<view>
<img
src=
""
/>
</view>
</view>
<view
class=
"PX30"
id=
"title3"
>
<view
class=
"PY20 row items-center"
>
<view
class=
"itiner-left-line"
>
</view>
<text
class=
"fz32 fontBold ML20"
>
费用说明
</text>
</view>
<view
class=
"PB20"
>
<text
class=
"itiner-feiyong"
>
费用包含
</text>
</view>
<view
class=
"PB20"
>
<view
class=
"fz26"
></view>
</view>
<view
class=
"PB20"
>
<text
class=
"itiner-feiyong"
>
费用不包含
</text>
</view>
<view
class=
"PB20"
>
<view
class=
"fz26"
></view>
</view>
</view>
<view
class=
"PX30"
id=
"title4"
>
<view
class=
"PY20 row items-center"
>
<view
class=
"itiner-left-line"
>
</view>
<text
class=
"fz32 fontBold ML20"
>
预定须知
</text>
</view>
<view
class=
"PB20"
>
<text
class=
"itiner-win"
>
重要提示
</text>
</view>
<view
class=
"PB20"
>
<view
class=
"fz26"
></view>
</view>
<view
class=
"PB20"
>
<text
class=
"itiner-tisp"
>
温馨提示
</text>
</view>
<view
class=
"PB20"
>
<view
class=
"fz26"
></view>
</view>
</view>
</view>
</scroll-view>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
scrollTop
:
100
,
old
:
{
scrollTop
:
0
},
boxOption
:
0
,
titleStyle
:
{
opacity
:
0
,
},
imgsList
:
[
{
url
:
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png'
,
Path
:
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png'
,
},
{
url
:
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png'
,
Path
:
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png'
,
},
],
titlesList
:[{
Name
:
'行程特色'
,
ID
:
1
,
val
:
'title1'
,
top
:
0
,
},
{
Name
:
'7日行程'
,
ID
:
2
,
val
:
'title1'
,
top
:
0
,
},
{
Name
:
'费用说明'
,
ID
:
3
,
val
:
'title3'
,
top
:
0
,
},
{
Name
:
'预定须知'
,
ID
:
4
,
val
:
'title4'
,
top
:
0
,
},
],
current
:
1
,
}
},
computed
:
{
},
created
()
{
},
onLoad
(
options
)
{
},
onShow
()
{
let
that
=
this
;
uni
.
getSystemInfo
({
success
(
res
)
{
that
.
titleStyle
=
{
height
:
"45px"
,
paddingTop
:
`
${
res
.
statusBarHeight
}
px`
,
opacity
:
"0"
,
};
},
});
},
mounted
()
{
},
methods
:
{
goback
()
{
uni
.
navigateBack
({
delta
:
1
,
});
},
openPicture
()
{
let
imgObj
=
JSON
.
stringify
(
this
.
imgsList
);
uni
.
navigateTo
({
url
:
"/pages/hotel/picture?imgObj="
+
imgObj
,
});
},
scroll
(
e
)
{
this
.
old
.
scrollTop
=
e
.
detail
.
scrollTop
this
.
boxOption
=
Math
.
floor
((
e
.
detail
.
scrollTop
-
50
)
/
1.5
);
this
.
titleStyle
.
opacity
=
e
.
detail
.
scrollTop
-
100
<
0
?
0
:
Math
.
floor
(
e
.
detail
.
scrollTop
-
100
)
/
100
>
1
?
1
:
Math
.
floor
(
e
.
detail
.
scrollTop
-
100
)
/
100
;
this
.
$forceUpdate
();
},
},
}
</
script
>
\ No newline at end of file
pages/teamLeader/itineraryInformation.vue
0 → 100644
View file @
cb41a0bd
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.itinInfoHeaderBox
{
background
:
linear-gradient
(
-30deg
,
#4779FF
,
#47A5FF
);
}
.itinInfoTitle
{
position
:
relative
;
z-index
:
3
}
.itinInfoTitle.fixed
{
position
:
fixed
;
left
:
0
;
top
:
0
;
right
:
0
;
z-index
:
2
;
background
:
linear-gradient
(
-30deg
,
#4779FF
,
#47A5FF
);
}
.itinInfoTitle.fixed
.itinInfoTsBox
{
top
:
22rpx
;
}
.teamLeader-currency
{
font-size
:
24rpx
;
border-radius
:
30rpx
;
// border: 1px solid #fff;
padding
:
8rpx
20rpx
;
position
:
absolute
;
right
:
210rpx
;
top
:
118rpx
;
color
:
#fff
;
}
.teamLeader-currency
text
{
margin-right
:
15rpx
;
}
.triangle
{
width
:
0
;
height
:
0
;
border-left
:
8rpx
solid
transparent
;
border-right
:
8rpx
solid
transparent
;
border-top
:
8rpx
solid
#fff
;
}
.itinInfoNum
view
{
border
:
1px
solid
#75B7FF
;
border-radius
:
22rpx
;
height
:
47rpx
;
line-height
:
40rpx
;
margin
:
0
18rpx
;
padding
:
0
20rpx
;
overflow
:
hidden
;
}
.itinInfoCarNum
{
margin-top
:
38rpx
;
}
.itinInfoCarNum
>
view
{
height
:
57rpx
;
line-height
:
50rpx
;
background
:
rgba
(
1
,
48
,
176
,
.2
);
}
.itinInfoCarNum
>
view
:last-child
{
background
:
rgba
(
1
,
48
,
176
,
.1
);
}
.itinInfoLeader
{
color
:
#0844B9
;
padding
:
17rpx
0
;
}
.itineraryInformationCenter
{
box-shadow
:
0rpx
1rpx
6rpx
0rpx
rgba
(
102
,
102
,
102
,
0
.4
);
border-radius
:
10rpx
;
}
.itineraryInformationCtime
{
border-bottom
:
1px
dashed
rgba
(
0
,
0
,
0
,
.1
);
margin
:
0
23rpx
;
}
.itineraryInformationCtext
{
margin-left
:
23rpx
;
margin-right
:
23rpx
;
align-items
:
flex-start
;
padding
:
16rpx
0
;
}
.itineraryInformationCtext
:last-child
{
padding-top
:
0
;
}
.itineraryInformationCtext
>
view
:first-child
{
width
:
100rpx
;
text-align
:
right
;
color
:
#333
;
padding-top
:
5rpx
;
}
.itineraryInformationCtext
.din
{
padding
:
16rpx
0
;
margin-top
:
12rpx
;
}
.itineraryInformationCtext
>
view
:last-child
{
margin-left
:
30rpx
;
}
.itineraryInformationCtext
view
:last-child
view
{
border-bottom
:
1px
dashed
rgba
(
0
,
0
,
0
,
.1
);
padding
:
16rpx
0
;
}
.itineraryInformationSCenter
{
box-shadow
:
0rpx
1rpx
6rpx
0rpx
rgba
(
102
,
102
,
102
,
0
.4
);
border-radius
:
10rpx
;
}
.itineraryInformationSCenter
view
view
{
padding
:
20rpx
0
;
}
.itineraryInformationSCenter
view
view
:first-child
{
width
:
150rpx
;
text-align
:
right
;
color
:
#333
;
padding-top
:
26rpx
;
}
.itineraryInformationSCenter
view
view
:last-child
{
border-bottom
:
1px
dashed
rgba
(
0
,
0
,
0
,
.1
);
}
</
style
>
<
template
>
<view
style=
"height: 100vh;"
>
<scroll-view
class=
"itinInfoBox"
scroll-y=
"true"
:enable-back-to-top=
"true"
:enable-flex=
"true"
@
scroll=
"scroll"
style=
"height: 100vh;"
>
<view
class=
"itinInfoHeaderBox colorFFF"
>
<view
class=
"itinInfoTitle"
>
<headers
textAlign=
"left"
:title=
"pageTitle"
color=
"#fff"
></headers>
<view
class=
"teamLeader-currency row items-center"
@
click=
"currencyVisible=true"
><text>
行程详情
</text></view>
</view>
<view
class=
"itinInfoTitle fixed"
:style=
"
{ opacity: boxOption + '%' }">
<headers
textAlign=
"left"
:title=
"pageTitle"
color=
"#fff"
></headers>
<view
class=
"teamLeader-currency row items-center"
@
click=
"currencyVisible=true"
><text>
行程详情
</text></view>
</view>
<view
class=
"fz28 row justify-center items-center fz28"
style=
"color: #D5E2FF;"
>
<img
class=
"MR20"
style=
"width: 31rpx;height: 31rpx;display: inline-block;"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874927031858279.png"
/>
<text>
团号
</text>
</view>
<view
class=
"row justify-center items-center PT20 PB10"
>
<text
class=
"fz36"
>
JVS0601OTC-CAA
</text>
<view
class=
"triangle ML10"
></view>
</view>
<view
class=
"itinInfoNum row justify-center fz24"
>
<view>
7T+2S
</view>
<view>
中型(28席)
</view>
<view>
28人
</view>
</view>
<view
class=
"itinInfoCarNum row fz24"
>
<view
class=
"flex1 row justify-center"
>
<view
style=
"color: #D5E2FF;"
>
车配号
</view>
<view
class=
"ML25"
>
OT
</view>
</view>
<view
class=
"flex1 row justify-center"
>
<view
style=
"color: #D5E2FF;"
>
举牌接机
</view>
<view
class=
"ML25"
>
无
</view>
</view>
</view>
</view>
<view
class=
"itinInfoLeader row fz24"
>
<view
class=
"flex1 row justify-center"
>
<view>
领队:
</view>
<view>
OT
</view>
</view>
<view
class=
"flex1 row justify-center"
>
<view>
导游:
</view>
<view>
无
</view>
</view>
</view>
<view
class=
"row justify-center items-center"
>
<img
style=
"width: 25rpx;height: 32rpx;display: inline-block;"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874931415480953.png"
/>
<text
class=
"ML20 fz28"
>
行程概要
</text>
</view>
<view
class=
"itineraryInformationCBox PX30"
>
<view
class=
"MT30 itineraryInformationCenter"
>
<view
class=
"itineraryInformationCtime PY20 text-center fz24"
>
2025-06-25
</view>
<view
class=
"itineraryInformationCtext row"
>
<view
class=
"fz24"
>
用车情况
</view>
<view
class=
"flex1 fz28 fontWeight500"
>
酒接
</view>
</view>
<view
class=
"itineraryInformationCtext row"
>
<view
class=
"fz24"
>
航班
</view>
<view
class=
"flex1 fz28 fontWeight500"
>
酒接
</view>
</view>
<view
class=
"itineraryInformationCtext row"
>
<view
class=
"fz24"
>
行程内容
</view>
<view
class=
"flex1 fz28 fontWeight500"
>
酒接
</view>
</view>
<view
class=
"itineraryInformationCtext row"
>
<view
class=
"fz24"
>
酒店
</view>
<view
class=
"flex1 fz28 fontWeight500"
>
酒接
</view>
</view>
<view
class=
"itineraryInformationCtext row"
>
<view
class=
"fz24"
>
酒店联系
</view>
<view
class=
"flex1 fz28 fontWeight500"
>
酒接
</view>
</view>
<view
class=
"itineraryInformationCtext row"
>
<view
class=
"fz24"
>
结算方式
</view>
<view
class=
"flex1 fz28 fontWeight500"
>
酒接
</view>
</view>
<view
class=
"itineraryInformationCtext row"
>
<view
class=
"fz24"
>
车牌号
</view>
<view
class=
"flex1 fz28 fontWeight500"
>
酒接
</view>
</view>
<view
class=
"itineraryInformationCtext row"
>
<view
class=
"fz24"
>
司机信息
</view>
<view
class=
"flex1 fz28 fontWeight500"
>
酒接
</view>
</view>
<view
class=
"itineraryInformationCtext row"
>
<view
class=
"fz24"
>
司机电话
</view>
<view
class=
"flex1 fz28 fontWeight500"
>
酒接
</view>
</view>
<view
class=
"itineraryInformationCtext row"
>
<view
class=
"fz24"
>
司机住宿
</view>
<view
class=
"flex1 fz28 fontWeight500"
>
酒接
</view>
</view>
<view
class=
"itineraryInformationCtext row"
>
<view
class=
"fz24"
>
用车备注
</view>
<view
class=
"flex1 fz28 fontWeight500"
>
酒接
</view>
</view>
<view
class=
"itineraryInformationCtext row"
>
<view
class=
"fz24 din"
>
餐食
</view>
<view
class=
"flex1 column fz28 fontWeight500"
>
<view
class=
"flex1"
>
酒接
</view>
<view
class=
"flex1"
>
酒接
</view>
<view
class=
"flex1"
>
酒接
</view>
</view>
</view>
</view>
</view>
<view
class=
"MT30 row justify-center items-center"
>
<img
style=
"width: 32rpx;height: 27rpx;display: inline-block;"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874937294094501.png"
/>
<text
class=
"ML20 fz28"
>
购物店
</text>
</view>
<view
class=
"itineraryInformationCBox PX30"
>
<view
class=
"MT30 PB30 itineraryInformationSCenter"
>
<view
class=
"row"
>
<view
class=
"fz24"
>
2018/4/15
</view>
<view
class=
"flex1 fz28 ML30"
>
新宿高岛屋
</view>
</view>
</view>
<view
class=
"fz26 text-center"
>
无购物店安排
</view>
</view>
<view
class=
"MT40 row justify-center items-center"
>
<img
style=
"width: 25rpx;height: 32rpx;display: inline-block;"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874937330393349.png"
/>
<text
class=
"ML20 fz28"
>
集团公司总部联络方式
</text>
</view>
<view
class=
"itineraryInformationCBox PX30"
>
<view
class=
"MT30 PB30 itineraryInformationSCenter"
>
<view
class=
"row"
>
<view
class=
"fz24"
>
车负责人
</view>
<view
class=
"flex1 fz28 ML30"
>
唐雪梅
</view>
</view>
<view
class=
"row"
>
<view
class=
"fz24"
>
门票负责人
</view>
<view
class=
"flex1 fz28 ML30"
>
唐雪梅
</view>
</view>
<view
class=
"row"
>
<view
class=
"fz24"
>
机票负责人
</view>
<view
class=
"flex1 fz28 ML30"
>
唐雪梅
</view>
</view>
<view
class=
"row"
>
<view
class=
"fz24"
>
订房负责人
</view>
<view
class=
"flex1 fz28 ML30"
>
唐雪梅
</view>
</view>
<view
class=
"row"
>
<view
class=
"fz24"
>
订餐负责人
</view>
<view
class=
"flex1 fz28 ML30"
>
唐雪梅
</view>
</view>
</view>
</view>
<view
style=
"height: 50rpx;"
></view>
</scroll-view>
<currencyBottom
v-if=
"currencyVisible"
:current=
"currentId"
:currencyList=
"currencyList"
@
close=
"close"
@
change=
"popupCurrency"
></currencyBottom>
</view>
</
template
>
<
script
>
import
headers
from
"@/components/header/header"
;
import
currencyBottom
from
"./components/currencyBottom"
;
export
default
{
components
:
{
headers
,
currencyBottom
,
},
data
()
{
return
{
pageTitle
:
'行程信息'
,
boxOption
:
0
,
currencyVisible
:
false
,
currencyList
:
[],
currentId
:
0
,
currentIndex
:
0
,
downImg
:[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874827170491438.png'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874827279495359.png'
,
],
typeImgs
:[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829614812469.png'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612454395.png'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829612434651.png'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638874829685012792.png'
]
}
},
onLoad
(
option
){
},
created
()
{
},
mounted
()
{
},
methods
:
{
popupCurrency
(
value
){
this
.
currencyVisible
=
false
this
.
currentId
=
value
this
.
currentIndex
=
this
.
dataList
.
findIndex
(
item
=>
item
.
CurrencyId
==
value
)
},
scroll
(
e
)
{
this
.
boxOption
=
Math
.
floor
((
e
.
detail
.
scrollTop
-
100
)
/
1.5
);
this
.
$forceUpdate
();
},
},
}
</
script
>
\ No newline at end of file
pages/teamLeader/opinionSurvey.vue
0 → 100644
View file @
cb41a0bd
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.opiSurListBox
{
background
:
#f5f5f5
;
height
:
100vh
;
overflow
:
hidden
;
}
.opiSurHeader
{
background
:
linear-gradient
(
-30deg
,
#4779FF
,
#47A5FF
);
}
.opiSurTitle
view
{
padding
:
5rpx
20rpx
;
border
:
1px
solid
#fff
;
background
:
#fff
;
border-radius
:
50rpx
;
}
.opiSurTitle
view
.active
{
border
:
1px
solid
#4779FF
;
background
:
#BED6FF
;
color
:
#4779FF
;
}
.opiSurListCenter
{
background
:
#fff
;
border-radius
:
10rpx
;
overflow
:
hidden
;
box-shadow
:
0rpx
3rpx
32rpx
0rpx
rgba
(
71
,
71
,
71
,
0
.16
);
}
</
style
>
<
template
>
<view
class=
"opiSurListBox column"
>
<view
class=
"opiSurHeader"
>
<headers
:title=
"pageTitle"
color=
"#fff"
></headers>
</view>
<view
class=
"opiSurTitle row justify-between PX30 PY20 fz24"
>
<view
v-for=
"item in titles"
:class=
"[msg.type==item.id?'active':'']"
>
{{
item
.
name
}}
(
{{
item
.
num
}}
)
</view>
</view>
<scroll-view
class=
"flex1 bgFFF"
scroll-y=
"true"
:enable-back-to-top=
"true"
:enable-flex=
"true"
style=
"overflow: hidden;"
>
<view
class=
"PX30"
>
<view
v-for=
"item in 20"
class=
"opiSurListCenter fz28 PX20 PY20 MT20 MB30 row justify-between"
>
<view>
名字
</view>
<view>
未评分
</view>
</view>
</view>
<view
style=
"height: 50rpx;"
></view>
</scroll-view>
</view>
</
template
>
<
script
>
import
headers
from
"@/components/header/header"
;
export
default
{
components
:
{
headers
,
},
data
()
{
return
{
pageTitle
:
'意见调查'
,
showVisible
:
false
,
titles
:[
{
name
:
'全部'
,
id
:
1
,
num
:
37
},
{
name
:
'已评分'
,
id
:
2
,
num
:
12
},
{
name
:
'未评分'
,
id
:
3
,
num
:
25
},
],
msg
:{
type
:
1
}
}
},
onLoad
(
option
){
},
created
()
{
},
mounted
()
{
},
methods
:
{
showPassengerInfo
(){
this
.
showVisible
=
true
}
},
}
</
script
>
\ No newline at end of file
pages/teamLeader/reimbursementInfor.vue
View file @
cb41a0bd
...
@@ -129,16 +129,16 @@
...
@@ -129,16 +129,16 @@
<
script
>
<
script
>
import
headers
from
"@/components/header/header"
;
import
headers
from
"@/components/header/header"
;
import
headeDatas
from
"./components/headeDatas"
;
import
headeDatas
from
"./components/headeDatas"
;
import
productInfor1
from
"./components/productInfor1"
;
import
productInfor1
from
"./components/
report/
productInfor1"
;
import
productInfor2
from
"./components/productInfor2"
;
import
productInfor2
from
"./components/
report/
productInfor2"
;
import
productInfor3
from
"./components/productInfor3"
;
import
productInfor3
from
"./components/
report/
productInfor3"
;
import
productInfor4
from
"./components/productInfor4"
;
import
productInfor4
from
"./components/
report/
productInfor4"
;
import
otherInfor1
from
"./components/otherInfor1"
;
import
otherInfor1
from
"./components/
report/
otherInfor1"
;
import
otherInfor2
from
"./components/otherInfor2"
;
import
otherInfor2
from
"./components/
report/
otherInfor2"
;
import
otherInfor3
from
"./components/otherInfor3"
;
import
otherInfor3
from
"./components/
report/
otherInfor3"
;
import
otherInfor4
from
"./components/otherInfor4"
;
import
otherInfor4
from
"./components/
report/
otherInfor4"
;
import
otherInfor5
from
"./components/otherInfor5"
;
import
otherInfor5
from
"./components/
report/
otherInfor5"
;
import
otherInfor6
from
"./components/otherInfor6"
;
import
otherInfor6
from
"./components/
report/
otherInfor6"
;
export
default
{
export
default
{
components
:
{
components
:
{
headers
,
headers
,
...
...
pages/teamLeader/roomAllocation.vue
0 → 100644
View file @
cb41a0bd
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.roomListBox
{
background
:
#f5f5f5
;
height
:
100vh
;
}
.roomHeader
{
background
:
linear-gradient
(
-30deg
,
#4779FF
,
#47A5FF
);
position
:
fixed
;
left
:
0
;
right
:
0
;
z-index
:
2
;
}
.roomListCenter
{
background
:
#fff
;
border-radius
:
10rpx
;
overflow
:
hidden
;
}
.roomListC-L-type
{
border-radius
:
6rpx
;
background
:
#0072FF
;
padding
:
5rpx
10rpx
;
color
:
#fff
;
margin-right
:
20rpx
;
}
.roomListCenter.active1
.roomListC-L-type
{
background
:
#FD9700
;
}
.roomListCenter.active2
.roomListC-L-type
{
background
:
#FD9700
;
}
.roomListC-box
{
background
:
#F8F8F8
;
border-radius
:
4rpx
;
}
.roomListC-bind
view
{
border
:
1px
solid
#73AEFF
;
color
:
#257BF1
;
border-radius
:
6rpx
;
padding
:
5rpx
10rpx
;
margin-right
:
20rpx
;
margin-top
:
20rpx
;
margin-bottom
:
25rpx
;
}
.roomListC-info
{
margin-bottom
:
23rpx
;
font-size
:
24rpx
;
}
.roomListC-info-L
{
width
:
350rpx
;
color
:
#333333
;
}
.roomListC-info-L
view
:first-child
{
width
:
100rpx
;
text-align
:
right
;
margin-right
:
20rpx
;
color
:
#666666
;
flex-shrink
:
0
;
}
.roomListC-info-R
{
color
:
#333333
;
}
.roomListC-info-R
view
:first-child
{
width
:
80rpx
;
text-align
:
right
;
margin-right
:
20rpx
;
color
:
#666666
;
flex-shrink
:
0
;
}
.roomListC-info-L
view
:last-child
,
.roomListC-info-R
view
:last-child
{
font-weight
:
500
;
}
</
style
>
<
template
>
<view
class=
"roomListBox"
>
<view
class=
"roomHeader"
>
<headers
:title=
"pageTitle"
color=
"#fff"
></headers>
</view>
<scroll-view
scroll-y=
"true"
:enable-back-to-top=
"true"
:enable-flex=
"true"
style=
"height: 100%;"
>
<view
class=
"PA30"
style=
"margin-top: 160rpx;"
>
<view
class=
"roomListCenter PX20 MT30"
>
<view
class=
"roomListC-header PY15 row justify-between items-center"
>
<view
class=
"roomListC-L row items-center fz24"
>
<view
class=
"roomListC-L-type"
>
单间
</view>
<view
class=
"fz28"
>
<text>
分房:
</text>
<text>
20
</text>
</view>
</view>
<view>
<text>
人数:
</text>
<text>
1
</text>
</view>
</view>
<view>
<view
class=
"roomListC-box PA20 MB20"
>
<view
class=
"roomListC-Title row justify-between"
@
click=
"showPassengerInfo"
>
<view
class=
"fz28 row"
>
<view>
姓名
</view>
<view
class=
"ML20 color999"
>
(jhggyookp[p[]])
</view>
<img
src=
""
style=
"width: 21rpx;height: 21rpx;"
/>
</view>
<view>
<u-icon
class=
""
name=
"arrow"
size=
"32"
color=
"#ccc"
></u-icon>
</view>
</view>
<view
class=
"roomListC-bind row fz20"
>
<view>
未绑定
</view>
<view>
领队
</view>
</view>
<view
class=
"roomListC-info row"
>
<view
class=
"roomListC-info-L row"
>
<view>
护照号
</view>
<view
class=
"flex1"
>
12121
</view>
</view>
<view
class=
"roomListC-info-R row"
>
<view>
签发地
</view>
<view
class=
"flex1"
>
2121
</view>
</view>
</view>
<view
class=
"roomListC-info row"
>
<view
class=
"roomListC-info-L row"
>
<view>
客户手机
</view>
<view
class=
"flex1"
>
2121
</view>
</view>
<view
class=
"roomListC-info-R row"
>
<view>
业务员
</view>
<view
class=
"flex1"
>
2121
</view>
</view>
</view>
<view
class=
"roomListC-info row"
>
<view
class=
"roomListC-info-L row"
>
<view>
出生日期
</view>
<view
class=
"flex1"
>
2121
</view>
</view>
<view
class=
"roomListC-info-R row"
>
<view>
单价
</view>
<view
class=
"flex1"
>
¥
</view>
</view>
</view>
<view
class=
"roomListC-info row"
>
<view
class=
"roomListC-info-L row"
>
<view>
备注
</view>
<view
class=
"flex1 colorE1432E"
>
21211
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</scroll-view>
<passengerInfo
v-if=
"showVisible"
@
close=
"showVisible=false"
></passengerInfo>
</view>
</
template
>
<
script
>
import
headers
from
"@/components/header/header"
;
import
passengerInfo
from
"./components/passengerInfo"
;
export
default
{
components
:
{
headers
,
passengerInfo
},
data
()
{
return
{
pageTitle
:
'分房表'
,
showVisible
:
false
}
},
onLoad
(
option
){
},
created
()
{
},
mounted
()
{
},
methods
:
{
showPassengerInfo
(){
this
.
showVisible
=
true
}
},
}
</
script
>
\ No newline at end of file
pages/teamLeader/schedule.vue
0 → 100644
View file @
cb41a0bd
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.schedule
{
height
:
100vh
;
}
.scheduleHeaderBox
{
background
:
linear-gradient
(
-30deg
,
#4FA9FF
,
#4779FF
);
box-shadow
:
0rpx
5rpx
35rpx
0rpx
#4C97FF
;
}
.scheduleTitle
{
// position: relative;
z-index
:
3
}
.scheduleTitle.fixed
{
position
:
fixed
;
left
:
0
;
top
:
0
;
right
:
0
;
z-index
:
2
;
background
:
linear-gradient
(
-30deg
,
#4FA9FF
,
#4779FF
);
}
.scheduleTitle.fixed
.scheduleTsBox
{
top
:
22rpx
;
}
.scheduleTsBox
{
// width: 60%;
// position: absolute;
// top: 118rpx;
// left: 80rpx;
// right: 300rpx;
overflow
:
hidden
;
}
.scheduleT-text
{
}
.scheduleText
{
font-weight
:
500
;
font-size
:
32rpx
;
color
:
#ACCEFF
;
white-space
:
nowrap
;
margin-left
:
22rpx
;
margin-right
:
22rpx
;
margin-top
:
22rpx
;
padding
:
0
20rpx
;
}
.scheduleText
text
{
display
:
block
;
}
.scheduleText
view
{
border-radius
:
4rpx
;
height
:
8rpx
;
margin-top
:
15rpx
;
}
.scheduleText.active
{
color
:
#FFFFFF
;
}
.scheduleText.active
view
{
background
:
#FBCF20
;
}
.schedule-Touxiang
{
width
:
65rpx
;
height
:
65rpx
;
background
:
#fff
;
border-radius
:
50%
;
}
.schedule-title
{
word-break
:
break-all
;
text-overflow
:
ellipsis
;
display
:
-
webkit-box
;
-webkit-box-orient
:
vertical
;
-webkit-line-clamp
:
2
;
overflow
:
hidden
;
}
</
style
>
<
template
>
<view
style=
"height: 100vh;"
>
<scroll-view
class=
"scheduleBox"
scroll-y=
"true"
:enable-back-to-top=
"true"
:enable-flex=
"true"
@
scroll=
"scroll"
style=
"height: 100vh;"
>
<view
class=
"scheduleHeaderBox"
>
<view
class=
"scheduleTitle"
>
<headers
textAlign=
"left"
:title=
"pageTitle"
color=
"#fff"
></headers>
<view
class=
"PX40 PY20"
>
<view
class=
"column"
style=
"border-radius: 8rpx;overflow: hidden;"
>
<view
class=
"colorFFF relative column"
style=
"height: 386rpx;background-size: 100% 100%;"
:style=
"
{'background': '',}">
<img
class=
"absolute"
style=
"width: 100%;height: 386rpx;"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875686175608095.png"
/>
<view
class=
"absolute column"
style=
"left: 0;right: 0;top: 0;bottom: 0;z-index: 2;"
>
<view
class=
"row items-center PX30 PT30"
>
<view
class=
"row items-center"
>
<view
class=
"schedule-Touxiang"
>
<img
style=
"width: 65rpx;height: 65rpx;display: inline-block;"
/>
</view>
<view
class=
"schedule-name ML20"
>
<view
class=
"fz28"
>
名字
</view>
<view
class=
"fz24"
>
(领队)
</view>
</view>
</view>
<view
class=
"row items-center ML50"
>
<view
class=
"schedule-Touxiang"
>
<img
style=
"width: 65rpx;height: 65rpx;display: inline-block;"
/>
</view>
<view
class=
"schedule-name ML20"
>
<view
class=
"fz28"
>
名字
</view>
<view
class=
"fz24"
>
(导游)
</view>
</view>
</view>
</view>
<view
class=
"flex1"
></view>
<view
class=
"schedule-title fz28 MB30 PX30"
>
产品名字
</view>
<view
class=
"row PX30 justify-between items-center fz24 PB20"
>
<view
class=
"row items-center"
>
<img
style=
"width: 24rpx;height: 32rpx;display: inline-block;"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875688769461022.png"
/>
<text
class=
"ML20"
>
成都MU
</text>
</view>
<view
class=
"row items-center"
>
<img
style=
"width: 22rpx;height: 32rpx;display: inline-block;"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638875688811834355.png"
/>
<text
class=
"ML20"
>
20+1
</text>
</view>
</view>
</view>
</view>
<view
class=
"bgFFF PA30"
>
<view
class=
"PB20 row justify-between items-center"
>
<view
class=
"color666"
>
集合时间
</view>
<view
class=
"color333"
>
05-01 06:30
</view>
</view>
<view
class=
"PB20 row justify-between items-center"
>
<view
class=
"color666"
>
出发时间
</view>
<view
class=
"color333"
>
05-01 06:30
</view>
</view>
<view
class=
"row justify-between items-center"
>
<view
class=
"color666"
>
进出点
</view>
<view
class=
"color333"
>
05-01 06:30
</view>
</view>
</view>
</view>
</view>
<scroll-view
class=
"scheduleTsBox"
:scroll-x=
"true"
:scroll-left=
"scrollLeft"
@
scroll=
"scrollHandler"
>
<view
class=
"scheduleT-text row-aic-n"
>
<view
class=
"scheduleText"
:class=
"[params.type==item.id?'active':'']"
v-for=
"(item,index) in titles"
:key=
"index"
@
click=
"getType(item)"
>
<text>
{{
item
.
name
}}
</text>
<view></view>
</view>
</view>
</scroll-view>
</view>
<view
class=
"scheduleTitle fixed"
:style=
"
{ opacity: boxOption + '%' }">
<headers
textAlign=
"left"
:title=
"pageTitle"
color=
"#fff"
></headers>
<scroll-view
class=
"scheduleTsBox"
:scroll-x=
"true"
:style=
"[titleStyle]"
:scroll-left=
"scrollLeft"
@
scroll=
"scrollHandler"
>
<view
class=
"scheduleT-text row-aic-n"
>
<view
class=
"scheduleText"
:class=
"[params.type==item.id?'active':'']"
v-for=
"(item,index) in titles"
:key=
"index"
@
click=
"getType(item)"
>
<text>
{{
item
.
name
}}
</text>
<view></view>
</view>
</view>
</scroll-view>
</view>
</view>
<infor1
v-if=
"params.type==1"
></infor1>
<infor2
v-if=
"params.type==2"
></infor2>
<infor3
v-if=
"params.type==3"
></infor3>
<infor4
v-if=
"params.type==4"
></infor4>
<infor5
v-if=
"params.type==5"
></infor5>
<infor6
v-if=
"params.type==6"
></infor6>
<infor7
v-if=
"params.type==7"
></infor7>
<infor8
v-if=
"params.type==8"
></infor8>
<infor9
v-if=
"params.type==9"
></infor9>
</scroll-view>
</view>
</
template
>
<
script
>
import
headers
from
"@/components/header/header"
;
import
infor1
from
"./components/schedule/infor1"
;
import
infor2
from
"./components/schedule/infor2"
;
import
infor3
from
"./components/schedule/infor3"
;
import
infor4
from
"./components/schedule/infor4"
;
import
infor5
from
"./components/schedule/infor5"
;
import
infor6
from
"./components/schedule/infor6"
;
import
infor7
from
"./components/schedule/infor7"
;
import
infor8
from
"./components/schedule/infor8"
;
import
infor9
from
"./components/schedule/infor9"
;
export
default
{
components
:
{
headers
,
infor1
,
infor2
,
infor3
,
infor4
,
infor5
,
infor6
,
infor7
,
infor8
,
infor9
,
},
data
()
{
return
{
pageTitle
:
'领队导游运行计划表'
,
boxOption
:
0
,
titleStyle
:
{
opacity
:
0
,
},
scrollTop
:
100
,
old
:
{
scrollTop
:
0
},
titles
:[
{
name
:
'相关信息'
,
id
:
1
,
},
{
name
:
'航班信息'
,
id
:
2
,
},
{
name
:
'车辆使用'
,
id
:
3
,
},
{
name
:
'酒店使用'
,
id
:
4
,
},
{
name
:
'餐食使用'
,
id
:
5
,
},
{
name
:
'门票使用'
,
id
:
6
,
},
{
name
:
'购物店'
,
id
:
7
,
},
{
name
:
'旅客名单'
,
id
:
8
,
},
{
name
:
'行程内容'
,
id
:
9
,
},
],
currencyVisible
:
false
,
oldDataIndex
:
1
,
loading
:
false
,
msg
:{
TCIDs
:
''
},
datas
:
{},
params
:{
type
:
9
},
busTypeList
:[],
hotelTypeList
:[],
diningTypeList
:[],
scenicTypeList
:[],
otherTypeList
:[
{
name
:
'导游津贴'
,
id
:
1
,
},
{
name
:
'司机津贴'
,
id
:
2
,
},
{
name
:
'其他支出'
,
id
:
0
,
},
],
scrollLeft
:
0
,
currencyList
:
[],
shopTypeList
:
[],
}
},
onLoad
(
option
){
if
(
option
.
TCIDs
){
this
.
msg
.
TCIDs
=
option
.
TCIDs
}
this
.
b2b_user_info
=
uni
.
getStorageSync
(
'b2b_user'
)
// this.init()
},
created
()
{
this
.
contentHeight
=
this
.
$utils
.
calcContentHeight
(
-
40
)
+
"px"
;
this
.
mainColor
=
this
.
$uiConfig
.
mainColor
;
},
mounted
()
{
const
that
=
this
uni
.
getSystemInfo
({
success
(
res
)
{
that
.
titleStyle
=
{
paddingTop
:
`
${
res
.
statusBarHeight
}
px`
};
},
});
// this.getOptionData()
// this.getCurrencyList()
},
methods
:
{
saveData
(){
if
(
this
.
loading
)
return
this
.
loading
=
true
uni
.
showLoading
()
this
.
apipost
(
"dmcstatistics_post_SetNewLeaderApplyList_V2"
,
this
.
params
,
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
loading
=
false
uni
.
hideLoading
()
this
.
init
()
}
},
(
failed
)
=>
{
this
.
loading
=
false
uni
.
showToast
({
title
:
failed
.
message
,
icon
:
"none"
,
});
},
(
error
)
=>
{
this
.
loading
=
false
})
},
getNewData
(
params
){
this
.
params
=
JSON
.
parse
(
JSON
.
stringify
(
params
))
},
getType
(
item
){
this
.
params
.
type
=
item
.
id
this
.
oldDataIndex
=
item
.
id
},
init
()
{
uni
.
showLoading
()
this
.
apipost
(
"dmcstatistics_post_GetNewLeaderPayMoneyStatics"
,
this
.
msg
,
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
params
=
res
.
data
;
for
(
let
i
=
1
;
i
<
5
;
i
++
){
this
.
$set
(
this
.
params
,
`dataIndex
${
i
}
`
,
0
);
}
this
.
$set
(
this
.
params
,
`type`
,
this
.
oldDataIndex
);
for
(
let
i
=
0
;
i
<
this
.
params
.
ScenicList
.
length
;
i
++
){
this
.
$set
(
this
.
params
.
ScenicList
[
i
],
`TotalMoney`
,
0
);
this
.
$set
(
this
.
params
.
ScenicList
[
i
],
`scenicIndex`
,
0
);
}
for
(
let
i
=
0
;
i
<
this
.
params
.
DiningList
.
length
;
i
++
){
this
.
$set
(
this
.
params
.
DiningList
[
i
],
`TotalMoney`
,
0
);
this
.
$set
(
this
.
params
.
DiningList
[
i
],
`diningIndex`
,
0
);
}
for
(
let
i
=
0
;
i
<
this
.
params
.
HotelOrderListReport
.
length
;
i
++
){
this
.
$set
(
this
.
params
.
HotelOrderListReport
[
i
],
`TotalMoney`
,
0
);
this
.
$set
(
this
.
params
.
HotelOrderListReport
[
i
],
`hotelIndex`
,
0
);
}
if
(
res
.
data
.
CountryIds
)
this
.
getShoppingType
(
res
.
data
.
CountryIds
)
// console.log(this.params.HotelOrderListReport,'-----酒店')
// console.log(this.params.BusList,'-----车信息')
// console.log(this.params.ScenicList,'-----景点')
// console.log(this.params.DiningList,'-----餐厅')
// console.log(this.params.LeaderShopList ,'-----购物店信息')
// console.log(this.params.LeaderApply ,'-----领队用款申请信息')
// console.log(this.params.OtherOrderInfo,'-----其他信息')
setTimeout
(()
=>
{
uni
.
hideLoading
()
},
1000
)
}
},
(
failed
)
=>
{
uni
.
hideLoading
()
uni
.
showToast
({
title
:
failed
.
message
,
icon
:
"none"
,
});
},
(
error
)
=>
{
uni
.
hideLoading
()
})
},
getShoppingType
(
id
){
this
.
apipost
(
"Shopping_Post_GetList"
,
{
QCountry
:
id
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
shopTypeList
=
[]
res
.
data
.
forEach
(
x
=>
{
this
.
shopTypeList
.
push
({
id
:
x
.
ID
,
name
:
x
.
Name
,
})
})
}
})
},
scrollHandler
(
e
){
// console.log(e.detail.scrollLeft,'-----------')
// this.scrollLeft = e.detail.scrollLeft
},
scroll
(
e
)
{
this
.
old
.
scrollTop
=
e
.
detail
.
scrollTop
this
.
boxOption
=
Math
.
floor
((
e
.
detail
.
scrollTop
-
100
)
/
1.5
);
this
.
titleStyle
.
opacity
=
e
.
detail
.
scrollTop
-
200
<
0
?
0
:
Math
.
floor
(
e
.
detail
.
scrollTop
-
100
)
/
100
>
1
?
1
:
Math
.
floor
(
e
.
detail
.
scrollTop
-
100
)
/
100
;
this
.
$forceUpdate
();
},
getOptionData
(){
this
.
apipost
(
"dmcstatistics_post_GetReimburseTypeList"
,
{
Type
:
''
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
res
.
data
.
forEach
(
x
=>
{
x
.
name
=
x
.
TypeName
x
.
id
=
x
.
ID
});
this
.
busTypeList
=
res
.
data
.
filter
(
x
=>
{
return
x
.
UserTypeId
==
4
})
this
.
hotelTypeList
=
res
.
data
.
filter
(
x
=>
{
return
x
.
UserTypeId
==
1
})
this
.
diningTypeList
=
res
.
data
.
filter
(
x
=>
{
return
x
.
UserTypeId
==
2
})
this
.
scenicTypeList
=
res
.
data
.
filter
(
x
=>
{
return
x
.
UserTypeId
==
3
})
}
},
(
failed
)
=>
{
uni
.
showToast
({
title
:
failed
.
message
,
icon
:
"none"
,
});
},
(
error
)
=>
{
})
},
getCurrencyList
(){
this
.
apipost
(
"financeinfo_post_GetList"
,
{
Name
:
''
,
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
for
(
let
i
=
0
;
i
<
res
.
data
.
length
;
i
++
){
let
data
=
res
.
data
[
i
]
this
.
currencyList
.
push
({
name
:
data
.
Name
,
id
:
data
.
ID
,
})
}
}
},
(
failed
)
=>
{
uni
.
showToast
({
title
:
failed
.
message
,
icon
:
"none"
,
});
},
(
error
)
=>
{
})
}
}
}
</
script
>
\ 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