Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
SuperMan
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
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
罗超
SuperMan
Commits
9d848171
Commit
9d848171
authored
Jul 16, 2019
by
华国豪
🙄
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/superman
parents
282e32cd
ab44a3d6
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1995 additions
and
1042 deletions
+1995
-1042
commonUtils.js
src/assets/utils/commonUtils.js
+26
-8
roomReservationsDetails.vue
src/components/Hotel/roomReservationsDetails.vue
+5
-14
leaderReimbursement.vue
src/components/LeaderManagement/leaderReimbursement.vue
+3
-13
leaderScheduleManager.vue
src/components/LeaderManagement/leaderScheduleManager.vue
+678
-586
comCheckHotelV2.vue
src/components/commonPage/comCheckHotelV2.vue
+298
-0
TravelDaysTrip_Direct.vue
...elmanager/oldTravelGroupControl/TravelDaysTrip_Direct.vue
+7
-10
dinnerTrip_Direct.vue
...Travelmanager/oldTravelGroupControl/dinnerTrip_Direct.vue
+475
-410
hotelTrip_Direct.vue
...wTravelmanager/oldTravelGroupControl/hotelTrip_Direct.vue
+0
-1
hotelTrip_Direct_V2.vue
...avelmanager/oldTravelGroupControl/hotelTrip_Direct_V2.vue
+503
-0
No files found.
src/assets/utils/commonUtils.js
View file @
9d848171
...
@@ -400,5 +400,23 @@ var commonUtils = {
...
@@ -400,5 +400,23 @@ var commonUtils = {
}
}
return
dateStr
;
return
dateStr
;
},
},
/**
* 增加减少天数
* date:可以不传
* day:正数
*/
AddDay
(
date
,
day
)
{
var
myDate
=
""
;
if
(
date
)
{
myDate
=
new
Date
(
date
);
}
else
{
myDate
=
new
Date
();
}
myDate
=
myDate
.
setDate
(
myDate
.
getDate
()
+
day
);
myDate
=
new
Date
(
myDate
);
//返回年月日
return
myDate
.
getFullYear
()
+
'-'
+
parseInt
(
myDate
.
getMonth
()
+
1
)
+
"-"
+
myDate
.
getDate
()
}
}
}
export
default
commonUtils
export
default
commonUtils
src/components/Hotel/roomReservationsDetails.vue
View file @
9d848171
...
@@ -716,23 +716,14 @@
...
@@ -716,23 +716,14 @@
calculationPrice
(
obj
)
{
calculationPrice
(
obj
)
{
let
totalPrice
=
0
;
let
totalPrice
=
0
;
obj
.
OrderDetailsList
.
forEach
((
item
,
index
)
=>
{
obj
.
OrderDetailsList
.
forEach
((
item
,
index
)
=>
{
var
tempPrice
=
0
;
//税别
//税别
if
(
obj
.
TaxType
==
2
)
{
if
(
obj
.
TaxType
==
2
&&
item
.
RebateRatio
>
0
)
{
if
(
index
==
4
)
{
tempPrice
=
item
.
UnitPrice
*
(
item
.
BookNum
-
item
.
HotelDiscount
)
*
(
1
+
0.08
-
item
.
RebateRatio
/
100
);
if
(
obj
.
DriverGuideIsRebate
==
1
)
{
totalPrice
+=
item
.
UnitPrice
*
(
item
.
BookNum
-
item
.
HotelDiscount
)
*
(
1
+
0.08
-
item
.
RebateRatio
/
100
);
}
else
{
}
else
{
totalPrice
+=
item
.
UnitPrice
*
(
item
.
BookNum
-
item
.
HotelDiscount
)
*
(
1
-
item
.
RebateRatio
/
100
);
tempPrice
=
item
.
UnitPrice
*
(
item
.
BookNum
-
item
.
HotelDiscount
)
*
(
1
-
item
.
RebateRatio
/
100
);
}
}
else
{
totalPrice
+=
item
.
UnitPrice
*
(
item
.
BookNum
-
item
.
HotelDiscount
)
*
(
1
+
0.08
-
item
.
RebateRatio
/
100
);
}
}
else
{
totalPrice
+=
item
.
UnitPrice
*
(
item
.
BookNum
-
item
.
HotelDiscount
)
*
(
1
-
item
.
RebateRatio
/
100
);
}
}
totalPrice
+=
tempPrice
;
})
})
totalPrice
+=
obj
.
ParkFee
+
obj
.
CityTax
+
obj
.
InTangTax
;
totalPrice
+=
obj
.
ParkFee
+
obj
.
CityTax
+
obj
.
InTangTax
;
obj
.
TotalPrice
=
totalPrice
.
toFixed
(
2
);
obj
.
TotalPrice
=
totalPrice
.
toFixed
(
2
);
...
...
src/components/LeaderManagement/leaderReimbursement.vue
View file @
9d848171
...
@@ -410,7 +410,7 @@
...
@@ -410,7 +410,7 @@
{{
subItem
.
UseAccount
}}
{{
subItem
.
UseAccount
}}
</td>
</td>
<td>
<td>
{{
peopleStrToWord
(
childItem
.
PeopleType
)
}}
:
{{
childItem
.
PeopleNum
}}
{{
peopleStrToWord
(
childItem
.
PeopleType
)
}}
:
{{
childItem
.
Use
PeopleNum
}}
</td>
</td>
<td>
<td>
{{
childItem
.
Discount
}}
{{
childItem
.
Discount
}}
...
@@ -731,18 +731,8 @@
...
@@ -731,18 +731,8 @@
obj
.
OrderDetailsList
.
forEach
((
item
,
index
)
=>
{
obj
.
OrderDetailsList
.
forEach
((
item
,
index
)
=>
{
if
(
obj
.
PayStyle
===
1
)
{
if
(
obj
.
PayStyle
===
1
)
{
//税别
//税别
if
(
obj
.
TaxType
==
2
)
{
if
(
obj
.
TaxType
==
2
&&
item
.
RebateRatio
>
0
)
{
if
(
index
==
4
)
{
totalPrice
+=
item
.
UnitPrice
*
(
item
.
BookNum
-
item
.
HotelDiscount
)
*
(
1
+
0.08
-
item
.
RebateRatio
/
100
);
if
(
obj
.
DriverGuideIsRebate
==
1
)
{
totalPrice
+=
item
.
UnitPrice
*
(
item
.
BookNum
-
item
.
HotelDiscount
)
*
(
1
+
0.08
-
item
.
RebateRatio
/
100
);
}
else
{
totalPrice
+=
item
.
UnitPrice
*
(
item
.
BookNum
-
item
.
HotelDiscount
)
*
(
1
-
item
.
RebateRatio
/
100
);
}
}
else
{
totalPrice
+=
item
.
UnitPrice
*
(
item
.
BookNum
-
item
.
HotelDiscount
)
*
(
1
+
0.08
-
item
.
RebateRatio
/
100
);
}
//税入
//税入
}
else
{
}
else
{
totalPrice
+=
item
.
UnitPrice
*
(
item
.
BookNum
-
item
.
HotelDiscount
)
*
(
1
-
item
.
RebateRatio
/
100
);
totalPrice
+=
item
.
UnitPrice
*
(
item
.
BookNum
-
item
.
HotelDiscount
)
*
(
1
-
item
.
RebateRatio
/
100
);
...
...
src/components/LeaderManagement/leaderScheduleManager.vue
View file @
9d848171
<
style
>
<
style
>
.guidScheduleMg
.el-input--prefix
.el-input__inner
{
.guidScheduleMg
.el-input--prefix
.el-input__inner
{
padding-left
:
30px
;
padding-left
:
30px
;
}
}
.guidScheduleMg
.query-box
ul
.el-input
{
.guidScheduleMg
.query-box
ul
.el-input
{
width
:
150px
;
width
:
150px
;
}
}
.guidScheduleMg
.guidScheduleMg_list
{
.guidScheduleMg
.guidScheduleMg_list
{
padding
:
20px
0
;
padding
:
20px
0
;
}
}
.guidScheduleMg
.guidScheduleMg_list
>
li
{
.guidScheduleMg
.guidScheduleMg_list
>
li
{
float
:
left
;
float
:
left
;
height
:
180px
;
height
:
180px
;
width
:
300px
;
width
:
300px
;
...
@@ -18,23 +21,27 @@
...
@@ -18,23 +21,27 @@
background
:
rgba
(
255
,
255
,
255
,
1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
-webkit-box-shadow
:
0px
0px
20px
rgba
(
191
,
191
,
191
,
1
);
-webkit-box-shadow
:
0px
0px
20px
rgba
(
191
,
191
,
191
,
1
);
box-shadow
:
0px
0px
20px
rgba
(
191
,
191
,
191
,
1
);
box-shadow
:
0px
0px
20px
rgba
(
191
,
191
,
191
,
1
);
}
}
.guidScheduleMg
.guidScheduleMg_list
>
li
>
div
{
.guidScheduleMg
.guidScheduleMg_list
>
li
>
div
{
height
:
180px
;
height
:
180px
;
position
:
relative
;
position
:
relative
;
border-radius
:
4px
;
border-radius
:
4px
;
overflow
:
hidden
;
overflow
:
hidden
;
}
}
.guidScheduleMg
.guidScheduleMg_list
>
li
.hl_img
{
.guidScheduleMg
.guidScheduleMg_list
>
li
.hl_img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
filter
:
blur
(
10px
);
filter
:
blur
(
10px
);
position
:
absolute
;
position
:
absolute
;
}
}
.guidScheduleMg
.hl_top
{
.guidScheduleMg
.hl_top
{
color
:
#ffffff
;
color
:
#ffffff
;
}
}
.guidScheduleMg
.hl_tit
{
.guidScheduleMg
.hl_tit
{
width
:
230px
;
width
:
230px
;
font-size
:
14px
;
font-size
:
14px
;
position
:
absolute
;
position
:
absolute
;
...
@@ -45,8 +52,9 @@
...
@@ -45,8 +52,9 @@
white-space
:
nowrap
;
white-space
:
nowrap
;
text-decoration
:
underline
;
text-decoration
:
underline
;
cursor
:
pointer
;
cursor
:
pointer
;
}
}
.guidScheduleMg
.hl_radius
{
.guidScheduleMg
.hl_radius
{
width
:
80px
;
width
:
80px
;
height
:
80px
;
height
:
80px
;
background-color
:
#ffffff
;
background-color
:
#ffffff
;
...
@@ -61,8 +69,9 @@
...
@@ -61,8 +69,9 @@
color
:
#e95252
;
color
:
#e95252
;
text-align
:
center
;
text-align
:
center
;
font-size
:
16px
;
font-size
:
16px
;
}
}
.guidScheduleMg
.hl_row
{
.guidScheduleMg
.hl_row
{
width
:
80%
;
width
:
80%
;
height
:
30px
;
height
:
30px
;
background
:
rgba
(
23
,
21
,
26
,
0.2
);
background
:
rgba
(
23
,
21
,
26
,
0.2
);
...
@@ -74,27 +83,34 @@
...
@@ -74,27 +83,34 @@
align-items
:
center
;
align-items
:
center
;
justify-content
:
space-between
;
justify-content
:
space-between
;
padding
:
0
10%
;
padding
:
0
10%
;
}
}
.guidScheduleMg
.hl_row
>
li
{
.guidScheduleMg
.hl_row
>
li
{
list-style
:
disc
;
list-style
:
disc
;
}
}
.guidScheduleMg
.guidScheduleMg_info
{
.guidScheduleMg
.guidScheduleMg_info
{
padding
:
0
65px
;
padding
:
0
65px
;
}
}
.guidScheduleMg
.guidScheduleMg_info
.hl_info
{
.guidScheduleMg
.guidScheduleMg_info
.hl_info
{
color
:
#333333
;
color
:
#333333
;
}
}
.guidScheduleMg
.guidScheduleMg_info
.hl_info
span
{
.guidScheduleMg
.guidScheduleMg_info
.hl_info
span
{
color
:
#666666
;
color
:
#666666
;
}
}
.guidScheduleMg
.hl_flight
{
.guidScheduleMg
.hl_flight
{
padding-top
:
20px
;
padding-top
:
20px
;
}
}
.guidScheduleMg
.hl_flight
li
{
.guidScheduleMg
.hl_flight
li
{
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
}
}
.guidScheduleMg
._go
{
.guidScheduleMg
._go
{
display
:
inline-block
;
display
:
inline-block
;
height
:
20px
;
height
:
20px
;
width
:
20px
;
width
:
20px
;
...
@@ -105,66 +121,79 @@
...
@@ -105,66 +121,79 @@
line-height
:
20px
;
line-height
:
20px
;
border-radius
:
4px
;
border-radius
:
4px
;
margin-right
:
10px
;
margin-right
:
10px
;
}
}
.guidScheduleMg
._textB14
{
.guidScheduleMg
._textB14
{
color
:
#333333
;
color
:
#333333
;
font-size
:
14px
;
font-size
:
14px
;
}
}
.guidScheduleMg
._timeCity
{
.guidScheduleMg
._timeCity
{
margin
:
15px
49px
;
margin
:
15px
49px
;
}
}
.guidScheduleMg
._time
{
.guidScheduleMg
._time
{
color
:
#666666
;
color
:
#666666
;
font-size
:
18px
;
font-size
:
18px
;
font-weight
:
700
;
font-weight
:
700
;
}
}
.guidScheduleMg
._city
{
.guidScheduleMg
._city
{
color
:
#ff7862
;
color
:
#ff7862
;
font-size
:
14px
;
font-size
:
14px
;
text-align
:
center
;
text-align
:
center
;
}
}
.guidScheduleMg
._line
{
.guidScheduleMg
._line
{
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
}
}
.guidScheduleMg
._line
span
{
.guidScheduleMg
._line
span
{
display
:
inline-block
;
display
:
inline-block
;
width
:
50px
;
width
:
50px
;
height
:
2px
;
height
:
2px
;
background-color
:
#ff7862
;
background-color
:
#ff7862
;
}
}
.guidScheduleMg
._line
span
._lr
{
.guidScheduleMg
._line
span
._lr
{
width
:
8px
;
width
:
8px
;
height
:
8px
;
height
:
8px
;
border-radius
:
50%
;
border-radius
:
50%
;
border
:
solid
2px
#ff7862
;
border
:
solid
2px
#ff7862
;
background-color
:
white
;
background-color
:
white
;
}
}
.guidScheduleMg
._flight_num
,
._flight_name
{
.guidScheduleMg
._flight_num
,
._flight_name
{
color
:
#999999
;
color
:
#999999
;
font-size
:
14px
;
font-size
:
14px
;
font-weight
:
700
;
font-weight
:
700
;
margin-left
:
15px
;
margin-left
:
15px
;
}
}
.guidScheduleMg
._flight_name
{
.guidScheduleMg
._flight_name
{
font-weight
:
lighter
;
font-weight
:
lighter
;
}
}
.guidScheduleMg
._margintop30
{
.guidScheduleMg
._margintop30
{
margin-top
:
30px
;
margin-top
:
30px
;
}
}
.guidScheduleMg
._details
{
.guidScheduleMg
._details
{
margin-left
:
20px
;
margin-left
:
20px
;
padding-top
:
20px
;
padding-top
:
20px
;
}
}
.guidScheduleMg
._details
>
li
{
.guidScheduleMg
._details
>
li
{
border-left
:
1px
solid
#e9e9e9
;
border-left
:
1px
solid
#e9e9e9
;
position
:
relative
;
position
:
relative
;
padding-bottom
:
15px
;
padding-bottom
:
15px
;
padding-left
:
40px
;
padding-left
:
40px
;
padding-top
:
15px
;
padding-top
:
15px
;
}
}
.guidScheduleMg
._d_radius
{
.guidScheduleMg
._d_radius
{
width
:
40px
;
width
:
40px
;
height
:
40px
;
height
:
40px
;
border-radius
:
50%
;
border-radius
:
50%
;
...
@@ -178,65 +207,80 @@
...
@@ -178,65 +207,80 @@
font-size
:
18px
;
font-size
:
18px
;
color
:
white
;
color
:
white
;
font-weight
:
700
;
font-weight
:
700
;
}
}
.guidScheduleMg
._Itinerary
{
.guidScheduleMg
._Itinerary
{
color
:
#333333
;
color
:
#333333
;
font-size
:
18px
;
font-size
:
18px
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
}
}
.guidScheduleMg
._Itinerary
.iconfont
{
.guidScheduleMg
._Itinerary
.iconfont
{
color
:
#666666
;
color
:
#666666
;
}
}
.guidScheduleMg
._d_city
,
._d_time
{
.guidScheduleMg
._d_city
,
._d_time
{
display
:
inline-block
;
display
:
inline-block
;
padding
:
0
20px
;
padding
:
0
20px
;
}
}
.guidScheduleMg
._d_time
{
.guidScheduleMg
._d_time
{
padding
:
0
10px
0
0
;
padding
:
0
10px
0
0
;
}
}
.guidScheduleMg
._d_info
{
.guidScheduleMg
._d_info
{
color
:
#666666
;
color
:
#666666
;
font-size
:
14px
;
font-size
:
14px
;
line-height
:
22px
;
line-height
:
22px
;
padding-top
:
16px
;
padding-top
:
16px
;
}
}
.guidScheduleMg
._food_hotel
{
.guidScheduleMg
._food_hotel
{
padding-top
:
25px
;
padding-top
:
25px
;
}
}
.guidScheduleMg
._food_hotel
._food
,
._hotel
{
.guidScheduleMg
._food_hotel
._food
,
._hotel
{
float
:
left
;
float
:
left
;
width
:
50%
;
width
:
50%
;
}
}
.guidScheduleMg
._food_hotel
.iconfont
::before
{
.guidScheduleMg
._food_hotel
.iconfont
::before
{
font-size
:
18px
;
font-size
:
18px
;
color
:
#07a767
;
color
:
#07a767
;
}
}
.guidScheduleMg
._food_hotel
._hotel
.iconfont
::before
{
.guidScheduleMg
._food_hotel
._hotel
.iconfont
::before
{
color
:
#2595ee
;
color
:
#2595ee
;
}
}
.guidScheduleMg
._fh_tit
{
.guidScheduleMg
._fh_tit
{
font-size
:
16px
;
font-size
:
16px
;
}
}
.guidScheduleMg
._fist
{
.guidScheduleMg
._fist
{
padding-bottom
:
10px
;
padding-bottom
:
10px
;
}
}
.guidScheduleMg
._meidonfxi
{
.guidScheduleMg
._meidonfxi
{
text-align
:
center
;
text-align
:
center
;
padding
:
25px
0
;
padding
:
25px
0
;
}
}
.guidScheduleMg
._meidonfxi
.iconfont
{
.guidScheduleMg
._meidonfxi
.iconfont
{
display
:
block
;
display
:
block
;
font-size
:
50px
;
font-size
:
50px
;
color
:
#d6d6d6
;
color
:
#d6d6d6
;
}
}
.guidScheduleMg
._meidonfxi
p
{
.guidScheduleMg
._meidonfxi
p
{
color
:
#999999
;
color
:
#999999
;
font-size
:
14px
;
font-size
:
14px
;
}
}
.guidScheduleMg
.el-dialog__header
.el-dialog__title
{
.guidScheduleMg
.el-dialog__header
.el-dialog__title
{
display
:
-webkit-box
;
display
:
-webkit-box
;
-webkit-line-clamp
:
1
;
-webkit-line-clamp
:
1
;
-webkit-box-orient
:
vertical
;
-webkit-box-orient
:
vertical
;
...
@@ -244,44 +288,85 @@
...
@@ -244,44 +288,85 @@
text-overflow
:
ellipsis
;
text-overflow
:
ellipsis
;
max-width
:
80%
;
max-width
:
80%
;
margin
:
0
auto
;
margin
:
0
auto
;
}
}
.guidScheduleMg
.TypeOne
{
.guidScheduleMg
.TypeOne
{
color
:
#47bf8c
;
color
:
#47bf8c
;
}
}
.guidScheduleMg
.TypeTwo
{
.guidScheduleMg
.TypeTwo
{
color
:
#e95252
;
color
:
#e95252
;
}
}
.guidScheduleMg
.typeThree
{
.guidScheduleMg
.typeThree
{
color
:
#666666
;
color
:
#666666
;
}
}
.guidScheduleMg
.leaderName
{
.guidScheduleMg
.leaderName
{
position
:
relative
;
position
:
relative
;
top
:
-10px
;
top
:
-10px
;
left
:
5px
;
left
:
5px
;
}
}
.guidScheduleMg
.headerImg
{
.guidScheduleMg
.headerImg
{
width
:
34px
;
width
:
34px
;
height
:
34px
;
height
:
34px
;
border-radius
:
50%
;
border-radius
:
50%
;
display
:
inline-block
;
display
:
inline-block
;
}
}
.guidScheduleMg
.headerImg
img
{
.guidScheduleMg
.headerImg
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
border-radius
:
50%
;
border-radius
:
50%
;
}
}
.guidScheduleMg
.grayLi
img
{
.guidScheduleMg
.grayLi
img
{
-webkit-filter
:
grayscale
(
1
)
blur
(
10px
)
!important
;
-webkit-filter
:
grayscale
(
1
)
blur
(
10px
)
!important
;
}
}
.guidScheduleMg
._vMG_edit
{
display
:
none
;
position
:
absolute
;
bottom
:
0
;
font-family
:
'PingFangSc-Fine'
;
left
:
0
;
border-top
:
3px
solid
#38425d
;
background-color
:
#fff
;
padding
:
10px
;
width
:
100%
;}
.guidScheduleMg
._vMG_edit
._tit
{
padding-left
:
10px
;
border-left
:
3px
solid
#E95252
;
font-size
:
16px
;
color
:
#000000
}
.guidScheduleMg
._vMG_edit
{
.guidScheduleMg
._vMG_edit
._tit
span
{
color
:
#666666
;
font-size
:
14px
}
display
:
none
;
.guidScheduleMg
._edHeight
{
height
:
400px
;}
position
:
absolute
;
.guidScheduleMg
.edHeight
{
display
:
block
!important
;
height
:
170px
;}
bottom
:
0
;
.guidScheduleMg
.edHeight
form
{
padding-top
:
20px
;}
font-family
:
'PingFangSc-Fine'
;
.guidScheduleMg
._vMG_edit
.el-date-editor.el-input
,
.guidScheduleMg
._vMG_edit
.el-date-editor.el-input__inner
{
left
:
0
;
border-top
:
3px
solid
#38425d
;
background-color
:
#fff
;
padding
:
10px
;
width
:
100%
;
}
.guidScheduleMg
._vMG_edit
._tit
{
padding-left
:
10px
;
border-left
:
3px
solid
#E95252
;
font-size
:
16px
;
color
:
#000000
}
.guidScheduleMg
._vMG_edit
._tit
span
{
color
:
#666666
;
font-size
:
14px
}
.guidScheduleMg
._edHeight
{
height
:
400px
;
}
.guidScheduleMg
.edHeight
{
display
:
block
!important
;
height
:
170px
;
}
.guidScheduleMg
.edHeight
form
{
padding-top
:
20px
;
}
.guidScheduleMg
._vMG_edit
.el-date-editor.el-input
,
.guidScheduleMg
._vMG_edit
.el-date-editor.el-input__inner
{
width
:
100%
!important
;
width
:
100%
!important
;
}
}
</
style
>
</
style
>
<
template
>
<
template
>
<div
class=
"flexOne guidScheduleMg"
>
<div
class=
"flexOne guidScheduleMg"
>
...
@@ -291,10 +376,8 @@
...
@@ -291,10 +376,8 @@
<span>
<span>
<em>
领队/导游
</em>
<em>
领队/导游
</em>
<el-select
v-model=
"msg.LeaderId"
filterable
:placeholder=
"$t('admin.admin_phBirthPlace')"
class=
"w210"
>
<el-select
v-model=
"msg.LeaderId"
filterable
:placeholder=
"$t('admin.admin_phBirthPlace')"
class=
"w210"
>
<el-option
v-for=
'item in leaderList'
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
"0"
>
</el-option>
:key=
"item.ID"
<el-option
v-for=
'item in leaderList'
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
>
:label=
"item.Name"
:value=
"item.ID"
>
</el-option>
</el-option>
</el-select>
</el-select>
</span>
</span>
...
@@ -303,7 +386,7 @@
...
@@ -303,7 +386,7 @@
<span>
<span>
<em>
档期类型
</em>
<em>
档期类型
</em>
<el-select
v-model=
"msg.ScheduleType"
filterable
:placeholder=
"$t('admin.admin_phBirthPlace')"
class=
"w210"
>
<el-select
v-model=
"msg.ScheduleType"
filterable
:placeholder=
"$t('admin.admin_phBirthPlace')"
class=
"w210"
>
<el-option
:label=
"$t('system.ph_buxian')"
value=
'0'
></el-option>
<el-option
:label=
"$t('system.ph_buxian')"
:
value=
'0'
></el-option>
<el-option
label=
"休假"
value=
'1'
></el-option>
<el-option
label=
"休假"
value=
'1'
></el-option>
<el-option
label=
"领队"
value=
'2'
></el-option>
<el-option
label=
"领队"
value=
'2'
></el-option>
<el-option
label=
"领队兼导游"
value=
'3'
></el-option>
<el-option
label=
"领队兼导游"
value=
'3'
></el-option>
...
@@ -314,24 +397,23 @@
...
@@ -314,24 +397,23 @@
<li>
<li>
<span>
<span>
<em>
时间
</em>
<em>
时间
</em>
<el-date-picker
<el-date-picker
v-model=
"msg.YearMonth"
value-format=
"yyyy-MM"
type=
"month"
placeholder=
"选择月"
>
v-model=
"msg.YearMonth"
value-format=
"yyyy-MM"
type=
"month"
placeholder=
"选择月"
>
</el-date-picker>
</el-date-picker>
</span>
</span>
</li>
</li>
<li>
<li>
<input
type=
"button"
class=
"normalBtn"
value=
"新增档期"
@
click=
"addMsg.LeaderId = msg.LeaderId, addShow = true,text='新增',resetForm('addMsg')"
/>
<input
type=
"button"
class=
"normalBtn"
value=
"新增档期"
<input
type=
"button"
class=
"hollowFixedBtn"
:value=
"$t('pub.searchBtn')"
@
click=
"resetPageIndex(),getList()"
/>
@
click=
"addMsg.LeaderId = msg.LeaderId, addShow = true,text='新增',resetForm('addMsg')"
/>
<input
type=
"button"
class=
"hollowFixedBtn"
:value=
"$t('pub.searchBtn')"
@
click=
"resetPageIndex(),getList()"
/>
</li>
</li>
</ul>
</ul>
</div>
</div>
<div
:class=
"addShow==true?'_edHeight':''"
v-loading=
"loading"
>
<div
:class=
"addShow==true?'_edHeight':''"
>
<table
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
class=
"singeRowTable"
style=
"border: 1px solid rgb(230, 230, 230);background: #ccc;width: 100%"
>
<table
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
class=
"singeRowTable"
v-loading=
"loading"
style=
"border: 1px solid rgb(230, 230, 230);background: #ccc;width: 100%"
>
<tr>
<tr>
<th>
领队
姓名
</th>
<th>
领队/导游
姓名
</th>
<th>
开始日期
</th>
<th>
开始日期
</th>
<th>
结束日期
</th>
<th>
结束日期
</th>
<th>
档期类型
</th>
<th>
档期类型
</th>
...
@@ -341,17 +423,15 @@
...
@@ -341,17 +423,15 @@
<th>
操作
</th>
<th>
操作
</th>
</tr>
</tr>
<tr
v-for=
"(item, index) in dataList"
>
<tr
v-for=
"(item, index) in dataList"
>
<td>
{{
item
.
LeaderName
}}
</td>
<td>
{{
item
.
LeaderName
}}
/
{{
item
.
GuideName
}}
</td>
<td>
{{
item
.
StartDate
}}
</td>
<td>
{{
item
.
StartDate
}}
</td>
<td>
{{
item
.
EndDate
}}
</td>
<td>
{{
item
.
EndDate
}}
</td>
<td>
<td>
<span
v-if=
"item.ScheduleType===0"
>
无安排
</span>
<span
v-if=
"item.TypeId===0"
>
系统参团
</span>
<span
v-if=
"item.ScheduleType===1"
>
休假
</span>
<span
v-if=
"item.TypeId===1"
>
休假
</span>
<span
v-if=
"item.ScheduleType===2"
>
领队
</span>
<span
v-if=
"item.ScheduleType===3"
>
领队兼导游
</span>
<span
v-if=
"item.ScheduleType===4"
>
导游
</span>
</td>
</td>
<td><span
style=
"text-decoration: underline;cursor: pointer;color: #3980C8;"
@
click=
"goUrl('productQuery',item.TCID)"
>
{{
item
.
TCID
}}
</span></td>
<td><span
style=
"text-decoration: underline;cursor: pointer;color: #3980C8;"
@
click=
"goUrl('productQuery',item.TCID)"
>
{{
item
.
TCID
}}
</span></td>
<td>
{{
item
.
Remarks
}}
</td>
<td>
{{
item
.
Remarks
}}
</td>
<td>
{{
item
.
OperationName
}}
</td>
<td>
{{
item
.
OperationName
}}
</td>
<td>
<td>
...
@@ -359,7 +439,8 @@
...
@@ -359,7 +439,8 @@
<el-button
type=
"primary"
class=
"iconfont icon-bianji-smal"
circle
@
click=
"editLeader(item)"
></el-button>
<el-button
type=
"primary"
class=
"iconfont icon-bianji-smal"
circle
@
click=
"editLeader(item)"
></el-button>
</el-tooltip>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
>
<el-button
type=
"danger"
class=
"iconfont icon-img_delete_small"
circle
@
click=
"removeLeader(item)"
></el-button>
<el-button
type=
"danger"
class=
"iconfont icon-img_delete_small"
circle
@
click=
"removeLeader(item)"
>
</el-button>
</el-tooltip>
</el-tooltip>
</td>
</td>
</tr>
</tr>
...
@@ -371,8 +452,10 @@
...
@@ -371,8 +452,10 @@
<p
class=
"_tit"
>
{{
text
}}
档期资料
</p>
<p
class=
"_tit"
>
{{
text
}}
档期资料
</p>
</el-col>
</el-col>
<el-col
:span=
"4"
class=
"_add_saveBtn"
>
<el-col
:span=
"4"
class=
"_add_saveBtn"
>
<button
type=
"button"
class=
"normalBtn"
@
click=
"loading ? '' : submitForm('addMsg')"
>
{{
$t
(
'pub.saveBtn'
)
}}
</button>
<button
type=
"button"
class=
"normalBtn"
<button
class=
"hollowFixedBtn"
type=
"button"
@
click=
"resetForm('addMsg'),addShow=false"
>
{{
$t
(
'pub.cancelBtn'
)
}}
</button>
@
click=
"loading ? '' : submitForm('addMsg')"
>
{{
$t
(
'pub.saveBtn'
)
}}
</button>
<button
class=
"hollowFixedBtn"
type=
"button"
@
click=
"resetForm('addMsg'),addShow=false"
>
{{
$t
(
'pub.cancelBtn'
)
}}
</button>
</el-col>
</el-col>
</el-row>
</el-row>
<el-form
class=
" clearfix"
:model=
"addMsg"
ref=
"addMsg"
:rules=
"rules"
label-width=
"100px"
>
<el-form
class=
" clearfix"
:model=
"addMsg"
ref=
"addMsg"
:rules=
"rules"
label-width=
"100px"
>
...
@@ -380,31 +463,21 @@
...
@@ -380,31 +463,21 @@
<el-col
:span=
"4"
>
<el-col
:span=
"4"
>
<el-form-item
label=
"名称:"
prop=
"LeaderId"
>
<el-form-item
label=
"名称:"
prop=
"LeaderId"
>
<el-select
v-model=
"addMsg.LeaderId"
filterable
:placeholder=
"$t('admin.admin_phBirthPlace')"
>
<el-select
v-model=
"addMsg.LeaderId"
filterable
:placeholder=
"$t('admin.admin_phBirthPlace')"
>
<el-option
v-for=
'item in leaderList'
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
"0"
>
</el-option>
:key=
"item.ID"
<el-option
v-for=
'item in leaderList'
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
>
:label=
"item.Name"
:value=
"item.ID"
>
</el-option>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"4"
>
<el-col
:span=
"4"
>
<el-form-item
label=
"开始时间:"
prop=
"sDate"
>
<el-form-item
label=
"开始时间:"
prop=
"sDate"
>
<el-date-picker
<el-date-picker
v-model=
"addMsg.StartDate"
type=
"date"
placeholder=
"请选择"
value-format=
"yyyy-MM-dd"
>
v-model=
"addMsg.StartDate"
type=
"date"
placeholder=
"请选择"
value-format=
"yyyy-MM-dd"
>
</el-date-picker>
</el-date-picker>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"4"
>
<el-col
:span=
"4"
>
<el-form-item
label=
"结束时间:"
prop=
"eDate"
>
<el-form-item
label=
"结束时间:"
prop=
"eDate"
>
<el-date-picker
<el-date-picker
v-model=
"addMsg.EndDate"
type=
"date"
placeholder=
"请选择"
value-format=
"yyyy-MM-dd"
>
v-model=
"addMsg.EndDate"
type=
"date"
placeholder=
"请选择"
value-format=
"yyyy-MM-dd"
>
</el-date-picker>
</el-date-picker>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
...
@@ -419,35 +492,36 @@
...
@@ -419,35 +492,36 @@
<div
class=
"noData"
v-show=
"noData"
>
<div
class=
"noData"
v-show=
"noData"
>
{{
$t
(
'system.content_noData'
)
}}
{{
$t
(
'system.content_noData'
)
}}
</div>
</div>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"currentPage"
layout=
"total,prev, pager, next, jumper"
:page-size=
msg.pageSize
:total=
total
>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"currentPage"
layout=
"total,prev, pager, next, jumper"
:page-size=
"msg.pageSize"
:total=
"total"
>
</el-pagination>
</el-pagination>
<el-dialog
custom-class=
'ComTeamPlan_info_box'
:title=
"tripTitle"
:visible
.
sync=
"outerVisible"
center
>
<el-dialog
custom-class=
'ComTeamPlan_info_box'
:title=
"tripTitle"
:visible
.
sync=
"outerVisible"
center
>
<commonTeamInfo
ref=
"comTeam"
></commonTeamInfo>
<commonTeamInfo
ref=
"comTeam"
></commonTeamInfo>
</el-dialog>
</el-dialog>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
commonTeamInfo
from
"../commonPage/commonTeamInfo.vue"
;
import
commonTeamInfo
from
"../commonPage/commonTeamInfo.vue"
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
msg
:
{
msg
:
{
pageIndex
:
1
,
pageIndex
:
1
,
pageSize
:
10
,
pageSize
:
10
,
LeaderId
:
"0"
,
LeaderId
:
0
,
ScheduleType
:
"0"
,
ScheduleType
:
0
,
YearMonth
:
""
,
YearMonth
:
""
,
TCID
:
0
,
TCID
:
0
,
},
},
addMsg
:
{
addMsg
:
{
LeaderId
:
''
,
LeaderId
:
0
,
StartDate
:
''
,
StartDate
:
''
,
EndDate
:
''
,
EndDate
:
''
,
Remarks
:
''
,
Remarks
:
''
,
},
},
LeaderName
:
""
,
LeaderName
:
""
,
EmPhoto
:
""
,
EmPhoto
:
""
,
TripList
:
""
,
TripList
:
""
,
dataList
:
""
,
dataList
:
""
,
total
:
0
,
total
:
0
,
...
@@ -457,25 +531,33 @@ export default {
...
@@ -457,25 +531,33 @@ export default {
outerVisible
:
false
,
outerVisible
:
false
,
addShow
:
false
,
addShow
:
false
,
tripTitle
:
""
,
tripTitle
:
""
,
leaderList
:[],
leaderList
:
[],
text
:
''
,
text
:
''
,
rules
:
{
//表单必填验证
rules
:
{
//表单必填验证
LeaderId
:
[
LeaderId
:
[{
{
required
:
true
,
message
:
'请填写领队名称'
,
trigger
:
'blur'
}
required
:
true
,
],
message
:
'请填写领队名称'
,
StartDate
:
[
trigger
:
'blur'
{
type
:
'date'
,
required
:
true
,
message
:
'请选择开始时间'
,
trigger
:
'change'
}
}],
],
StartDate
:
[{
EndDate
:
[
type
:
'date'
,
{
type
:
'date'
,
required
:
true
,
message
:
'请选择结束时间'
,
trigger
:
'change'
}
required
:
true
,
],
message
:
'请选择开始时间'
,
trigger
:
'change'
}],
EndDate
:
[{
type
:
'date'
,
required
:
true
,
message
:
'请选择结束时间'
,
trigger
:
'change'
}],
},
},
};
};
},
},
created
()
{
created
()
{
let
date
=
new
Date
();
let
date
=
new
Date
();
let
year
=
date
.
getFullYear
();
let
year
=
date
.
getFullYear
();
let
month
=
date
.
getMonth
()
<
10
?
(
'0'
+
(
date
.
getMonth
()
+
1
))
:
date
.
getMonth
()
+
1
;
let
month
=
date
.
getMonth
()
<
10
?
(
'0'
+
(
date
.
getMonth
()
+
1
))
:
date
.
getMonth
()
+
1
;
this
.
msg
.
YearMonth
=
year
+
'-'
+
month
;
this
.
msg
.
YearMonth
=
year
+
'-'
+
month
;
},
},
components
:
{
components
:
{
...
@@ -483,17 +565,26 @@ export default {
...
@@ -483,17 +565,26 @@ export default {
},
},
methods
:
{
methods
:
{
goUrl
:
function
(
path
,
id
)
{
// 页面跳转
goUrl
:
function
(
path
,
id
)
{
// 页面跳转
this
.
$router
.
push
({
path
:
path
,
query
:{
TCIDList
:
id
,
blank
:
'y'
,
isShow
:
false
}})
this
.
$router
.
push
({
path
:
path
,
query
:
{
TCIDList
:
id
,
blank
:
'y'
,
isShow
:
false
}
})
},
},
removeLeader
:
function
(
obj
)
{
// 删除安排
removeLeader
:
function
(
obj
)
{
// 删除安排
if
(
obj
.
ScheduleType
===
1
)
{
if
(
obj
.
ScheduleType
===
1
)
{
this
.
$confirm
(
'是否删除“'
+
obj
.
LeaderName
+
'”的休假安排?'
,
'提示'
,
{
this
.
$confirm
(
'是否删除“'
+
obj
.
LeaderName
+
'”的休假安排?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
type
:
'warning'
}).
then
(()
=>
{
}).
then
(()
=>
{
this
.
apipost
(
'LeaderSchedule_post_RemoveHoliday'
,
{
Id
:
obj
.
Id
},
res
=>
{
this
.
apipost
(
'LeaderSchedule_post_RemoveHoliday'
,
{
if
(
res
.
data
.
resultCode
===
1
)
{
Id
:
obj
.
Id
},
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
getList
();
this
.
getList
();
}
else
{
}
else
{
...
@@ -512,14 +603,14 @@ export default {
...
@@ -512,14 +603,14 @@ export default {
},
},
editLeader
:
function
(
obj
)
{
// 修改
editLeader
:
function
(
obj
)
{
// 修改
if
(
obj
.
ScheduleType
===
1
)
{
if
(
obj
.
ScheduleType
===
1
)
{
this
.
text
=
'修改'
;
this
.
text
=
'修改'
;
this
.
addMsg
=
JSON
.
parse
(
JSON
.
stringify
(
obj
));
this
.
addMsg
=
JSON
.
parse
(
JSON
.
stringify
(
obj
));
this
.
addShow
=
true
;
this
.
addShow
=
true
;
}
else
{
}
else
{
this
.
$message
.
error
(
'系统参团安排,请联系合作专线人员,凭团号,在报名清单处协助处理!'
)
this
.
$message
.
error
(
'系统参团安排,请联系合作专线人员,凭团号,在报名清单处协助处理!'
)
}
}
},
},
submitForm
:
function
(
addMsg
)
{
//提交创建、修改表单
submitForm
:
function
(
addMsg
)
{
//提交创建、修改表单
let
that
=
this
;
let
that
=
this
;
that
.
$refs
[
addMsg
].
validate
((
valid
)
=>
{
that
.
$refs
[
addMsg
].
validate
((
valid
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
...
@@ -530,10 +621,10 @@ export default {
...
@@ -530,10 +621,10 @@ export default {
}
}
});
});
},
},
resetForm
:
function
(
formName
)
{
//弹出框取消 初始化谈框内表单
resetForm
:
function
(
formName
)
{
//弹出框取消 初始化谈框内表单
this
.
$refs
[
formName
].
resetFields
();
this
.
$refs
[
formName
].
resetFields
();
this
.
addMsg
=
{
this
.
addMsg
=
{
LeaderId
:
this
.
msg
.
LeaderId
,
LeaderId
:
0
,
StartDate
:
''
,
StartDate
:
''
,
EndDate
:
''
,
EndDate
:
''
,
Remarks
:
''
,
Remarks
:
''
,
...
@@ -541,8 +632,8 @@ export default {
...
@@ -541,8 +632,8 @@ export default {
},
},
addDC
:
function
()
{
// 保存数据
addDC
:
function
()
{
// 保存数据
this
.
loading
=
true
;
this
.
loading
=
true
;
this
.
apipost
(
'LeaderSchedule_post_SetHolidaySchedule'
,
this
.
addMsg
,
res
=>
{
this
.
apipost
(
'LeaderSchedule_post_SetHolidaySchedule'
,
this
.
addMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
getList
();
this
.
getList
();
this
.
addShow
=
false
;
this
.
addShow
=
false
;
...
@@ -553,54 +644,55 @@ export default {
...
@@ -553,54 +644,55 @@ export default {
},
null
)
},
null
)
},
},
getLeaderList
:
function
()
{
// 获取领队下拉列表
getLeaderList
:
function
()
{
// 获取领队下拉列表
this
.
apipost
(
'leader_post_GetList'
,
{
Type
:
0
},
res
=>
{
this
.
apipost
(
'leader_post_GetList'
,
{
if
(
res
.
data
.
resultCode
===
1
)
{
Type
:
0
},
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
leaderList
=
res
.
data
.
data
;
this
.
leaderList
=
res
.
data
.
data
;
this
.
msg
.
LeaderId
=
this
.
addMsg
.
LeaderId
=
this
.
leaderList
[
0
].
ID
;
this
.
getList
();
this
.
getList
();
}
else
{
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
this
.
$message
.
error
(
res
.
data
.
message
);
}
}
},
null
)
},
null
)
},
},
getList
:
function
()
{
// 获取数据列表
getList
:
function
()
{
// 获取数据列表
this
.
loading
=
true
;
this
.
loading
=
true
;
//获取列表数据
//获取列表数据
this
.
apipost
(
this
.
apipost
(
"LeaderSchedule_post_GetLeaderGuideSchedulePageList"
,
"LeaderSchedule_post_GetLeaderGuideSchedulePageList"
,
this
.
msg
,
this
.
msg
,
res
=>
{
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
LeaderName
=
res
.
data
.
data
.
pageData
.
LeaderName
;
this
.
LeaderName
=
res
.
data
.
data
.
pageData
.
LeaderName
;
this
.
EmPhoto
=
res
.
data
.
data
.
pageData
.
EmPhoto
;
this
.
EmPhoto
=
res
.
data
.
data
.
pageData
.
EmPhoto
;
this
.
total
=
res
.
data
.
data
.
count
;
this
.
total
=
res
.
data
.
data
.
count
;
this
.
dataList
=
res
.
data
.
data
.
pageData
;
this
.
dataList
=
res
.
data
.
data
.
pageData
;
this
.
noData
=
!
this
.
total
>
0
;
this
.
noData
=
!
this
.
total
>
0
;
}
else
{
}
else
{
this
.
Error
(
res
.
data
.
message
);
this
.
Error
(
res
.
data
.
message
);
}
}
this
.
loading
=
false
;
},
},
err
=>
{}
err
=>
{}
);
);
},
},
resetPageIndex
:
function
()
{
resetPageIndex
:
function
()
{
//查询初始化页码
//查询初始化页码
this
.
msg
.
pageIndex
=
1
;
this
.
msg
.
pageIndex
=
1
;
this
.
currentPage
=
1
;
this
.
currentPage
=
1
;
},
},
handleCurrentChange
:
function
(
val
)
{
handleCurrentChange
:
function
(
val
)
{
//翻页功能按钮
//翻页功能按钮
this
.
msg
.
pageIndex
=
val
;
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
this
.
getList
();
}
}
},
},
mounted
()
{
mounted
()
{
if
(
this
.
$route
.
query
.
TCID
)
if
(
this
.
$route
.
query
.
TCID
)
{
{
this
.
msg
.
TCID
=
this
.
$route
.
query
.
TCID
;
this
.
msg
.
TCID
=
this
.
$route
.
query
.
TCID
;
}
}
this
.
getLeaderList
();
this
.
getLeaderList
();
}
}
};
};
</
script
>
</
script
>
src/components/commonPage/comCheckHotelV2.vue
0 → 100644
View file @
9d848171
<!--第三方酒店信息-->
<
style
>
.comCheckHotelV2
.comCheckHotelV2
{
width
:
100%
;
height
:
150px
;
overflow
:
auto
}
.comCheckHotelV2
.comCk_list
{
padding
:
0
20px
;
margin
:
0
15px
5px
0
;
}
.comCheckHotelV2
.cm_Inventory
{
margin-left
:
20px
;
color
:
red
;
display
:
inline-block
;
}
.comCheckHotelV2
.cm_hotelTitle
{
width
:
100%
;
text-align
:
center
;
margin-bottom
:
20px
;
border-bottom
:
1px
solid
#d1d1d1
;
padding
:
0
20px
10px
20px
;
}
.comCheckHotelV2
.com_SaveBtn
{
margin
:
10px
20px
0
45%
;
}
.comCheckHotelV2
.ckedList
{
background-color
:
#E95252
;
color
:
#fff
;
}
.comCheckHotelV2
.Ck_hotelInfo
{
width
:
100%
;
height
:
40px
;
background-color
:
#F6F8FB
;
text-align
:
center
;
line-height
:
40px
;
margin-bottom
:
10px
;
}
.comCheckHotelV2
.ck_goUrl
{
color
:
blue
;
cursor
:
pointer
;
margin-left
:
10px
;
}
.comCheckHotelV2
.tdLeft
{
text-align
:
left
;
}
.comCheckHotelV2
.tdRight
{
text-align
:
right
;
}
</
style
>
<
template
>
<div
class=
"comCheckHotelV2"
>
<div
class=
"Ck_hotelInfo"
>
酒店库存信息
</div>
<div
class=
"cm_hotelTitle clearfix"
>
<table>
<tr>
<td
class=
"tdRight"
>
类型:
</td>
<td
class=
"tdLeft"
>
<el-select
filterable
v-model=
"qHotelType"
class=
"w120"
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
label=
"地接酒店"
:value=
'1'
></el-option>
<el-option
label=
"第三方酒店"
:value=
'2'
></el-option>
</el-select>
</td>
<td
class=
"tdRight"
>
地区:
</td>
<td
colspan=
"2"
class=
"tdLeft"
>
<el-select
filterable
v-model=
"qMsg.ProvinceId"
class=
"w120"
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
label=
"不限"
:value=
'0'
></el-option>
<el-option
v-for=
"item in ProvinceList"
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-select>
</td>
</tr>
<tr>
<td
class=
"tdRight"
>
入住时间:
</td>
<td
class=
"tdLeft"
>
<el-date-picker
v-model=
'qMsg.UseDate'
class=
"w120"
value-format=
"yyyy-MM-dd"
type=
"date"
placeholder=
"入住时间"
>
</el-date-picker>
</td>
<td
class=
"tdRight"
>
酒店名称/电话:
</td>
<td
class=
"tdLeft"
>
<el-input
type=
"text"
v-model=
"qMsg.Name"
class=
"w120"
@
keyup
.
native
.
enter=
"getCheckHotel()"
placeholder=
"酒店名称或电话"
></el-input>
</td>
<td>
<input
type=
"button"
class=
"normalBtn"
value=
"查询"
@
click=
"getCheckHotel()"
/>
</td>
</tr>
</table>
</div>
<div>
<el-tabs
type=
"border-card"
v-loading=
"loading"
v-if=
"IsShow"
>
<el-tab-pane
:label=
"item.ProvinceName"
v-for=
"(item,index) in dataList"
:key=
"item.subCode"
>
<div
class=
"clearfix comCheckHotelV2"
>
<div
class=
"comCk_list"
v-for=
"(subItem,subIndex) in item.HotelList"
>
<input
:id=
"'H'+index+'_'+subIndex"
type=
"checkbox"
v-model=
"subItem.isChecked"
@
click=
"getCheck(item.HotelList,subIndex)"
/>
<label
:for=
"'H'+index+'_'+subIndex"
style=
"cursor: pointer"
>
{{
subItem
.
Name
}}
</label>
<span
class=
"cm_Inventory"
>
{{
subItem
.
Inventory
}}
</span>
<span
class=
"cm_Inventory"
>
剩余:
{{
subItem
.
RemainingInventory
}}
</span>
<span
class=
"ck_goUrl"
@
click=
"goUrl(subItem.ID)"
>
新增库存
</span>
</div>
</div>
</el-tab-pane>
</el-tabs>
</div>
<input
type=
"button"
class=
"normalBtn com_SaveBtn"
@
click=
"sendCkedHotel()"
value=
"保存"
/>
</div>
</
template
>
<
script
>
export
default
{
props
:
[
""
],
data
()
{
return
{
loading
:
false
,
dataList
:
[],
ProvinceList
:
[],
qHotelType
:
1
,
//酒店查询类型
qMsg
:
{
ProvinceId
:
0
,
//选择个省份编号
Name
:
""
,
//酒店名称
UseDate
:
""
,
//入住时间
},
IsShow
:
false
,
ckedHotel
:
{}
};
},
methods
:
{
getCheckHotel
()
{
this
.
loading
=
true
;
this
.
IsShow
=
false
;
this
.
dataList
=
[];
this
.
HotelList
=
[];
//地接酒店
if
(
this
.
qHotelType
==
1
)
{
this
.
apipost
(
'hotel_post_GetHasStockHotelList_V2'
,
{
//1-只查询有库存的酒店
IsMoreThanZero
:
0
,
Country
:
"651"
,
IsAllHotel
:
1
,
Province
:
this
.
qMsg
.
ProvinceId
,
Name
:
this
.
qMsg
.
Name
,
sDate
:
this
.
qMsg
.
UseDate
},
res
=>
{
this
.
loading
=
false
;
this
.
IsShow
=
true
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
dataList
=
res
.
data
.
data
;
this
.
dataList
.
forEach
(
x
=>
{
x
.
HotelList
.
forEach
(
y
=>
{
y
.
isChecked
=
false
;
})
})
}
else
{
this
.
Error
(
res
.
data
.
message
)
}
},
err
=>
{})
}
//第三方酒店
else
{
var
nQMsg
=
{
displayFrom
:
"1"
,
//当前页
numberOfResults
:
"10"
,
//每页条数
arrivalDate
:
this
.
qMsg
.
UseDate
,
//入住时间
departureDate
:
""
,
//离店时间
//房间信息列表
searchroomGroup
:
{
numberOfAdults
:
2
,
//大人数,
numberOfChildren
:
0
,
//儿童数
childAges
:
0
,
//儿童年龄
},
searchHotelIdList
:[],
//酒店id,[1,2,3]
freeword
:
this
.
qMsg
.
Name
,
//关键字
//类型 1,地区,2-酒店名称
freewordType
:
0
,
reviewRatingUpperLimits
:
0
,
//指定评论分数的上限
reviewRatingLowerLimits
:
0
,
//指定评论分数的下限
searchHotelCategory
:[],
//酒店分类
searchHotelFeatures
:[],
//酒店的特征
searchRoomType
:[],
//类型的房间
searchMealType
:[],
//饮食条件搜索
searchMinRate
:
0
,
//検索最小金額,
searchMinRate
:
100000
,
//検索最大金額
sort
:
0
,
//排序
};
if
(
nQMsg
.
arrivalDate
==
""
)
{
this
.
Info
(
"请选择入住时间!"
);
return
;
}
else
{
nQMsg
.
departureDate
=
this
.
$commonUtils
.
AddDay
(
nQMsg
.
arrivalDate
,
1
);
}
if
(
nQMsg
.
freeword
!=
""
)
{
nQMsg
.
freewordType
=
1
;
}
else
{
nQMsg
.
freewordType
=
2
;
nQMsg
.
freeword
=
""
;
}
console
.
log
(
"nQMsg"
,
nQMsg
);
//多了一个参数调用线上的就酒店数据
this
.
apipost
(
'dmc_post_Get_GetJAPAN_HotelList'
,
nQMsg
,
res
=>
{
this
.
loading
=
false
;
this
.
IsShow
=
true
;
if
(
res
.
data
.
resultCode
==
1
)
{
console
.
log
(
"res.data"
,
res
.
data
);
}
else
{
this
.
Error
(
res
.
data
.
message
)
}
},
err
=>
{},
true
)
}
},
getCheck
(
hotelList
,
index
)
{
hotelList
.
forEach
((
x
,
subIndex
)
=>
{
if
(
index
==
subIndex
)
{
x
.
isChecked
=
!
x
.
isChecked
;
this
.
ckedHotel
=
x
;
}
else
{
x
.
isChecked
=
false
;
}
})
this
.
$forceUpdate
();
},
//向父组件传递选中酒店
sendCkedHotel
()
{
var
ckHotelObj
=
{};
if
(
this
.
ckedHotel
)
{
ckHotelObj
.
ID
=
this
.
ckedHotel
.
ID
;
ckHotelObj
.
Address
=
this
.
ckedHotel
.
Address
;
ckHotelObj
.
Inventory
=
this
.
ckedHotel
.
Inventory
;
ckHotelObj
.
Name
=
this
.
ckedHotel
.
Name
;
ckHotelObj
.
PayStyle
=
this
.
ckedHotel
.
PayStyle
;
ckHotelObj
.
Tel
=
this
.
ckedHotel
.
Tel
;
ckHotelObj
.
RebateRatio
=
this
.
ckedHotel
.
RebateRatio
;
ckHotelObj
.
RebateCount
=
this
.
ckedHotel
.
RebateCount
;
ckHotelObj
.
CostPrice
=
this
.
ckedHotel
.
CostPrice
;
}
this
.
$emit
(
"childHotel"
,
ckHotelObj
);
},
//获取日本下面的市->下拉框用
getProvinceList
()
{
let
msg
=
{
Id
:
651
};
this
.
apipost
(
"dict_post_Destination_GetChildList"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
ProvinceList
=
res
.
data
.
data
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
goUrl
(
ID
)
{
this
.
$router
.
push
({
path
:
'HotelProductManage2'
,
query
:
{
id
:
ID
,
Country
:
651
,
IsSelfBook
:
1
,
blank
:
'y'
,
tab
:
'报价详情'
}
});
}
},
mounted
()
{
this
.
getProvinceList
();
}
};
</
script
>
src/components/newTravelmanager/oldTravelGroupControl/TravelDaysTrip_Direct.vue
View file @
9d848171
...
@@ -109,10 +109,13 @@
...
@@ -109,10 +109,13 @@
<span
v-if=
"IsDirect==1"
>
<span
v-if=
"IsDirect==1"
>
<hotelTrip
v-bind:subItemObj=
"subItem"
v-bind:DefaultList=
"hotelSameList"
v-bind:subIndex=
"subIndex"
<hotelTrip
v-bind:subItemObj=
"subItem"
v-bind:DefaultList=
"hotelSameList"
v-bind:subIndex=
"subIndex"
v-bind:DinnerList=
"DinnerList"
v-bind:index=
"index"
:isOpenGroup=
"isOpenGroup"
v-bind:DinnerList=
"DinnerList"
v-bind:index=
"index"
:isOpenGroup=
"isOpenGroup"
v-bind:subTotalIndex=
"item.dayArray.length"
></hotelTrip>
v-bind:subTotalIndex=
"item.dayArray.length"
></hotelTrip>
<hotelTripV2
v-bind:subItemObj=
"subItem"
v-bind:DefaultList=
"hotelSameList"
v-bind:subIndex=
"subIndex"
v-bind:DinnerList=
"DinnerList"
v-bind:index=
"index"
:isOpenGroup=
"isOpenGroup"
v-bind:subTotalIndex=
"item.dayArray.length"
style=
"display:none;"
></hotelTripV2>
</span>
</span>
<span
v-else
>
<span
v-else
>
</span>
</span>
</div>
</div>
<div
v-if=
"subItem.Type==$tripUtils.TypeKey.scenic"
>
<div
v-if=
"subItem.Type==$tripUtils.TypeKey.scenic"
>
...
@@ -120,7 +123,6 @@
...
@@ -120,7 +123,6 @@
<scienTrip
v-bind:subItemObj=
"subItem"
v-bind:DefaultList=
"scenicSameList"
v-bind:subIndex=
"subIndex"
<scienTrip
v-bind:subItemObj=
"subItem"
v-bind:DefaultList=
"scenicSameList"
v-bind:subIndex=
"subIndex"
v-bind:index=
"index"
:isOpenGroup=
"isOpenGroup"
v-bind:subTotalIndex=
"item.dayArray.length"
></scienTrip>
v-bind:index=
"index"
:isOpenGroup=
"isOpenGroup"
v-bind:subTotalIndex=
"item.dayArray.length"
></scienTrip>
</span>
</span>
</div>
</div>
<div
v-if=
"subItem.Type==$tripUtils.TypeKey.dinner"
>
<div
v-if=
"subItem.Type==$tripUtils.TypeKey.dinner"
>
<span
v-if=
"IsDirect==1"
>
<span
v-if=
"IsDirect==1"
>
...
@@ -163,6 +165,7 @@
...
@@ -163,6 +165,7 @@
import
trifficTrip
from
"../oldTravelGroupControl/trifficTrip"
;
import
trifficTrip
from
"../oldTravelGroupControl/trifficTrip"
;
import
scienTrip
from
"../oldTravelGroupControl/scienTrip_Direct"
;
import
scienTrip
from
"../oldTravelGroupControl/scienTrip_Direct"
;
import
hotelTrip
from
"../oldTravelGroupControl/hotelTrip_Direct"
;
import
hotelTrip
from
"../oldTravelGroupControl/hotelTrip_Direct"
;
import
hotelTripV2
from
"../oldTravelGroupControl/hotelTrip_Direct_V2"
;
import
dinnerTrip
from
"../oldTravelGroupControl/dinnerTrip_Direct"
;
import
dinnerTrip
from
"../oldTravelGroupControl/dinnerTrip_Direct"
;
import
freedomTrip
from
"../oldTravelGroupControl/freedomTrip"
;
import
freedomTrip
from
"../oldTravelGroupControl/freedomTrip"
;
import
warmtipTrip
from
"../oldTravelGroupControl/warmtipTrip"
;
import
warmtipTrip
from
"../oldTravelGroupControl/warmtipTrip"
;
...
@@ -270,16 +273,10 @@ export default {
...
@@ -270,16 +273,10 @@ export default {
},
},
components
:
{
components
:
{
trifficTrip
:
trifficTrip
,
trifficTrip
:
trifficTrip
,
scienTrip
:
scienTrip
,
scienTrip
:
scienTrip
,
hotelTrip
:
hotelTrip
,
hotelTrip
:
hotelTrip
,
hotelTripV2
:
hotelTripV2
,
dinnerTrip
:
dinnerTrip
,
dinnerTrip
:
dinnerTrip
,
freedomTrip
:
freedomTrip
,
freedomTrip
:
freedomTrip
,
warmtipTrip
:
warmtipTrip
,
warmtipTrip
:
warmtipTrip
,
titleTrip
:
titleTrip
titleTrip
:
titleTrip
...
...
src/components/newTravelmanager/oldTravelGroupControl/dinnerTrip_Direct.vue
View file @
9d848171
...
@@ -15,7 +15,8 @@
...
@@ -15,7 +15,8 @@
<el-tooltip
class=
"item"
effect=
"dark"
content=
"上移"
placement=
"top-start"
v-if=
"subIndex!=0&&!isOpenGroup"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"上移"
placement=
"top-start"
v-if=
"subIndex!=0&&!isOpenGroup"
>
<i
class=
"iconfont icon-shangyi"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,0)"
></i>
<i
class=
"iconfont icon-shangyi"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,0)"
></i>
</el-tooltip>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"下移"
placement=
"top-start"
v-if=
"subIndex!=subTotalIndex-1&&!isOpenGroup"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"下移"
placement=
"top-start"
v-if=
"subIndex!=subTotalIndex-1&&!isOpenGroup"
>
<i
class=
"iconfont icon-xiayi1"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,1)"
></i>
<i
class=
"iconfont icon-xiayi1"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,1)"
></i>
</el-tooltip>
</el-tooltip>
</div>
</div>
...
@@ -23,30 +24,24 @@
...
@@ -23,30 +24,24 @@
<div
class=
"TDLeftPlan"
>
<div
class=
"TDLeftPlan"
>
<span
style=
"margin-left:26px;"
>
餐厅
</span>
<span
style=
"margin-left:26px;"
>
餐厅
</span>
<span>
<span>
<el-form-item
:prop=
"'DayList.'+index+'.dayArray.'+subIndex+'.childItem.DinnerId'"
:rules=
"dinnerTripRules.DinnerId"
>
<el-form-item
:prop=
"'DayList.'+index+'.dayArray.'+subIndex+'.childItem.DinnerId'"
<el-select
:disabled=
"isOpenGroup"
class=
'w160'
:placeholder=
"$t('pub.pleaseSel')"
filterable
v-model=
"subItemObj.childItem.DinnerId"
:rules=
"dinnerTripRules.DinnerId"
>
@
visible-change=
"getDinnerList($event)"
@
change=
"changeDinnerList()"
>
<el-select
:disabled=
"isOpenGroup"
class=
'w160'
:placeholder=
"$t('pub.pleaseSel')"
filterable
v-model=
"subItemObj.childItem.DinnerId"
@
visible-change=
"getDinnerList($event)"
@
change=
"changeDinnerList()"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'Diner.DefaultSelectValue'
></el-option>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'Diner.DefaultSelectValue'
></el-option>
<el-option
v-for=
"item in QDinnerList"
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
<el-option
v-for=
"item in QDinnerList"
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</span>
</span>
<!--
<span
class=
"comTravelLeft"
>
套餐
</span>
<span>
<el-select
:disabled=
"isOpenGroup"
class=
'w160'
:placeholder=
"$t('pub.pleaseSel')"
filterable
v-model=
"subItemObj.childItem.MealId"
@
visible-change=
"getDinnerMealList($event)"
@
change=
"changeDinnerMealList()"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'Diner.DefaultSelectValue'
></el-option>
<el-option
v-for=
"item in QDinnerMealList"
:label=
'item.MealName'
:value=
'item.Id'
:key=
'item.Id'
>
</el-option>
</el-select>
</span>
-->
</div>
</div>
<div
class=
"TDmealTime"
>
<div
class=
"TDmealTime"
>
<label
class=
"TDhotelDiner"
>
用餐时段
</label>
<label
class=
"TDhotelDiner"
>
用餐时段
</label>
<el-checkbox-group
v-model=
"Diner.UseDinerCked"
>
<el-checkbox-group
v-model=
"Diner.UseDinerCked"
>
<el-checkbox
v-for=
"item in Diner.UseDinnerType"
style=
"margin-left:5px;"
:disabled=
"isOpenGroup||!varCanChecked(item)"
:label=
"item.Id"
<el-checkbox
v-for=
"item in Diner.UseDinnerType"
style=
"margin-left:5px;"
:key=
'item.Id'
>
{{
item
.
Name
}}
</el-checkbox>
:disabled=
"isOpenGroup||!varCanChecked(item)"
:label=
"item.Id"
:key=
'item.Id'
>
{{
item
.
Name
}}
</el-checkbox>
</el-checkbox-group>
</el-checkbox-group>
<span
class=
"comTravelLeft"
>
用餐时间
</span>
<span
class=
"comTravelLeft"
>
用餐时间
</span>
<el-input
:disabled=
"isOpenGroup"
type=
"text"
class=
"w60"
v-model=
"subItemObj.childItem.UseTimeHour"
<el-input
:disabled=
"isOpenGroup"
type=
"text"
class=
"w60"
v-model=
"subItemObj.childItem.UseTimeHour"
...
@@ -57,8 +52,9 @@
...
@@ -57,8 +52,9 @@
</div>
</div>
</div>
</div>
<div
class=
"TP_edit"
>
<div
class=
"TP_edit"
>
<my-edit
v-if=
"isShowEdit"
v-on:edit-value=
"subItemObj.childItem.Description = arguments[0]"
v-bind:editValue=
"subItemObj.childItem.Description"
<my-edit
v-if=
"isShowEdit"
v-on:edit-value=
"subItemObj.childItem.Description = arguments[0]"
v-bind:toolbarShow=
"toolbar"
v-bind:referenceList=
"DefaultList"
v-bind:placeholder=
"placeholder"
></my-edit>
v-bind:editValue=
"subItemObj.childItem.Description"
v-bind:toolbarShow=
"toolbar"
v-bind:referenceList=
"DefaultList"
v-bind:placeholder=
"placeholder"
></my-edit>
</div>
</div>
<div
class=
"SiencDiv clearfix"
>
<div
class=
"SiencDiv clearfix"
>
<div
class=
"ScLeftImg"
>
<div
class=
"ScLeftImg"
>
...
@@ -67,16 +63,20 @@
...
@@ -67,16 +63,20 @@
<img
v-else
:src=
"item.Url"
/>
<img
v-else
:src=
"item.Url"
/>
<div
class=
"imgzhe"
@
click=
"getPic(subItemObj.childItem.ImaArray,index)"
>
<div
class=
"imgzhe"
@
click=
"getPic(subItemObj.childItem.ImaArray,index)"
>
<div
class=
"clearfix"
style=
"text-align:center;"
>
<div
class=
"clearfix"
style=
"text-align:center;"
>
<div
class=
"re-delte"
@
click
.
stop=
"delImg(index,subItemObj)"
><i
class=
"iconfont icon-xingzhuang"
></i></div>
<div
class=
"re-delte"
@
click
.
stop=
"delImg(index,subItemObj)"
><i
class=
"iconfont icon-xingzhuang"
></i>
<div
class=
"re-delte"
@
click
.
stop=
"toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,0)"
v-if=
"index!=0"
><i
class=
"iconfont icon-zuoyi"
></i></div>
</div>
<div
class=
"re-delte"
@
click
.
stop=
"toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,1)"
v-if=
"index!=subItemObj.childItem.ImaArray.length-1"
><i
class=
"iconfont icon-youyi"
></i></div>
<div
class=
"re-delte"
@
click
.
stop=
"toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,0)"
v-if=
"index!=0"
><i
class=
"iconfont icon-zuoyi"
></i></div>
<div
class=
"re-delte"
@
click
.
stop=
"toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,1)"
v-if=
"index!=subItemObj.childItem.ImaArray.length-1"
><i
class=
"iconfont icon-youyi"
></i></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"rightAddImg"
>
<div
class=
"rightAddImg"
>
<el-upload
:file-list=
"subItemObj.childItem.ImaArray"
:http-request=
"uploadScenImg"
:data=
"subItemObj.childItem"
<el-upload
:file-list=
"subItemObj.childItem.ImaArray"
:http-request=
"uploadScenImg"
:multiple=
"true"
accept=
"image/jpeg,image/gif,image/png,image/bmp"
:show-file-list=
"false"
action=
""
>
:data=
"subItemObj.childItem"
:multiple=
"true"
accept=
"image/jpeg,image/gif,image/png,image/bmp"
:show-file-list=
"false"
action=
""
>
<i
class=
"iconfont icon-img_haha"
></i>
<i
class=
"iconfont icon-img_haha"
></i>
</el-upload>
</el-upload>
</div>
</div>
...
@@ -98,7 +98,8 @@
...
@@ -98,7 +98,8 @@
<el-tooltip
class=
"item"
effect=
"dark"
content=
"上移"
placement=
"top-start"
v-if=
"subIndex!=0&&!isOpenGroup"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"上移"
placement=
"top-start"
v-if=
"subIndex!=0&&!isOpenGroup"
>
<i
class=
"iconfont icon-shangyi"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,0)"
></i>
<i
class=
"iconfont icon-shangyi"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,0)"
></i>
</el-tooltip>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"下移"
placement=
"top-start"
v-if=
"subIndex!=subTotalIndex-1&&!isOpenGroup"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"下移"
placement=
"top-start"
v-if=
"subIndex!=subTotalIndex-1&&!isOpenGroup"
>
<i
class=
"iconfont icon-xiayi1"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,1)"
></i>
<i
class=
"iconfont icon-xiayi1"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,1)"
></i>
</el-tooltip>
</el-tooltip>
</div>
</div>
...
@@ -124,21 +125,22 @@
...
@@ -124,21 +125,22 @@
</div>
</div>
</div>
</div>
<div
class=
"TP_editShow"
>
<div
class=
"TP_editShow"
>
<my-edit
v-if=
"isShowEdit"
v-on:edit-value=
"subItemObj.childItem.Description = arguments[0]"
v-bind:editValue=
"subItemObj.childItem.Description"
<my-edit
v-if=
"isShowEdit"
v-on:edit-value=
"subItemObj.childItem.Description = arguments[0]"
v-bind:toolbarShow=
"toolbar"
v-bind:referenceList=
"DefaultList"
v-bind:placeholder=
"placeholder"
></my-edit>
v-bind:editValue=
"subItemObj.childItem.Description"
v-bind:toolbarShow=
"toolbar"
v-bind:referenceList=
"DefaultList"
v-bind:placeholder=
"placeholder"
></my-edit>
</div>
</div>
<div
class=
"SiencDiv clearfix"
>
<div
class=
"SiencDiv clearfix"
>
<div
class=
"ScLeftImg"
>
<div
class=
"ScLeftImg"
>
<div
class=
"TFimgList"
v-for=
"(item,index) in subItemObj.childItem.ImaArray"
:key=
"item.subCode"
>
<div
class=
"TFimgList"
v-for=
"(item,index) in subItemObj.childItem.ImaArray"
:key=
"item.subCode"
>
<img
v-if=
"!item.Url"
src=
"../../../assets/img/bg_c3@3x.png"
/>
<img
v-if=
"!item.Url"
src=
"../../../assets/img/bg_c3@3x.png"
/>
<img
v-else
:src=
"item.Url"
@
click=
"getPic(subItemObj.childItem.ImaArray,index)"
/>
<img
v-else
:src=
"item.Url"
@
click=
"getPic(subItemObj.childItem.ImaArray,index)"
/>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div
v-if=
"dspNone"
class=
"viewBigPicLayer myPiclayer"
@
click=
"colseLayer"
>
<div
v-if=
"dspNone"
class=
"viewBigPicLayer myPiclayer"
@
click=
"colseLayer"
>
<i
@
click=
"colseLayer"
class=
"el-icon-circle-close-outline clolseViewBigPicLayer"
></i>
<i
@
click=
"colseLayer"
class=
"el-icon-circle-close-outline clolseViewBigPicLayer"
></i>
<el-carousel
height=
"600px"
:initial-index=
'initialIndex'
:interval=
"5000"
trigger=
"click"
>
<el-carousel
height=
"600px"
:initial-index=
'initialIndex'
:interval=
"5000"
trigger=
"click"
>
<el-carousel-item
v-for=
"(item,index) in picObj"
:key=
"index"
>
<el-carousel-item
v-for=
"(item,index) in picObj"
:key=
"index"
>
<img
style=
"width:100%;"
:src=
"item.Url"
/>
<img
style=
"width:100%;"
:src=
"item.Url"
/>
...
@@ -148,8 +150,8 @@
...
@@ -148,8 +150,8 @@
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
MyEdit
from
"../../EditTemplate.vue"
;
import
MyEdit
from
"../../EditTemplate.vue"
;
export
default
{
export
default
{
props
:
[
props
:
[
"subItemObj"
,
"subItemObj"
,
"DefaultList"
,
"DefaultList"
,
...
@@ -175,6 +177,72 @@ export default {
...
@@ -175,6 +177,72 @@ export default {
}
}
};
};
return
{
return
{
//其他餐食
otherDinner
:
[
{
Id
:
1
,
Name
:
"酒店内享用早餐"
,
City
:
0
,
About
:
""
,
PicPath
:
""
},
{
Id
:
2
,
Name
:
"酒店外享用早餐"
,
City
:
0
,
About
:
""
,
PicPath
:
""
},
{
Id
:
3
,
Name
:
"方便游玩敬请自理"
,
City
:
0
,
About
:
""
,
PicPath
:
""
},
{
Id
:
4
,
Name
:
"机上简餐或自理"
,
City
:
0
,
About
:
""
,
PicPath
:
""
},
{
ID
:
-
1
,
Name
:
"机上简餐或自理"
,
City
:
0
,
About
:
""
,
PicPath
:
""
},
{
ID
:
-
2
,
Name
:
"酒店享用"
,
City
:
0
,
About
:
""
,
PicPath
:
""
},
{
ID
:
-
3
,
Name
:
"温泉御膳料理"
,
City
:
0
,
About
:
""
,
PicPath
:
""
},
{
ID
:
-
4
,
Name
:
"酒店自助百汇"
,
City
:
0
,
About
:
""
,
PicPath
:
""
},
{
ID
:
-
5
,
Name
:
"方便游玩敬请自理"
,
City
:
0
,
About
:
""
,
PicPath
:
""
}
],
//餐厅列表
//餐厅列表
QDinnerList
:
[],
QDinnerList
:
[],
//餐厅套餐列表
//餐厅套餐列表
...
@@ -195,8 +263,7 @@ export default {
...
@@ -195,8 +263,7 @@ export default {
Diner
:
{
Diner
:
{
DefaultSelectValue
:
0
,
DefaultSelectValue
:
0
,
UseDinerCked
:
[],
UseDinerCked
:
[],
UseDinnerType
:
[
UseDinnerType
:
[{
{
Id
:
"1"
,
Id
:
"1"
,
Name
:
"早"
Name
:
"早"
},
},
...
@@ -213,18 +280,14 @@ export default {
...
@@ -213,18 +280,14 @@ export default {
//餐厅验证
//餐厅验证
dinnerTripRules
:
{
dinnerTripRules
:
{
//时间类型验证
//时间类型验证
TimeType
:
[
TimeType
:
[{
{
validator
:
TimeTypeValidate
,
validator
:
TimeTypeValidate
,
trigger
:
"change"
trigger
:
"change"
}
}],
],
DinnerId
:
[{
DinnerId
:
[
{
validator
:
DinnerIdValidate
,
validator
:
DinnerIdValidate
,
trigger
:
"change"
trigger
:
"change"
}
}]
]
},
},
TheDayHotelUserDinner
:
[]
//当天酒店列表
TheDayHotelUserDinner
:
[]
//当天酒店列表
};
};
...
@@ -248,6 +311,7 @@ export default {
...
@@ -248,6 +311,7 @@ export default {
res
=>
{
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
QDinnerList
=
res
.
data
.
data
;
this
.
QDinnerList
=
res
.
data
.
data
;
this
.
QDinnerList
.
push
(...
this
.
otherDinner
);
}
}
},
},
err
=>
{}
err
=>
{}
...
@@ -284,8 +348,7 @@ export default {
...
@@ -284,8 +348,7 @@ export default {
if
(
event
)
{
if
(
event
)
{
this
.
QDinnerMealList
=
[];
this
.
QDinnerMealList
=
[];
this
.
apipost
(
this
.
apipost
(
"meal_get_GetList"
,
"meal_get_GetList"
,
{
{
DiningId
:
this
.
subItemObj
.
childItem
.
DinnerId
DiningId
:
this
.
subItemObj
.
childItem
.
DinnerId
},
},
res
=>
{
res
=>
{
...
@@ -409,6 +472,7 @@ export default {
...
@@ -409,6 +472,7 @@ export default {
});
});
}
}
}
}
this
.
QDinnerList
.
push
(...
this
.
otherDinner
);
},
},
mounted
()
{
mounted
()
{
this
.
initTheDayHotelUserDinner
();
this
.
initTheDayHotelUserDinner
();
...
@@ -426,7 +490,7 @@ export default {
...
@@ -426,7 +490,7 @@ export default {
watch
:
{
watch
:
{
Diner
:
{
Diner
:
{
//深度监听,可监听到对象、数组的变化
//深度监听,可监听到对象、数组的变化
handler
:
function
(
val
,
oldVal
)
{
handler
:
function
(
val
,
oldVal
)
{
var
ckedDiner
=
""
;
var
ckedDiner
=
""
;
this
.
Diner
.
UseDinerCked
.
forEach
(
x
=>
{
this
.
Diner
.
UseDinerCked
.
forEach
(
x
=>
{
ckedDiner
=
ckedDiner
+
x
+
","
;
ckedDiner
=
ckedDiner
+
x
+
","
;
...
@@ -440,7 +504,7 @@ export default {
...
@@ -440,7 +504,7 @@ export default {
},
},
subItemObj
:
{
subItemObj
:
{
//深度监听,可监听到对象、数组的变化
//深度监听,可监听到对象、数组的变化
handler
:
function
(
val
,
oldVal
)
{
handler
:
function
(
val
,
oldVal
)
{
this
.
subItemObj
.
childItem
.
DinnerImg
=
JSON
.
stringify
(
this
.
subItemObj
.
childItem
.
DinnerImg
=
JSON
.
stringify
(
this
.
subItemObj
.
childItem
.
ImaArray
this
.
subItemObj
.
childItem
.
ImaArray
);
);
...
@@ -449,17 +513,18 @@ export default {
...
@@ -449,17 +513,18 @@ export default {
},
},
HotelList
:
{
HotelList
:
{
//深度监听,可监听到对象、数组的变化
//深度监听,可监听到对象、数组的变化
handler
:
function
(
val
,
oldVal
)
{
handler
:
function
(
val
,
oldVal
)
{
this
.
initTheDayHotelUserDinner
();
this
.
initTheDayHotelUserDinner
();
},
},
deep
:
true
deep
:
true
},
},
"subItemObj.childItem.QCity"
:
{
"subItemObj.childItem.QCity"
:
{
handler
:
function
(
val
,
oldVal
)
{
handler
:
function
(
val
,
oldVal
)
{
this
.
getDinnerList
();
this
.
getDinnerList
();
},
},
deep
:
true
deep
:
true
}
}
}
}
};
};
</
script
>
</
script
>
src/components/newTravelmanager/oldTravelGroupControl/hotelTrip_Direct.vue
View file @
9d848171
...
@@ -31,7 +31,6 @@
...
@@ -31,7 +31,6 @@
<div
class=
"TDLeftPlan"
>
<div
class=
"TDLeftPlan"
>
<span>
入住酒店
</span>
<span>
入住酒店
</span>
<span>
<span>
<el-form-item
:prop=
"'DayList.'+index+'.dayArray.'+subIndex+'.childItem.HotelId'"
:rules=
"hotelTripRules.HotelId"
>
<el-form-item
:prop=
"'DayList.'+index+'.dayArray.'+subIndex+'.childItem.HotelId'"
:rules=
"hotelTripRules.HotelId"
>
<el-select
:disabled=
"isOpenGroup"
class=
'w160'
:placeholder=
"$t('pub.pleaseSel')"
filterable
v-model=
"subItemObj.childItem.HotelId"
<el-select
:disabled=
"isOpenGroup"
class=
'w160'
:placeholder=
"$t('pub.pleaseSel')"
filterable
v-model=
"subItemObj.childItem.HotelId"
@
visible-change=
"getHotelList($event)"
@
change=
"changeHotelList()"
>
@
visible-change=
"getHotelList($event)"
@
change=
"changeHotelList()"
>
...
...
src/components/newTravelmanager/oldTravelGroupControl/hotelTrip_Direct_V2.vue
0 → 100644
View file @
9d848171
<
template
>
<div
class=
"trip-item-box"
>
<div
class=
"edit"
v-if=
"isShowEdit"
>
<div
class=
"TCtraffic flex"
>
<div
class=
"partName"
>
<span
class=
"TDTripType"
>
酒店
</span>
</div>
<span
class=
"datePickContent"
style=
"display:none"
>
<el-form-item
>
<el-select
:disabled=
"isOpenGroup"
class=
"w160"
placeholder=
"请选择时间"
v-model=
"subItemObj.childItem.TimeType"
>
<el-option
v-for=
"item in TimeTypeList"
:label=
'item.Name'
:value=
'item.Id'
:key=
'item.Id'
>
</el-option>
</el-select>
</el-form-item>
</span>
<div
class=
"delSpan"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"查看"
placement=
"top-start"
>
<i
class=
"iconfont icon-chakan"
@
click=
"isShowEdit=!isShowEdit"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
v-if=
"!isOpenGroup"
>
<i
class=
"iconfont icon-xingzhuang"
@
click=
"removeHotelTrip(subItemObj.childItem.DayNum,subIndex)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"上移"
placement=
"top-start"
v-if=
"subIndex!=0 && !isOpenGroup"
>
<i
class=
"iconfont icon-shangyi"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,0)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"下移"
placement=
"top-start"
v-if=
"subIndex!=subTotalIndex-1 && !isOpenGroup"
>
<i
class=
"iconfont icon-xiayi1"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,1)"
></i>
</el-tooltip>
</div>
<div
class=
"TDplanList clearfix"
>
<div
class=
"TDLeftPlan"
>
<span>
<el-popover
placement=
"right"
width=
"540"
trigger=
"click"
>
<comCheckHotelV2
:ref=
"'comCheckHotelV2'+index+subIndex+''"
>
</comCheckHotelV2>
<el-button
size=
"small"
type=
"danger"
:data-index=
"'comCheckHotelV2'+index+subIndex+''"
slot=
"reference"
style=
"cursor:pointer;"
>
酒店选择
</el-button>
<!--@click="getChildHotel(index,subIndex)"-->
</el-popover>
</span>
<span>
<el-form-item
:prop=
"'DayList.'+index+'.dayArray.'+subIndex+'.childItem.HotelId'"
:rules=
"hotelTripRules.HotelId"
>
<el-select
:disabled=
"isOpenGroup"
class=
'w160'
:placeholder=
"$t('pub.pleaseSel')"
filterable
v-model=
"subItemObj.childItem.HotelId"
@
visible-change=
"getHotelList($event)"
@
change=
"changeHotelList()"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'Diner.DefaultSelectValue'
></el-option>
<el-option
v-for=
"item in QHotelList"
:label=
'getItemLabel(item)'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-select>
</el-form-item>
</span>
<span
class=
"HD_hotelru"
>
<el-checkbox
:disabled=
"isOpenGroup"
v-model=
"subItemObj.childItem.IsSameLevel"
:checked=
"subItemObj.childItem.IsSameLevel===CheckedVaule"
:true-label=
"CheckedVaule"
:false-label=
"UnCheckedVaule"
border
size=
"mini"
>
同级酒店
</el-checkbox>
</span>
<span
class=
"comTravelLeft"
>
房型选择
</span>
<span>
<el-select
:disabled=
"isOpenGroup"
class=
'w160'
:placeholder=
"$t('pub.pleaseSel')"
filterable
v-model=
"subItemObj.childItem.HotelProductId"
@
visible-change=
"getHotelProductList($event)"
@
change=
"changeHotelProductList()"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'Diner.DefaultSelectValue'
></el-option>
<el-option
v-for=
"item in QHotelProductList"
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-select>
</span>
<span
v-if=
"subItemObj.childItem.IsUseDinner==1"
>
<span
class=
"TDhotelDiner"
>
酒店含餐
</span>
<span>
<el-checkbox-group
v-model=
"Diner.UseDinerCked"
>
<el-checkbox
v-for=
"item in Diner.UseDinnerArray"
:disabled=
"isOpenGroup||!varCanChecked(item)"
:label=
"item.Id"
:key=
'item.Id'
>
{{
item
.
Name
}}
</el-checkbox>
</el-checkbox-group>
</span>
</span>
</div>
</div>
</div>
<div
class=
"TP_edit"
>
<my-edit
v-if=
"isShowEdit"
v-on:edit-value=
"subItemObj.childItem.Description = arguments[0]"
v-bind:editValue=
"subItemObj.childItem.Description"
v-bind:toolbarShow=
"toolbar"
v-bind:referenceList=
"DefaultList"
v-bind:placeholder=
"placeholder"
></my-edit>
</div>
<div
class=
"SiencDiv clearfix"
>
<div
class=
"ScLeftImg"
>
<div
class=
"TFimgList"
v-for=
"(item,index) in subItemObj.childItem.ImaArray"
:key=
"item.subCode"
>
<img
v-if=
"!item.Url"
src=
"../../../assets/img/bg_c3@3x.png"
/>
<img
v-else
:src=
"item.Url"
/>
<div
class=
"imgzhe"
@
click=
"getPic(subItemObj.childItem.ImaArray,index)"
>
<div
class=
"clearfix"
style=
"text-align:center;"
>
<div
class=
"re-delte"
@
click
.
stop=
"delImg(index,subItemObj)"
><i
class=
"iconfont icon-xingzhuang"
></i></div>
<div
class=
"re-delte"
@
click
.
stop=
"toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,0)"
v-if=
"index!=0"
><i
class=
"iconfont icon-zuoyi"
></i></div>
<div
class=
"re-delte"
@
click
.
stop=
"toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,1)"
v-if=
"index!=subItemObj.childItem.ImaArray.length-1"
><i
class=
"iconfont icon-youyi"
></i></div>
</div>
</div>
</div>
</div>
<div
class=
"rightAddImg"
>
<el-upload
:file-list=
"subItemObj.childItem.ImaArray"
:http-request=
"uploadScenImg"
:data=
"subItemObj.childItem"
:multiple=
"true"
accept=
"image/jpeg,image/gif,image/png,image/bmp"
:show-file-list=
"false"
action=
""
>
<i
class=
"iconfont icon-img_haha"
></i>
</el-upload>
</div>
</div>
</div>
<div
class=
"read"
v-if=
"!isShowEdit"
>
<div
class=
"TCtraffic flex"
>
<div
class=
"partName"
>
<span
class=
"TDTripType"
>
酒店
</span>
</div>
<div
class=
"delSpan"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"编辑"
placement=
"top-start"
>
<i
class=
"iconfont icon-bianji"
@
click=
"isShowEdit=!isShowEdit"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
v-if=
"!isOpenGroup"
>
<i
class=
"iconfont icon-xingzhuang"
@
click=
"removeHotelTrip(subItemObj.childItem.DayNum,subIndex)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"上移"
placement=
"top-start"
v-if=
"subIndex!=0 && !isOpenGroup"
>
<i
class=
"iconfont icon-shangyi"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,0)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"下移"
placement=
"top-start"
v-if=
"subIndex!=subTotalIndex-1 && !isOpenGroup"
>
<i
class=
"iconfont icon-xiayi1"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,1)"
></i>
</el-tooltip>
</div>
<div
class=
"title-box"
>
<div
class=
"TDLeftPlan"
>
<span>
入住酒店
</span>
<span>
{{
subItemObj
.
childItem
.
HotelName
}}
</span>
<span
v-if=
"subItemObj.childItem.IsSameLevel==1"
>
或同级酒店
</span>
<span>
房型
</span>
<span>
{{
subItemObj
.
childItem
.
HotelProductName
}}
</span>
<span
v-if=
"subItemObj.childItem.IsUseDinner==1"
>
<span
class=
"TDhotelDiner"
>
酒店含餐
</span>
<span
v-if=
"Diner.UseDinerCked==1"
>
早餐
</span>
<span
v-if=
"Diner.UseDinerCked==2"
>
中餐
</span>
<span
v-if=
"Diner.UseDinerCked==3"
>
晚餐
</span>
</span>
</div>
</div>
</div>
<div
class=
"TP_editShow"
>
<pre
v-html=
"subItemObj.childItem.Description"
></pre>
</div>
<div
class=
"SiencDiv clearfix"
>
<div
class=
"ScLeftImg"
>
<div
class=
"TFimgList"
v-for=
"(item,index) in subItemObj.childItem.ImaArray"
:key=
"item.subCode"
>
<img
v-if=
"!item.Url"
src=
"../../../assets/img/bg_c3@3x.png"
/>
<img
v-else
:src=
"item.Url"
@
click=
"getPic(subItemObj.childItem.ImaArray,index)"
/>
</div>
</div>
</div>
</div>
<div
v-if=
"dspNone"
class=
"viewBigPicLayer myPiclayer"
@
click=
"colseLayer"
>
<i
@
click=
"colseLayer"
class=
"el-icon-circle-close-outline clolseViewBigPicLayer"
></i>
<el-carousel
height=
"600px"
:initial-index=
'initialIndex'
:interval=
"5000"
trigger=
"click"
>
<el-carousel-item
v-for=
"(item,index) in picObj"
:key=
"index"
>
<img
style=
"width:100%;"
:src=
"item.Url"
/>
</el-carousel-item>
</el-carousel>
</div>
</div>
</
template
>
<
script
>
import
MyEdit
from
"../../EditTemplate.vue"
;
import
comCheckHotelV2
from
"../../commonPage/comCheckHotelV2.vue"
;
export
default
{
props
:
[
"subItemObj"
,
"DefaultList"
,
"DinnerList"
,
"index"
,
"subIndex"
,
"isOpenGroup"
,
"subTotalIndex"
,
"TimeTypeList"
],
data
()
{
var
TimeTypeValidate
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
0
)
{
callback
(
new
Error
(
"请选择时间类型"
));
}
else
{
callback
();
}
};
var
HotelIdValidate
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
0
)
{
callback
(
new
Error
(
"请选择酒店"
));
}
else
{
callback
();
}
};
return
{
//酒店列表
QHotelList
:
[],
//酒店房型列表
QHotelProductList
:
[],
toolbar
:
{
clean
:
false
,
//加粗
font
:
false
,
//字体
narrative
:
true
//叙述,
},
dspNone
:
false
,
initialIndex
:
0
,
//选中同级酒店
CheckedVaule
:
1
,
//不选中
UnCheckedVaule
:
0
,
//是否显示编辑框
isShowEdit
:
true
,
//text框placeholder
placeholder
:
"请输入酒店信息"
,
//酒店含餐
Diner
:
{
DefaultSelectValue
:
0
,
UseDinerCked
:
[],
UseDinnerType
:
[
{
Id
:
"1"
,
Name
:
"早"
},
{
Id
:
"2"
,
Name
:
"中"
},
{
Id
:
"3"
,
Name
:
"晚"
}
],
UseDinnerArray
:
[]
},
//酒店验证
hotelTripRules
:
{
//时间类型验证
TimeType
:
[
{
validator
:
TimeTypeValidate
,
trigger
:
"change"
}
],
HotelId
:
[
{
validator
:
HotelIdValidate
,
trigger
:
"change"
}
]
},
TheDayUserDinner
:
[]
//当天餐厅用餐情况
};
},
components
:
{
"my-edit"
:
MyEdit
,
comCheckHotelV2
,
},
methods
:
{
//获取酒店列表
getHotelList
(
event
)
{
if
(
event
)
{
var
msg
=
{
IsGetPic
:
1
,
IsGetRemark
:
1
,
QCity
:
this
.
subItemObj
.
childItem
.
QCity
};
this
.
apipost
(
"hotel_post_GetLineHotelList"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
QHotelList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
}
},
//酒店选择改变
changeHotelList
()
{
var
that
=
this
;
if
(
that
.
subItemObj
.
childItem
.
HotelId
!=
0
)
{
//获取当前选中的对象
let
obj
=
{};
obj
=
that
.
QHotelList
.
find
(
item
=>
{
return
item
.
ID
===
that
.
subItemObj
.
childItem
.
HotelId
;
//筛选出匹配数据
});
if
(
obj
!=
undefined
)
{
that
.
subItemObj
.
childItem
.
HotelProductId
=
0
;
that
.
subItemObj
.
childItem
.
HotelProductName
=
""
;
that
.
QHotelProductList
=
[];
that
.
Diner
.
UseDinnerArray
=
[];
that
.
subItemObj
.
childItem
.
ImaArray
=
[];
that
.
subItemObj
.
childItem
.
Description
=
obj
.
Descriptions
;
that
.
subItemObj
.
childItem
.
ImaArray
=
obj
.
imgList
;
that
.
subItemObj
.
childItem
.
IsUseDinner
=
obj
.
IsUseDinner
;
that
.
subItemObj
.
childItem
.
HotelName
=
obj
.
Name
;
let
useDinnerTypeStr
=
that
.
subItemObj
.
childItem
.
UseDinnerType
;
if
(
that
.
subItemObj
.
childItem
.
ID
>
0
)
{
if
(
obj
.
UseDinnerType
==
null
||
!
(
obj
.
UseDinnerType
.
length
>
0
))
{
that
.
Diner
.
UseDinerCked
=
[];
that
.
subItemObj
.
childItem
.
UseDinnerType
=
""
;
}
else
{
let
useDinnerTypeStr
=
that
.
subItemObj
.
childItem
.
UseDinnerType
;
if
(
useDinnerTypeStr
!=
null
&&
useDinnerTypeStr
.
length
>
0
)
{
let
objUseDinnerTypeArr
=
obj
.
UseDinnerType
.
split
(
","
);
let
useDinnerTypeArr
=
useDinnerTypeStr
.
split
(
","
);
let
tmpDinnerTypeArr
=
[];
useDinnerTypeArr
.
forEach
(
x
=>
{
let
isRemove
=
true
;
objUseDinnerTypeArr
.
forEach
(
y
=>
{
if
(
x
==
y
)
{
isRemove
=
false
;
}
});
if
(
!
isRemove
)
{
tmpDinnerTypeArr
.
push
(
x
);
}
});
that
.
subItemObj
.
childItem
.
UseDinnerType
=
tmpDinnerTypeArr
.
join
(
","
);
that
.
Diner
.
UseDinerCked
=
tmpDinnerTypeArr
;
}
}
}
else
{
if
(
obj
.
UseDinnerType
!=
null
&&
obj
.
UseDinnerType
.
length
>
0
)
{
that
.
Diner
.
UseDinerCked
=
obj
.
UseDinnerType
.
split
(
","
);
}
}
let
useDinnerTypeArry
=
[];
if
(
obj
.
UseDinnerType
!=
null
&&
obj
.
UseDinnerType
.
length
>
0
)
{
useDinnerTypeArry
=
obj
.
UseDinnerType
.
split
(
","
);
}
useDinnerTypeArry
.
forEach
(
y
=>
{
that
.
Diner
.
UseDinnerType
.
forEach
(
DinerTypeItem
=>
{
if
(
y
==
DinerTypeItem
.
Id
)
{
that
.
Diner
.
UseDinnerArray
.
push
(
DinerTypeItem
);
}
});
});
that
.
Diner
.
UseDinnerArray
.
sort
(
this
.
$commonUtils
.
createComprisonFunction
(
"Id"
)
);
}
}
},
//获取酒店房型列表
getHotelProductList
(
event
)
{
if
(
event
)
{
this
.
apipost
(
"dict_post_HotelProduc_GetList"
,
{
Hotel_ID
:
this
.
subItemObj
.
childItem
.
HotelId
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
QHotelProductList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
}
},
//产品选择改变
changeHotelProductList
()
{
var
that
=
this
;
if
(
that
.
subItemObj
.
childItem
.
HotelProductId
!=
0
)
{
//获取当前选中的对象
let
obj
=
{};
obj
=
that
.
QHotelProductList
.
find
(
item
=>
{
return
item
.
ID
===
that
.
subItemObj
.
childItem
.
HotelProductId
;
//筛选出匹配数据
});
if
(
obj
!=
undefined
)
{
this
.
subItemObj
.
childItem
.
HotelProductName
=
obj
.
Name
;
}
}
},
//上传景点图片
uploadScenImg
(
item
)
{
let
newArr
=
[];
newArr
.
push
(
item
.
file
);
let
path
=
"/Upload/DMC/"
;
this
.
UploadSelfFileT
(
path
,
newArr
,
x
=>
{
var
fileObj
=
this
.
$commonUtils
.
FileObject
();
fileObj
.
Url
=
this
.
domainManager
().
ViittoFileUrl
+
x
.
data
.
FilePath
,
fileObj
.
fileName
=
x
.
data
.
FileName
;
item
.
data
.
ImaArray
.
push
(
fileObj
);
});
},
//删除酒店
removeHotelTrip
(
dayNum
,
subIndex
)
{
this
.
$parent
.
$parent
.
commonRemove
(
dayNum
,
subIndex
);
},
//删除图片
delImg
(
index
,
subItemObj
)
{
this
.
$parent
.
$parent
.
commonRemoveImg
(
index
,
subItemObj
);
},
initTheDayUserDinner
()
{
let
dayNum
=
this
.
subItemObj
.
childItem
.
DayNum
;
this
.
TheDayUserDinner
=
[];
this
.
DinnerList
.
forEach
(
x
=>
{
if
(
x
.
DayNum
==
dayNum
)
{
if
(
x
.
UseDinnerType
.
length
>
0
)
{
let
tempDinnerArr
=
x
.
UseDinnerType
.
split
(
","
);
let
reg
=
/^
[
0-9
]
+.
?[
0-9
]
*/
;
tempDinnerArr
.
forEach
(
y
=>
{
if
(
reg
.
test
(
y
))
{
this
.
TheDayUserDinner
.
push
(
y
);
}
});
}
}
});
this
.
TheDayUserDinner
=
Array
.
from
(
new
Set
(
this
.
TheDayUserDinner
));
},
varCanChecked
(
dinnerType
)
{
let
canChecked
=
true
;
this
.
TheDayUserDinner
.
forEach
(
x
=>
{
if
(
x
==
dinnerType
.
Id
)
{
canChecked
=
false
;
}
});
return
canChecked
;
},
//上移下移
MoveItem
(
dayNum
,
subIndex
,
IsUp
)
{
this
.
$parent
.
$parent
.
MoveItem
(
dayNum
,
subIndex
,
IsUp
);
},
//左右移动
toExchangeImg
(
dayNum
,
subIndex
,
imgIndex
,
IsMove
)
{
this
.
$parent
.
$parent
.
ExchangeImg
(
dayNum
,
subIndex
,
imgIndex
,
IsMove
);
},
colseLayer
(){
this
.
dspNone
=
false
;
},
getPic
(
obj
,
index
){
this
.
picObj
=
obj
this
.
dspNone
=
true
;
this
.
initialIndex
=
index
;
},
getItemLabel
(
item
){
let
returnName
=
item
.
Name
;
if
(
item
.
Inventory
>=
0
){
returnName
=
returnName
+
" "
+
item
.
Inventory
;
}
return
returnName
;
}
},
mounted
()
{
if
(
this
.
subItemObj
.
childItem
.
ID
>
0
)
{
if
(
this
.
subItemObj
.
childItem
.
HotelId
>
0
)
{
this
.
QHotelList
.
push
({
ID
:
parseInt
(
this
.
subItemObj
.
childItem
.
HotelId
),
Name
:
this
.
subItemObj
.
childItem
.
HotelName
});
}
if
(
this
.
subItemObj
.
childItem
.
HotelProductId
>
0
)
{
this
.
QHotelProductList
.
push
({
ID
:
parseInt
(
this
.
subItemObj
.
childItem
.
HotelProductId
),
Name
:
this
.
subItemObj
.
childItem
.
HotelProductName
});
}
}
},
watch
:
{
subItemObj
:
{
//深度监听,可监听到对象、数组的变化
handler
:
function
(
val
,
oldVal
)
{
this
.
subItemObj
.
childItem
.
HotelImg
=
JSON
.
stringify
(
this
.
subItemObj
.
childItem
.
ImaArray
);
},
deep
:
true
},
"Diner.UseDinerCked"
:
{
handler
:
function
(
val
,
oldVal
)
{
this
.
subItemObj
.
childItem
.
UseDinnerType
=
this
.
Diner
.
UseDinerCked
.
join
(
","
);
}
},
DinnerList
:
{
handler
:
function
(
val
,
oldVal
)
{
this
.
initTheDayUserDinner
();
},
deep
:
true
},
"subItemObj.childItem.QCity"
:
{
handler
:
function
(
val
,
oldVal
)
{
this
.
getHotelList
();
},
deep
:
true
}
}
};
</
script
>
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