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
163e76f0
Commit
163e76f0
authored
May 24, 2021
by
罗超
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/superman
into master
parents
e4460dda
e350d00a
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
1808 additions
and
4 deletions
+1808
-4
dzlineList.vue
src/components/TravelManager/customizedcar/dzlineList.vue
+8
-2
lineProductCalendar.vue
...nents/TravelManager/customizedcar/lineProductCalendar.vue
+328
-0
lineoffer.vue
src/components/TravelManager/customizedcar/lineoffer.vue
+1464
-0
config.js
src/router/config.js
+8
-2
No files found.
src/components/TravelManager/customizedcar/dzlineList.vue
View file @
163e76f0
...
...
@@ -179,13 +179,16 @@
</el-table-column>
<el-table-column
fixed
prop=
"Description"
label=
"备注"
>
</el-table-column>
<el-table-column
fixed=
"right"
label=
"操作"
width=
"1
2
0"
>
<el-table-column
fixed=
"right"
label=
"操作"
width=
"1
5
0"
>
<
template
slot-scope=
"scope"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"编辑"
placement=
"top"
>
<img
src=
"../../../assets/img/setup/edit.png"
alt=
""
class=
"imgstyle"
@
click=
"Edit(scope.row)"
>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top"
>
<img
src=
"../../../assets/img/setup/del.png"
alt=
""
class=
"imgstyle"
@
click=
"delete_b(scope.row)"
>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"报价"
placement=
"top"
>
<img
src=
"../../../assets/img/userman/integral.png"
alt=
""
class=
"imgstyle"
@
click=
"baojia(scope.row)"
>
</el-tooltip>
</
template
>
</el-table-column>
...
...
@@ -351,6 +354,9 @@
},
baojia
(
row
){
this
.
$router
.
push
(
"/lineoffer?id="
+
row
.
Id
)
},
delete_b
(
row
){
let
that
=
this
;
that
.
Confirm
(
"是否删除"
,
function
()
{
...
...
src/components/TravelManager/customizedcar/lineProductCalendar.vue
0 → 100644
View file @
163e76f0
<
template
>
<div
class=
"hotelProductCalendar"
>
<div
class=
"hotelProductCalendar_month"
>
<div
onselectstart=
"return false;"
>
<span>
{{
calendar
.
data
.
date
&&
calendar
.
data
.
date
.
split
(
'-'
)[
0
]
}}
年
</span>
<span>
{{
calendar
.
data
.
date
&&
calendar
.
data
.
date
.
split
(
'-'
)[
1
]
}}
月
</span>
</div>
<div>
<span>
线路报价表
</span>
</div>
<div>
<i
class=
"iconfont icon-cha"
@
click=
"calendarHide()"
></i>
</div>
</div>
<div
class=
"hotelProductCalendar_week"
>
<div>
{{
$t
(
'hotel.hotel_Monday'
)
}}
</div>
<div>
{{
$t
(
'hotel.hotel_Tuesday'
)
}}
</div>
<div>
{{
$t
(
'hotel.hotel_Wednesday'
)
}}
</div>
<div>
{{
$t
(
'hotel.hotel_Thursday'
)
}}
</div>
<div>
{{
$t
(
'hotel.hotel_Friday'
)
}}
</div>
<div>
{{
$t
(
'hotel.hotel_Saturday'
)
}}
</div>
<div>
{{
$t
(
'hotel.hotel_Sunday'
)
}}
</div>
</div>
<div
class=
"hotelProductCalendar_day"
>
<div
v-for=
"(item, index) in calendar.data.days"
:key=
"index"
>
<div
:class=
"item.month===calendar.data.date?'nowMonth':'otherMonth'"
>
<span>
{{
item
.
date
.
getMonth
()
+
1
}}
-
{{
item
.
date
.
getDate
()
}}
</span>
</div>
<div
v-if=
"item.data&&item.month===calendar.data.date"
:class=
"stockColor(item.data.SubList)"
>
<template
v-for=
"(childItem,childIndex) in item.data.SubList"
>
<p>
<span
title=
"点击修改信息"
@
click=
"goUrlA('2', item.day,item.data.SubList)"
>
{{
childItem
.
DepartureTime
}}
<span
class=
"text_underLine"
style=
"margin:0 2px"
>
¥
{{
childItem
.
Price
}}
</span>
{{
childItem
.
CarName
}}
</span><br/>
</p>
</
template
>
</div>
<div
class=
"noStock"
v-if=
"!item.data&&item.month===calendar.data.date"
>
<p><span>
暂无数据
</span></p>
<p><span
@
click=
"goUrlA('1', item.day,[])"
>
立即新增
</span></p>
</div>
<div
class=
"hasStock"
v-if=
"item.month!==calendar.data.date"
>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
</div>
</div>
</div>
</div>
</template>
<
script
>
export
default
{
props
:
{
'calendar'
:
{
type
:
Object
,
default
:
function
()
{
return
{
show
:
false
,
data
:
{}
}
}
}
},
methods
:
{
stockColor
:
function
(
type
)
{
if
(
type
.
length
>
0
){
return
'hasStock hasStock_3'
}
// if (type === 1) {
// return 'hasStock hasStock_1'
// } else if (type === 2) {
// return 'hasStock hasStock_2'
// } else if (type === 3) {
// return 'hasStock hasStock_3'
// } else if (type === 4) {
// return 'hasStock hasStock_4'
// } else if (type === 5) {
// return 'hasStock hasStock_5'
// }
},
calendarHide
:
function
()
{
this
.
calendar
.
show
=
false
this
.
calendar
.
data
=
{}
},
goUrlA
:
function
(
type
,
item
,
BatchNumber
)
{
let
data
=
JSON
.
parse
(
JSON
.
stringify
(
BatchNumber
))
this
.
$emit
(
'goEdit'
,
type
,
item
,
data
)
},
goUrlHotelTeam
:
function
(
item
)
{
this
.
$router
.
push
({
name
:
'HotelsTeam'
,
query
:
{
HotelId
:
item
.
data
.
HotelId
,
StartDate
:
item
.
data
.
DayStr
,
blank
:
'y'
,
tab
:
'酒店相关团'
}
});
},
goUrlB
:
function
(
item
)
{
this
.
$router
.
push
({
name
:
'HotelTotalStock'
,
query
:
{
HotelId
:
this
.
hotelId
,
blank
:
'y'
,
tab
:
'总库存看板'
}
});
}
}
}
</
script
>
<
style
scoped
>
.hotelProductCalendar
{
width
:
100%
;
font-size
:
0px
;
box-sizing
:
border-box
;
background-color
:
#f5f5f5
;
}
.hotelProductCalendar_month
{
position
:
relative
;
width
:
100%
;
height
:
50px
;
line-height
:
50px
;
text-align
:
center
;
background
:
#e95252
;
border-radius
:
4px
4px
0
0
;
}
.hotelProductCalendar_month
>
div
{
display
:
inline-block
;
height
:
50px
;
line-height
:
50px
;
vertical-align
:
top
;
}
.hotelProductCalendar_month
>
div
:nth-child
(
1
)>
i
{
display
:
inline-block
;
font-size
:
22px
;
color
:
#ff7e7e
;
cursor
:
pointer
;
vertical-align
:
middle
;
}
.hotelProductCalendar_month
>
div
:nth-child
(
1
)>
input
{
display
:
inline-block
;
width
:
60px
;
height
:
30px
;
border-radius
:
17px
;
outline
:
none
;
border
:
none
;
color
:
#fff
;
background
:
transparent
;
font-size
:
18px
;
text-align
:
center
;
vertical-align
:
middle
;
}
.hotelProductCalendar_month
>
div
:nth-child
(
1
)>
span
{
display
:
inline-block
;
padding
:
0
5px
;
font-size
:
18px
;
color
:
#fff
;
vertical-align
:
middle
;
}
.hotelProductCalendar_month
>
div
:nth-child
(
2
)>
span
{
display
:
inline-block
;
padding
:
0
20px
;
font-size
:
18px
;
color
:
#fff
;
}
.hotelProductCalendar_month
>
div
:nth-child
(
3
)
{
position
:
absolute
;
z-index
:
1
;
right
:
0px
;
top
:
0px
;
width
:
50px
;
text-align
:
center
;
}
.hotelProductCalendar_month
>
div
:nth-child
(
3
)>
i
{
font-size
:
12px
;
color
:
#ffffff
;
cursor
:
pointer
;
}
.hotelProductCalendar_week
{
width
:
100%
;
height
:
28px
;
background-color
:
#3fa783
;
}
.hotelProductCalendar_week
>
div
{
display
:
inline-block
;
width
:
14.2857%
;
height
:
28px
;
line-height
:
28px
;
text-align
:
center
;
font-size
:
14px
;
color
:
#FFFFFF
;
}
.hotelProductCalendar_day
{
width
:
100%
;
border-left
:
1px
solid
#dddddd
;
}
.hotelProductCalendar_day
>
div
{
display
:
inline-block
;
width
:
14.2857%
;
height
:
148px
;
border-right
:
1px
solid
#ddd
;
border-bottom
:
1px
solid
#ddd
;
vertical-align
:
top
;
}
.hotelProductCalendar_day
>
div
>
div
:nth-child
(
1
)
{
width
:
100%
;
height
:
28px
;
line-height
:
28px
;
text-align
:
center
;
}
.hotelProductCalendar_day
>
div
>
div
:nth-child
(
1
)>
span
{
font-size
:
14px
;
}
.hotelProductCalendar_day
>
div
>
.nowMonth
{
background-color
:
#CCCCCC
;
}
.hotelProductCalendar_day
>
div
>
.nowMonth
>
span
{
color
:
#000000
;
}
.hotelProductCalendar_day
>
div
:nth-child
(
7n-1
)>
.nowMonth
>
span
{
color
:
#e95252
;
}
.hotelProductCalendar_day
>
div
:nth-child
(
7n
)>
.nowMonth
>
span
{
color
:
#e95252
;
}
.hotelProductCalendar_day
>
div
>
.otherMonth
{
background-color
:
#DDDDDD
;
}
.hotelProductCalendar_day
>
div
>
.otherMonth
>
span
{
color
:
#999999
;
}
.hotelProductCalendar_day
>
div
>
.hasStock
{
width
:
100%
;
height
:
120px
;
overflow-y
:
auto
;
}
.hotelProductCalendar_day
>
div
>
.hasStock
>
p
{
width
:
100%
;
min-height
:
20px
;
padding
:
0
10px
;
line-height
:
19px
;
font-size
:
12px
;
border-bottom
:
1px
dashed
#ccc
;
}
.hotelProductCalendar_day
>
div
>
.hasStock_1
{
color
:
#FFFFFF
;
background-color
:
#ff3737
;
}
.hotelProductCalendar_day
>
div
>
.hasStock_2
{
background-color
:
#ff99cc
;
}
.hotelProductCalendar_day
>
div
>
.hasStock_3
{
background-color
:
#bcd6ee
;
}
.hotelProductCalendar_day
>
div
>
.hasStock_4
{
background-color
:
#ffffff
;
}
.hotelProductCalendar_day
>
div
>
.hasStock_5
{
background-color
:
#02F78E
;
}
.hotelProductCalendar_day
>
div
>
.noStock
{
padding
:
30px
0
0
0
;
width
:
100%
;
height
:
120px
;
}
.hotelProductCalendar_day
>
div
>
.noStock
>
p
:nth-child
(
1
)
{
width
:
100%
;
font-size
:
16px
;
color
:
#999999
;
text-align
:
center
;
}
.hotelProductCalendar_day
>
div
>
.noStock
>
p
:nth-child
(
2
)
{
margin
:
10px
0
0
0
;
width
:
100%
;
font-size
:
12px
;
color
:
#00C6FF
;
text-align
:
center
;
cursor
:
pointer
;
}
.text_underLine
{
cursor
:
pointer
;
text-decoration
:
underline
}
</
style
>
src/components/TravelManager/customizedcar/lineoffer.vue
0 → 100644
View file @
163e76f0
<
template
>
<div
class=
"hotelProductManage2"
>
<div
class=
"hotelProductManage2_btnList"
>
<div
class=
"btn_check"
@
click=
"getMonths()"
>
{{
$t
(
'pub.searchBtn'
)
}}
</div>
<div
class=
"btn_check"
@
click=
"goEdit('1')"
>
{{
$t
(
'ground.piliangbianji'
)
}}
</div>
</div>
<div
class=
"hotelProductManage2_condition"
>
<div>
<em>
{{
$t
(
'ground.qishiyue'
)
}}
</em>
<el-date-picker
v-model=
"condition.month"
type=
"month"
value-format=
"yyyy-MM"
:clearable=
"false"
:placeholder=
"$t('ground.xuanzeyue')"
></el-date-picker>
</div>
</div>
<div
class=
"hotelProductManage2_calendar"
>
<div
class=
"hotelProductManage2_calendarItem"
v-for=
"(item, index) in dayList"
:key=
"index"
>
<div
class=
"calendarItem_month"
:title=
"$t('ground.dianjichakanxq')"
@
click=
"calendarShow(item, index)"
>
{{
item
.
date
}}
</div>
<div
class=
"hotelproductCkbox"
>
<el-checkbox
v-model=
"item.isCked"
@
change=
"changeHotelStatus(item,index)"
>
全选
</el-checkbox>
</div>
<div
class=
"calendarItem_week"
>
<div>
{{
$t
(
'hotel.hotel_Sunday'
)
}}
</div>
<div>
{{
$t
(
'hotel.hotel_Monday'
)
}}
</div>
<div>
{{
$t
(
'hotel.hotel_Tuesday'
)
}}
</div>
<div>
{{
$t
(
'hotel.hotel_Wednesday'
)
}}
</div>
<div>
{{
$t
(
'hotel.hotel_Thursday'
)
}}
</div>
<div>
{{
$t
(
'hotel.hotel_Friday'
)
}}
</div>
<div>
{{
$t
(
'hotel.hotel_Saturday'
)
}}
</div>
</div>
<div
class=
"calendarItem_day"
>
<div
v-for=
"(subItem, index2) in item.days"
:key=
"index2"
:class=
"subItem.month===item.date?'nowMonth':'otherMonth'"
>
<div
:class=
"stockColor(item,subItem)"
:style=
"subItem.month===item.date&&msg2.DateList.indexOf(subItem.day)!==-1?'border-color: green':''"
@
click=
"calendarDayOn(item, subItem)"
>
<el-popover
placement=
"bottom"
:title=
"$t('ground.baojiaxinxi')"
width=
"600"
trigger=
"hover"
v-if=
"subItem.data&&subItem.data.SubList && subItem.data.SubList[0]"
>
<template>
<div
style=
"text-align: right;"
>
<a
style=
"text-decoration:underline;cursor:pointer;color:blue;"
@
click=
"goEdit('2', subItem.day,subItem.data.SubList)"
>
修改
</a>
</div>
<table
style=
"margin-left:3px;padding-top:2px;width:600px;"
>
<tr>
<th
width=
"100"
style=
"text-align:center"
>
出发时间
</th>
<th
width=
"100"
style=
"text-align:center"
>
价格
</th>
<th
width=
"50"
style=
"text-align:center"
>
订单数
</th>
<th
width=
"80"
style=
"text-align:center"
>
车名称
</th>
<th
width=
"140"
style=
"text-align:center"
>
车型号
</th>
<th
width=
"60"
style=
"text-align:center"
>
品牌
</th>
<th
width=
"130"
style=
"text-align:center"
>
乘坐人数
</th>
</tr>
<tr
v-for=
"(childItem,childIndex) in subItem.data.SubList"
:key=
"childIndex"
>
<td
style=
"text-align:center"
>
{{
childItem
.
DepartureTime
}}
</td>
<td
style=
"text-align:center;white-space:nowrap; "
>
{{
childItem
.
Price
}}
</td>
<td
style=
"text-align:center;white-space:nowrap; "
>
{{
childItem
.
EnrollSeat
}}
</td>
<td
style=
"text-align:center;white-space:nowrap; "
>
{{
childItem
.
CarName
}}
</td>
<td
style=
"text-align:center"
>
{{
childItem
.
CarModel
}}
</td>
<td
style=
"text-align:center"
>
{{
childItem
.
BrandName
}}
</td>
<td
style=
"text-align:center"
>
{{
childItem
.
GuestNum
}}
</td>
</tr>
</table>
</
template
>
<span
slot=
"reference"
>
{{subItem.date.getDate()}}
</span>
</el-popover>
<
template
v-else
>
{{
subItem
.
date
.
getDate
()
}}
</
template
>
</div>
</div>
</div>
</div>
<div
class=
"hotelProductManage2_calendarBox"
v-show=
"calendar.show"
>
<lineProductCalendar
ref=
"lineProductCalendar"
:calendar=
"calendar"
@
goEdit=
"goEdit"
></lineProductCalendar>
</div>
</div>
<!-- 页面编辑 -->
<div
class=
"hotelProductManage2_edit2"
>
<div
class=
"hotelProductManage2_edit2_header"
>
<div>
{{$t('restaurant.res_bidManage')}}
</div>
<div>
<input
type=
"button"
:value=
"$t('ground.piliangshanchu')"
@
click=
"delete2Reset()"
class=
"hollowbtn"
/>
<input
type=
"button"
:value=
"$t('pub.saveBtn')"
@
click=
"edit2Save()"
class=
"normalBtn"
/>
</div>
</div>
<el-form
:model=
"msg2"
:rules=
"rules2"
:inline=
"true"
label-width=
"100px"
ref=
"hotelProductForm2"
class=
"hotelProductManage2_edit2_form"
>
<el-row>
<el-col
:span=
"24"
class=
"HotelProductEdit_date"
>
<el-form-item
:label=
"$t('ground.yixuanriqi')"
prop=
"DateList"
>
<el-tag
v-for=
"(item, key) in msg2.DateList"
:key=
"key"
type=
"info"
style=
"margin: 0 5px 0 0;"
closable
@
close=
"calendarDayOff(item)"
>
{{item}}
</el-tag>
</el-form-item>
</el-col>
</el-row>
<el-row
style=
"padding: 20px 0 0 0;border-top: 1px dashed #ccc;"
v-for=
"(x,y) in msg2.PlanList"
:key=
"y"
>
<el-col
:span=
"4"
>
<el-form-item
label=
"出发时间"
>
<el-time-picker
v-model=
"x.DepartureTime"
value-format=
'HH:mm'
format=
'HH:mm'
placeholder=
"选择时间"
>
</el-time-picker>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"车辆"
>
<span>
{{x.CarName!=''?x.CarName:'无'}}
</span>
<input
type=
"button"
value=
"选择"
@
click=
"cartanc(y,2)"
class=
"normalBtn"
/>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"价格"
>
<el-input
v-model=
"x.Price"
placeholder=
"请输入价格"
type=
"number"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"成本价"
>
<el-input
v-model=
"x.CostPrice"
placeholder=
"请输入成本价"
type=
"number"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"b2c价格"
>
<el-input
v-model=
"x.B2CPrice"
placeholder=
"请输入b2c价格"
type=
"number"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top"
v-if=
"y!=0"
>
<img
src=
"../../../assets/img/setup/del.png"
v-if=
"y!=0"
alt=
""
class=
"imgstyle"
@
click=
"delete_b(y,2)"
>
</el-tooltip>
</el-col>
</el-row>
<input
type=
"button"
value=
"添加"
style=
"margin-left:30px"
@
click=
"addcarlist_o(2)"
class=
"hollowbtn"
/>
</el-form>
</div>
<!-- 弹出编辑 -->
<div
class=
"hotelProductManage2_edit"
v-show=
"editShow"
>
<div
class=
"hotelProductManage2_edit_header"
>
<div>
{{$t('restaurant.res_bidManage')}}
</div>
<div>
<div
@
click=
"editCanel()"
>
{{$t('pub.cancelBtn')}}
</div>
<div
@
click=
"editSave()"
>
{{$t('pub.saveBtn')}}
</div>
</div>
</div>
<el-form
:model=
"msg"
:rules=
"rules"
:inline=
"true"
label-width=
"130px"
ref=
"hotelProductForm"
class=
"hotelProductManage2_edit_form"
>
<el-row>
<el-col
:span=
"6"
>
<el-form-item
:label=
"$t('ground.riqixuanzfs')"
prop=
"DayType"
>
<el-select
v-model=
"msg.DayType"
:placeholder=
"$t('pub.pleaseSel')"
@
change=
"dayTypeChange"
>
<el-option
:label=
"$t('ground.annian')"
value=
"1"
></el-option>
<el-option
:label=
"$t('ground.anyue')"
value=
"2"
></el-option>
<el-option
:label=
"$t('ground.anzhou')"
value=
"3"
></el-option>
<el-option
:label=
"$t('ground.zidingyi')"
value=
"4"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
class=
"HotelProductEdit_date"
>
<div
v-show=
"msg.DayType==='1'||msg.DayType==='3'"
>
<el-form-item
:label=
"$t('pub.year')"
prop=
"Year"
>
<el-date-picker
v-model=
"msg.Year"
type=
"year"
value-format=
"yyyy"
:placeholder=
"$t('pub.pleaseSel')"
>
</el-date-picker>
</el-form-item>
</div>
<div
v-show=
"msg.DayType==='2'"
>
<el-form-item
:label=
"$t('pub.month')"
prop=
"Month"
>
<el-date-picker
v-model=
"msg.Month"
type=
"month"
value-format=
"yyyy-MM"
:placeholder=
"$t('pub.pleaseSel')"
>
</el-date-picker>
</el-form-item>
</div>
<div
v-show=
"msg.DayType==='3'"
>
<el-form-item
:label=
"$t('pub.month')"
label-width=
"30px"
prop=
"Month"
>
<el-select
v-model=
"msg.Month"
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
:label=
"$t('ground.yuefen2[0]')"
value=
"01"
></el-option>
<el-option
:label=
"$t('ground.yuefen2[1]')"
value=
"02"
></el-option>
<el-option
:label=
"$t('ground.yuefen2[2]')"
value=
"03"
></el-option>
<el-option
:label=
"$t('ground.yuefen2[3]')"
value=
"04"
></el-option>
<el-option
:label=
"$t('ground.yuefen2[4]')"
value=
"05"
></el-option>
<el-option
:label=
"$t('ground.yuefen2[5]')"
value=
"06"
></el-option>
<el-option
:label=
"$t('ground.yuefen2[6]')"
value=
"07"
></el-option>
<el-option
:label=
"$t('ground.yuefen2[7]')"
value=
"08"
></el-option>
<el-option
:label=
"$t('ground.yuefen2[8]')"
value=
"09"
></el-option>
<el-option
:label=
"$t('ground.yuefen2[9]')"
value=
"10"
></el-option>
<el-option
:label=
"$t('ground.yuefen2[10]')"
value=
"11"
></el-option>
<el-option
:label=
"$t('ground.yuefen2[11]')"
value=
"12"
></el-option>
</el-select>
</el-form-item>
</div>
<div
v-show=
"msg.DayType==='3'"
>
<el-form-item
:label=
"$t('ground.zhou')"
label-width=
"30px"
prop=
"Week"
>
<el-select
v-model=
"msg.Week"
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
:label=
"$t('ground.xingqiji[0]')"
value=
"0"
></el-option>
<el-option
:label=
"$t('ground.xingqiji[1]')"
value=
"1"
></el-option>
<el-option
:label=
"$t('ground.xingqiji[2]')"
value=
"2"
></el-option>
<el-option
:label=
"$t('ground.xingqiji[3]')"
value=
"3"
></el-option>
<el-option
:label=
"$t('ground.xingqiji[4]')"
value=
"4"
></el-option>
<el-option
:label=
"$t('ground.xingqiji[5]')"
value=
"5"
></el-option>
<el-option
:label=
"$t('ground.xingqiji[6]')"
value=
"6"
></el-option>
</el-select>
</el-form-item>
</div>
<div
v-show=
"msg.DayType==='4'"
>
<el-form-item
:label=
"$t('ground.zidingyi')"
prop=
"StartDate"
>
<el-date-picker
v-model=
"msg.StartDate"
type=
"date"
:placeholder=
"$t('ground.qingxuanzekssj')"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<em>
-
</em>
<el-form-item
label=
""
prop=
"EndDate"
>
<el-date-picker
v-model=
"msg.EndDate"
type=
"date"
:placeholder=
"$t('ground.qingxuanzejssj')"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row
style=
"padding: 20px 0 0 0;border-top: 1px dashed #ccc;"
v-for=
"(x,y) in msg.PlanList"
:key=
"y"
>
<el-col
:span=
"4"
>
<el-form-item
label=
"出发时间"
>
<el-time-picker
v-model=
"x.DepartureTime"
value-format=
'HH:mm'
format=
'HH:mm'
placeholder=
"选择时间"
>
</el-time-picker>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"车辆"
>
<span>
{{x.CarName!=''?x.CarName:'无'}}
</span>
<input
type=
"button"
value=
"选择"
@
click=
"cartanc(y,1)"
class=
"normalBtn"
/>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"价格"
>
<el-input
v-model=
"x.Price"
placeholder=
"请输入价格"
type=
"number"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"成本价"
>
<el-input
v-model=
"x.CostPrice"
placeholder=
"请输入成本价"
type=
"number"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"b2c价格"
>
<el-input
v-model=
"x.B2CPrice"
placeholder=
"请输入b2c价格"
type=
"number"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top"
v-if=
"y!=0"
>
<img
src=
"../../../assets/img/setup/del.png"
v-if=
"y!=0"
alt=
""
class=
"imgstyle"
@
click=
"delete_b(y,1)"
>
</el-tooltip>
</el-col>
</el-row>
<input
type=
"button"
value=
"添加"
style=
"margin-left:30px"
@
click=
"addcarlist_o(1)"
class=
"hollowbtn"
/>
</el-form>
</div>
<el-dialog
title=
"车辆选择"
:visible
.
sync=
"dialogVisible"
width=
"70%"
>
<div
class=
"query-box"
>
<ul>
<li><span><em>
车辆类型
</em><el-select
filterable
v-model=
'carmsg.CarType'
>
<el-option
label=
"不限"
value=
'0'
></el-option>
<el-option
v-for=
'item in companyList'
:label=
'item.Name'
:value=
'item.Id'
:key=
'item.Id'
>
</el-option>
</el-select>
</span></li>
<li><span><em>
车辆名称
</em><el-input
v-model=
'carmsg.CarName'
class=
"permiss-input"
></el-input></span></li>
<li><span><em>
车辆品牌
</em><el-input
v-model=
'carmsg.BrandName'
class=
"permiss-input"
></el-input></span></li>
<li>
<input
type=
"button"
class=
"hollowFixedBtn"
value=
"查询"
@
click=
"getcarList"
/>
</li>
<li></li>
</ul>
</div>
<el-table
:data=
"carList"
border
style=
"width: 100%"
>
<el-table-column
prop=
"CarName"
label=
"名称"
>
<
template
slot-scope=
"scope"
>
<div
style=
"display: flex;align-items: center;"
>
<div
class=
"app-image"
:style=
"
{backgroundImage:'url(' + scope.row.CarLogo + ')',backgroundSize:'cover'}">
</div>
<div
flex=
"dir:left cross:center"
>
{{
scope
.
row
.
CarName
}}
</div>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"CarTypeName"
label=
"类型"
>
</el-table-column>
<el-table-column
prop=
"CarModel"
label=
"型号"
>
</el-table-column>
<el-table-column
prop=
"CarColor"
label=
"颜色"
>
</el-table-column>
<el-table-column
prop=
"BrandName"
label=
"品牌"
>
</el-table-column>
<el-table-column
prop=
"CarNo"
label=
"车牌号"
>
</el-table-column>
<el-table-column
prop=
"GuestNum"
label=
"荷载人数"
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<div
class=
"btn_check"
style=
"display: inline-block;
margin: 0 0 0 10px;
padding: 0 15px;
height: 30px;
line-height: 28px;
font-size: 14px;
color: #E95252;
background: #fff;
border: 1px solid #E95252;
border-radius: 15px;
cursor: pointer;"
@
click=
"carxuanzhe(scope.row)"
>
选择
</div>
</
template
>
</el-table-column>
</el-table>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogVisible = false"
>
关 闭
</el-button>
</span>
</el-dialog>
</div>
</template>
<
script
>
import
lineProductCalendar
from
'./lineProductCalendar'
;
// import commonHotelLog from "../../commonPage/commonHotelLog.vue";
export
default
{
components
:
{
lineProductCalendar
,
//日志组件
// commonHotelLog
},
data
()
{
var
emptyJudge
=
(
rule
,
value
,
callback
)
=>
{
let
regPos
=
/^
\d
+
(\.\d
+
)?
$/
;
if
(
!
regPos
.
test
(
value
))
{
this
.
$message
.
error
(
rule
.
message
)
callback
(
new
Error
())
}
else
{
callback
()
}
}
var
arrJudge
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
.
length
===
0
)
{
this
.
$message
.
error
(
rule
.
message
)
callback
(
new
Error
())
}
else
{
callback
()
}
}
var
dateJudge
=
(
rule
,
value
,
callback
)
=>
{
if
(
this
.
msg
.
Year
===
null
)
{
this
.
msg
.
Year
=
''
}
if
(
this
.
msg
.
Month
===
null
)
{
this
.
msg
.
Month
=
''
}
if
(
this
.
msg
.
DayType
===
'1'
)
{
if
(
this
.
msg
.
Year
.
toString
().
trim
()
===
''
&&
rule
.
field
===
'Year'
)
{
this
.
$message
.
error
(
this
.
$t
(
'ground.qingxuanzn'
))
callback
(
new
Error
())
}
else
{
callback
()
}
}
else
if
(
this
.
msg
.
DayType
===
'2'
)
{
if
(
this
.
msg
.
Month
.
toString
().
trim
()
===
''
&&
rule
.
field
===
'Month'
)
{
this
.
$message
.
error
(
this
.
$t
(
'ground.qingxuanzy'
))
callback
(
new
Error
())
}
else
{
callback
()
}
}
else
if
(
this
.
msg
.
DayType
===
'3'
)
{
if
(
this
.
msg
.
Year
.
toString
().
trim
()
===
''
&&
rule
.
field
===
'Year'
)
{
this
.
$message
.
error
(
this
.
$t
(
'ground.qingxuanzn'
))
callback
(
new
Error
())
}
else
if
(
this
.
msg
.
Week
.
toString
().
trim
()
===
''
&&
rule
.
field
===
'Week'
)
{
this
.
$message
.
error
(
this
.
$t
(
'ground.qingxuanzz'
))
callback
(
new
Error
())
}
else
{
callback
()
}
}
else
if
(
this
.
msg
.
DayType
===
'4'
)
{
if
(
this
.
msg
.
StartDate
.
toString
().
trim
()
===
''
&&
rule
.
field
===
'StartDate'
)
{
this
.
$message
.
error
(
this
.
$t
(
'ground.qingxuanzekssj'
))
callback
(
new
Error
())
}
else
if
(
this
.
msg
.
EndDate
.
toString
().
trim
()
===
''
&&
rule
.
field
===
'EndDate'
)
{
this
.
$message
.
error
(
this
.
$t
(
'ground.qingxuanzejssj'
))
callback
(
new
Error
())
}
else
{
callback
()
}
}
}
return
{
hotelId
:
'0'
,
dialogVisible
:
false
,
condition
:
{
month
:
''
},
hotelInfo
:
{
HotelName
:
''
,
TotalInventory
:
''
,
Validity
:
''
},
dayList
:
[],
calendar
:
{
num
:
0
,
show
:
false
,
data
:
{}
},
editShow
:
false
,
msg
:
{
ProductId
:
'0'
,
DayType
:
'4'
,
StartDate
:
''
,
EndDate
:
''
,
Year
:
''
,
Month
:
''
,
Week
:
''
,
DateList
:
[],
PlanList
:[
{
DepartureTime
:
''
,
CarId
:
''
,
Price
:
''
,
CostPrice
:
''
,
B2CPrice
:
''
,
CarName
:
''
}
]
},
msg2
:
{
ProductId
:
'0'
,
DayType
:
'5'
,
StartDate
:
''
,
EndDate
:
''
,
Year
:
''
,
Month
:
''
,
Week
:
''
,
DateList
:
[],
PlanList
:[
{
DepartureTime
:
''
,
CarId
:
''
,
Price
:
''
,
CostPrice
:
''
,
B2CPrice
:
''
,
CarName
:
''
}
]
},
carmsg
:{
CarType
:
'0'
,
CarName
:
''
,
BrandName
:
''
,
},
rules
:
{
InventoryType
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule[0]"
),
trigger
:
'blur'
},
DayType
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule[1]"
),
trigger
:
'blur'
},
Year
:
{
validator
:
dateJudge
,
message
:
this
.
$t
(
"ground.fromrule[2]"
),
trigger
:
'blur'
},
Month
:
{
validator
:
dateJudge
,
message
:
this
.
$t
(
"ground.fromrule[3]"
),
trigger
:
'blur'
},
Week
:
{
validator
:
dateJudge
,
message
:
this
.
$t
(
"ground.fromrule[4]"
),
trigger
:
'blur'
},
StartDate
:
{
validator
:
dateJudge
,
message
:
this
.
$t
(
"ground.fromrule[5]"
),
trigger
:
'blur'
},
EndDate
:
{
validator
:
dateJudge
,
message
:
this
.
$t
(
"ground.fromrule[6]"
),
trigger
:
'blur'
},
Inventory
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule[7]"
),
trigger
:
'blur'
},
CostPrice
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule[8]"
),
trigger
:
'blur'
},
BidroomPrice
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule[9]"
),
trigger
:
'blur'
},
SingleroomPrice
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule[10]"
),
trigger
:
'blur'
},
ChildNotBedPrice
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule[11]"
),
trigger
:
'blur'
},
AddBedPrice
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule[12]"
),
trigger
:
'blur'
},
DriverRoomPrice
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule[13]"
),
trigger
:
'blur'
},
GuideRoomPrice
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule[14]"
),
trigger
:
'blur'
},
CurrencyId
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule[15]"
),
trigger
:
'blur'
},
CurrentRate
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule[16]"
),
trigger
:
'blur'
},
WeekendAddPrice
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule[17]"
),
trigger
:
'blur'
},
InteriorAddPrice
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule[18]"
),
trigger
:
'blur'
},
},
rules2
:
{
InventoryType
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule2[0]"
),
trigger
:
'blur'
},
DateList
:
{
validator
:
arrJudge
,
message
:
this
.
$t
(
"ground.fromrule2[1]"
),
trigger
:
'blur'
},
Inventory
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule2[2]"
),
trigger
:
'blur'
},
CostPrice
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule2[3]"
),
trigger
:
'blur'
},
BidroomPrice
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule2[4]"
),
trigger
:
'blur'
},
SingleroomPrice
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule2[5]"
),
trigger
:
'blur'
},
ChildNotBedPrice
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule2[6]"
),
trigger
:
'blur'
},
AddBedPrice
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule2[7]"
),
trigger
:
'blur'
},
DriverRoomPrice
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule2[8]"
),
trigger
:
'blur'
},
GuideRoomPrice
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule2[9]"
),
trigger
:
'blur'
},
CurrencyId
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule2[10]"
),
trigger
:
'blur'
},
CurrentRate
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule2[11]"
),
trigger
:
'blur'
},
WeekendAddPrice
:
{
validator
:
emptyJudge
,
message
:
this
.
$t
(
"ground.fromrule2[12]"
),
trigger
:
'blur'
},
},
companyList
:[],
//车辆类型
carList
:[],
//车辆列表
msgindex
:
0
,
msg2index
:
0
,
msgtype
:
1
,
//1是页面下面的选择 2是弹窗的选择
}
},
methods
:
{
//库存类型
stockColor
:
function
(
item
,
item2
,
childItem
)
{
if
(
item
.
date
===
item2
.
month
&&
item2
.
hasOwnProperty
(
'data'
))
{
let
type
=
item2
.
data
.
SubList
.
length
;
if
(
type
>
0
){
return
'hasStock_1'
;
}
// if (type === 1) {
// return 'hasStock_1';
// } else if (type === 2) {
// return 'hasStock_2';
// } else if (type === 3) {
// return 'hasStock_3';
// } else if (type === 4) {
// return 'hasStock_4';
// } else if (type === 5) {
// return 'hasStock_5';
// }
}
else
{
return
;
}
},
//日历点击事件
calendarDayOn
:
function
(
item
,
item2
)
{
if
(
item
.
date
===
item2
.
month
)
{
let
dayIndex
=
this
.
msg2
.
DateList
.
indexOf
(
item2
.
day
)
if
(
dayIndex
===
-
1
)
{
this
.
msg2
.
DateList
.
push
(
item2
.
day
)
this
.
msg2
.
DateList
.
sort
()
}
else
{
this
.
msg2
.
DateList
.
splice
(
dayIndex
,
1
)
}
}
},
calendarDayOff
:
function
(
item
)
{
let
dayIndex
=
this
.
msg2
.
DateList
.
indexOf
(
item
)
this
.
msg2
.
DateList
.
splice
(
dayIndex
,
1
)
},
getData
:
function
(
date
,
key
)
{
this
.
apipost
(
'car_get_GetLineProductPriceMonthStatistics'
,
{
ProductId
:
this
.
hotelId
,
Year
:
date
.
split
(
'-'
)[
0
],
Month
:
date
.
split
(
'-'
)[
1
]
},
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
let
json
=
res
.
data
.
data
;
for
(
let
i
=
0
;
i
<
this
.
dayList
[
key
].
days
.
length
;
i
++
)
{
for
(
let
j
=
0
;
j
<
json
.
length
;
j
++
)
{
if
(
this
.
dayList
[
key
].
days
[
i
].
day
===
json
[
j
].
DayStr
)
{
this
.
dayList
[
key
].
days
[
i
][
'data'
]
=
json
[
j
]
}
}
}
console
.
log
(
this
.
dayList
[
key
])
if
(
key
===
this
.
calendar
.
num
)
{
this
.
$set
(
this
.
calendar
,
'data'
,
this
.
dayList
[
this
.
calendar
.
num
])
}
this
.
$forceUpdate
();
}
})
},
getCalendarDays
:
function
(
date
,
key
)
{
let
month
=
new
Date
(
date
).
Format
(
'yyyy-MM'
)
let
tempMonth
=
this
.
$calendarUtils
.
createCalendar_V2
(
date
).
DayArray
;
let
days
=
[];
for
(
let
i
=
0
;
i
<
tempMonth
.
length
;
i
++
)
{
let
month
=
tempMonth
[
i
].
day
.
Format
(
'yyyy-MM'
);
let
day
=
tempMonth
[
i
].
day
.
Format
(
'yyyy-MM-dd'
);
days
.
push
({
date
:
tempMonth
[
i
].
day
,
month
:
month
,
day
:
day
});
};
this
.
dayList
[
key
]
=
{
date
:
month
,
days
:
days
,
isCked
:
false
};
this
.
getData
(
date
,
key
);
},
getMonths
:
function
()
{
let
month
=
this
.
condition
.
month
+
'-1'
for
(
let
i
=
0
;
i
<
4
;
i
++
)
{
if
(
i
!==
0
)
{
let
newDate
=
new
Date
(
month
).
setDate
(
32
);
month
=
new
Date
(
newDate
).
Format
(
'yyyy-MM'
)
+
'-1'
;
}
this
.
getCalendarDays
(
month
,
i
);
}
},
calendarShow
:
function
(
item
,
index
)
{
this
.
calendar
.
num
=
index
;
this
.
calendar
.
data
=
item
;
this
.
calendar
.
show
=
true
;
},
addcarlist_o
(
type
){
let
obj
=
{
DepartureTime
:
''
,
CarId
:
''
,
Price
:
''
,
CostPrice
:
''
,
B2CPrice
:
''
,
CarName
:
''
}
if
(
type
==
1
){
this
.
msg
.
PlanList
.
push
(
obj
)
}
else
if
(
type
==
2
){
this
.
msg2
.
PlanList
.
push
(
obj
)
}
},
delete_b
(
index
,
y
){
//删除
if
(
y
==
1
){
this
.
msg
.
PlanList
.
splice
(
index
,
1
)
}
else
if
(
y
==
2
){
this
.
msg2
.
PlanList
.
splice
(
index
,
1
)
}
},
carxuanzhe
(
row
){
if
(
this
.
msgtype
==
1
){
this
.
msg
.
PlanList
[
this
.
msgindex
].
CarId
=
row
.
Id
this
.
msg
.
PlanList
[
this
.
msgindex
].
CarName
=
row
.
CarName
}
else
if
(
this
.
msgtype
==
2
){
this
.
msg2
.
PlanList
[
this
.
msg2index
].
CarId
=
row
.
Id
this
.
msg2
.
PlanList
[
this
.
msg2index
].
CarName
=
row
.
CarName
}
this
.
dialogVisible
=
false
},
cartanc
(
y
,
type
){
//选择车辆弹窗
if
(
type
==
1
){
this
.
msgindex
=
y
;
}
else
if
(
type
==
2
){
this
.
msg2index
=
y
;
}
this
.
msgtype
=
type
this
.
dialogVisible
=
true
},
getcarList
(){
this
.
apipost
(
'car_get_GetCarInfoList'
,
this
.
carmsg
,
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
carList
=
res
.
data
.
data
}
else
{
this
.
Error
(
res
.
data
.
message
)
}
})
},
getCompany
()
{
//车辆类型
this
.
apipost
(
'car_get_GetCarCustomTypeEnumList'
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
companyList
=
res
.
data
.
data
;
}
},
err
=>
{})
},
// 日期类型切换
dayTypeChange
:
function
(
val
)
{
this
.
msg
.
Year
=
''
this
.
msg
.
Month
=
''
this
.
msg
.
Week
=
''
this
.
msg
.
StartDate
=
''
this
.
msg
.
EndDate
=
''
},
// 打开编辑窗口
goEdit
:
function
(
type
,
date
,
BatchNumber
)
{
let
nowDate
=
new
Date
().
Format
(
'yyyy-MM-dd'
);
this
.
msg
.
StartDate
=
date
===
undefined
?
nowDate
:
date
;
this
.
msg
.
EndDate
=
date
===
undefined
?
nowDate
:
date
;
if
(
type
===
'2'
&&
date
)
{
this
.
msg
.
DayType
=
'4'
this
.
msg
.
PlanList
=
BatchNumber
}
this
.
$forceUpdate
();
this
.
editShow
=
true
;
},
// 取消按钮
editCanel
:
function
()
{
this
.
editShow
=
false
;
this
.
$refs
[
'hotelProductForm'
].
resetFields
();
},
// 弹窗初始化
tancchushih
(){
this
.
msg
=
{
ProductId
:
this
.
hotelId
,
DayType
:
'4'
,
StartDate
:
''
,
EndDate
:
''
,
Year
:
''
,
Month
:
''
,
Week
:
''
,
DateList
:
[],
PlanList
:[
{
DepartureTime
:
''
,
CarId
:
''
,
Price
:
''
,
CostPrice
:
''
,
B2CPrice
:
''
,
CarName
:
''
}
]
};
},
// 保存按钮
editSave
:
function
()
{
this
.
$refs
[
'hotelProductForm'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
apipost
(
'car_post_SetLineProductPrice'
,
this
.
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
Success
(
this
.
$t
(
'ground.bianjichenggong'
))
this
.
getMonths
()
this
.
editShow
=
false
this
.
tancchushih
()
//初始化数据
}
else
{
this
.
Error
(
res
.
data
.
message
)
}
})
}
else
{
return
false
;
}
});
},
//批量删除
delete2Reset
:
function
()
{
var
that
=
this
;
if
(
that
.
msg2
.
DateList
.
length
==
0
){
that
.
Error
(
'选择要删除的日期'
)
return
false
}
this
.
Confirm
(
this
.
$t
(
'tips.shifoushanchu'
),
function
()
{
that
.
apipost
(
'car_post_DelLineProductPrice'
,
{
ProductId
:
that
.
hotelId
,
DateList
:
that
.
msg2
.
DateList
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
that
.
Success
(
res
.
data
.
message
)
that
.
getMonths
();
that
.
msg2
.
DateList
=
[]
}
else
{
that
.
Error
(
res
.
data
.
message
)
}
},
err
=>
{})
});
},
// 页面编辑保存
edit2Save
:
function
()
{
this
.
$refs
[
'hotelProductForm2'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
apipost
(
'car_post_SetLineProductPrice'
,
this
.
msg2
,
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
Success
(
this
.
$t
(
'ground.bianjichenggong'
))
this
.
getMonths
();
this
.
msg2
=
{
//初始化数据
ProductId
:
this
.
hotelId
,
DayType
:
'5'
,
StartDate
:
''
,
EndDate
:
''
,
Year
:
''
,
Month
:
''
,
Week
:
''
,
DateList
:
[],
PlanList
:[
{
DepartureTime
:
''
,
CarId
:
''
,
Price
:
''
,
CostPrice
:
''
,
B2CPrice
:
''
,
CarName
:
''
}
]
};
}
else
{
this
.
Error
(
res
.
data
.
message
)
}
})
}
else
{
return
false
;
}
});
},
//增加全选
changeHotelStatus
(
item
,
index
)
{
if
(
item
.
isCked
)
{
item
.
days
.
forEach
(
x
=>
{
if
(
x
.
month
==
item
.
date
)
{
if
(
this
.
msg2
.
DateList
.
indexOf
(
x
.
day
)
==
-
1
)
{
this
.
msg2
.
DateList
.
push
(
x
.
day
);
}
}
})
}
else
{
item
.
days
.
forEach
(
x
=>
{
this
.
msg2
.
DateList
.
forEach
((
y
,
index
)
=>
{
if
(
x
.
day
==
y
)
{
this
.
msg2
.
DateList
.
splice
(
index
,
1
)
}
})
})
}
}
},
created
:
function
()
{
this
.
hotelId
=
this
.
$route
.
query
.
id
===
undefined
?
'0'
:
this
.
$route
.
query
.
id
;
this
.
msg
.
ProductId
=
this
.
$route
.
query
.
id
===
undefined
?
'0'
:
this
.
$route
.
query
.
id
;
this
.
msg2
.
ProductId
=
this
.
$route
.
query
.
id
===
undefined
?
'0'
:
this
.
$route
.
query
.
id
;
this
.
condition
.
month
=
new
Date
().
Format
(
'yyyy-MM'
);
let
nowDate
=
new
Date
().
Format
(
'yyyy-MM-dd'
);
this
.
msg
.
DayType
=
'4'
;
this
.
msg
.
StartDate
=
nowDate
;
this
.
msg
.
EndDate
=
nowDate
;
},
mounted
:
function
()
{
this
.
getMonths
();
this
.
getcarList
()
//获取车辆列表
this
.
getCompany
()
//获取车辆类型
}
}
</
script
>
<
style
>
.hotelProductManage2
{
padding
:
20px
0
;
}
.hotelproductCkbox
{
width
:
10%
;
height
:
30px
;
float
:
right
;
margin
:
5px
20px
0
0
;
}
.hotelProductManage2
>
.hotelProductManage2_btnList
{
position
:
fixed
;
top
:
36px
;
right
:
20px
;
text-align
:
right
;
margin
:
20px
0
0
0
;
}
.hotelProductManage2_btnList
>
.btn_check
{
display
:
inline-block
;
margin
:
0
0
0
10px
;
padding
:
0
15px
;
height
:
30px
;
line-height
:
28px
;
font-size
:
14px
;
color
:
#E95252
;
background
:
#fff
;
border
:
1px
solid
#E95252
;
border-radius
:
15px
;
cursor
:
pointer
;
}
.hotelProductManage2_condition
{
padding
:
0
0
0
0
;
text-align
:
right
;
}
.hotelProductManage2_condition
>
div
{
display
:
inline-block
;
text-align
:
left
;
}
.hotelProductManage2_condition
>
div
>
em
{
margin
:
0
5px
0
0
;
font-size
:
14px
;
color
:
#666666
;
}
.hotelProductManage2_tableBox
{
padding
:
20px
0
;
}
.hotelProductManage2_table
{
width
:
100%
;
color
:
#333
;
border-bottom
:
1px
solid
#cccccc
;
border-right
:
1px
solid
#cccccc
;
}
.hotelProductManage2_table
tr
{
background
:
#fff
;
}
.hotelProductManage2_table
tr
th
{
background
:
#e6e6e6
;
height
:
40px
;
font-size
:
12px
;
text-align
:
center
;
border-top
:
1px
solid
#cccccc
;
border-left
:
1px
solid
#cccccc
;
}
.hotelProductManage2_table
tr
td
{
height
:
40px
;
font-size
:
12px
;
text-align
:
center
;
border-top
:
1px
solid
#cccccc
;
border-left
:
1px
solid
#cccccc
;
}
.hotelProductManage2_calendar
{
position
:
relative
;
padding
:
20px
0
;
width
:
100%
;
border-top
:
1px
solid
#E5E5E5
;
border-bottom
:
1px
solid
#E5E5E5
;
}
.hotelProductManage2_calendarBox
{
position
:
absolute
;
z-index
:
2
;
left
:
0px
;
top
:
0px
;
padding
:
20px
0
;
width
:
100%
;
}
.hotelProductManage2_calendarItem
{
display
:
inline-block
;
margin
:
0
5px
;
width
:
24%
;
/* width:438px; */
background-color
:
#fff
;
border
:
1px
solid
#d1d1d1
;
border-radius
:
4px
;
font-size
:
0px
;
}
.hotelProductManage2_calendarItem
:hover
{
box-shadow
:
0px
0px
5px
5px
#E5E5E5
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_month
{
width
:
50%
;
height
:
30px
;
float
:
left
;
margin-left
:
110px
;
line-height
:
30px
;
text-align
:
center
;
font-size
:
14px
;
cursor
:
pointer
;
text-decoration
:
underline
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_week
{
display
:
flex
;
justify-content
:
space-around
;
padding
:
10px
0
;
width
:
100%
;
height
:
36px
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_week
>
div
{
display
:
inline-block
;
width
:
14.2%
;
height
:
16px
;
line-height
:
16px
;
text-align
:
center
;
font-size
:
14px
;
color
:
#999999
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
{
display
:
flex
;
justify-content
:
space-around
;
flex-wrap
:
wrap
;
padding-bottom
:
20px
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
div
{
display
:
inline-block
;
padding
:
15px
0
;
width
:
14.2%
;
position
:
relative
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
div
>
div
{
margin
:
auto
;
width
:
30px
;
height
:
30px
;
text-align
:
center
;
line-height
:
26px
;
font-size
:
14px
;
border
:
2px
solid
transparent
;
border-radius
:
50%
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
.nowMonth
>
div
{
color
:
#000000
;
cursor
:
pointer
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
.otherMonth
>
div
{
color
:
gainsboro
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
div
>
.hasStock_1
{
background-color
:
#ff6363
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
div
>
.hasStock_2
{
background-color
:
#ff99cc
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
div
>
.hasStock_3
{
background-color
:
#bcd6ee
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
div
>
.hasStock_4
{
background-color
:
#DDDDDD
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
div
>
.hasStock_5
{
background-color
:
#02F78E
;
}
/* 页面编辑 */
.hotelProductManage2_edit2
{
margin
:
20px
0
0
0
;
padding
:
10px
10px
0
;
width
:
100%
;
border-radius
:
4px
;
border
:
1px
solid
#E5E5E5
;
background-color
:
#FFFFFF
;
overflow
:
auto
;
}
.hotelProductManage2_edit2
>
.hotelProductManage2_edit2_header
{
position
:
relative
;
width
:
100%
;
height
:
30px
;
}
.hotelProductManage2_edit2_header
>
div
:nth-child
(
1
)
{
display
:
inline-block
;
padding
:
0
20px
;
width
:
200px
;
height
:
30px
;
line-height
:
30px
;
font-size
:
16px
;
border-left
:
3px
solid
#E95252
;
}
.hotelProductManage2_edit2_header
>
div
:nth-child
(
2
)
{
position
:
absolute
;
top
:
0px
;
right
:
0px
;
height
:
30px
;
}
.hotelProductManage2_edit2_header
>
div
:nth-child
(
2
)>
div
:nth-child
(
1
)
{
display
:
inline-block
;
margin
:
0
5px
;
padding
:
0
15px
;
height
:
30px
;
line-height
:
28px
;
font-size
:
14px
;
color
:
#E95252
;
background
:
#fff
;
border
:
1px
solid
#E95252
;
border-radius
:
15px
;
vertical-align
:
top
;
cursor
:
pointer
;
}
.hotelProductManage2_edit2_header
>
div
:nth-child
(
2
)>
div
:nth-child
(
2
)
{
display
:
inline-block
;
padding
:
0
15px
;
height
:
30px
;
line-height
:
28px
;
font-size
:
14px
;
color
:
#fff
;
background
:
#E95252
;
border
:
1px
solid
#E95252
;
border-radius
:
15px
;
vertical-align
:
top
;
cursor
:
pointer
;
}
.hotelProductManage2_edit2
>
.hotelProductManage2_edit2_form
{
padding
:
10px
0
;
}
.hotelProductManage2_edit2_form
.el-input
{
width
:
160px
;
}
.hotelProductManage2_edit2_form
.el-input-number
{
width
:
160px
;
}
.hotelProductManage2_edit2_form
.el-input__inner
{
width
:
160px
;
}
.hotelProductManage2_edit2_form
.el-textarea__inner
{
resize
:
none
;
}
.hotelProductManage2_edit2_form
.HotelProductEdit_date
.el-form-item__content
{
width
:
1000px
;
min-height
:
9px
;
}
/* 弹出编辑 */
.hotelProductManage2_edit
{
position
:
fixed
;
z-index
:
50
;
bottom
:
0
;
left
:
50px
;
width
:
100%
;
/* padding: 10px 10px 0; */
min-width
:
1316px
;
min-height
:
340px
;
border-top
:
3px
solid
#38425d
;
background-color
:
#FFFFFF
;
overflow
:
auto
;
}
.hotelProductManage2_edit
>
.hotelProductManage2_edit_header
{
position
:
relative
;
width
:
100%
;
height
:
30px
;
padding
:
15px
20px
;
}
.hotelProductManage2_edit_header
>
div
:nth-child
(
1
)
{
display
:
inline-block
;
padding
:
0
20px
;
width
:
200px
;
height
:
30px
;
line-height
:
30px
;
font-size
:
16px
;
border-left
:
3px
solid
#E95252
;
}
.hotelProductManage2_edit_header
>
div
:nth-child
(
2
)
{
position
:
absolute
;
top
:
15px
;
right
:
80px
;
height
:
30px
;
}
.hotelProductManage2_edit_header
>
div
:nth-child
(
2
)>
div
:nth-child
(
1
)
{
display
:
inline-block
;
margin
:
0
5px
;
padding
:
0
15px
;
height
:
30px
;
line-height
:
28px
;
font-size
:
14px
;
color
:
#E95252
;
background
:
#fff
;
border
:
1px
solid
#E95252
;
border-radius
:
15px
;
vertical-align
:
top
;
cursor
:
pointer
;
}
.hotelProductManage2_edit_header
>
div
:nth-child
(
2
)>
div
:nth-child
(
2
)
{
display
:
inline-block
;
padding
:
0
15px
;
height
:
30px
;
line-height
:
28px
;
font-size
:
14px
;
color
:
#fff
;
background
:
#E95252
;
border
:
1px
solid
#E95252
;
border-radius
:
15px
;
vertical-align
:
top
;
cursor
:
pointer
;
}
.hotelProductManage2_edit
>
.hotelProductManage2_edit_form
{
padding
:
10px
0
;
}
.hotelProductManage2_edit_form
.el-input
{
width
:
180px
;
}
.hotelProductManage2_edit_form
.el-input__inner
{
width
:
180px
;
}
.hotelProductManage2_edit_form
.el-textarea__inner
{
resize
:
none
;
}
.hotelProductManage2_edit_form
.HotelProductEdit_date
>
div
{
display
:
inline-block
;
vertical-align
:
middle
;
}
.hotelProductManage2_edit_form
.HotelProductEdit_date
>
div
>
em
{
display
:
inline-block
;
margin
:
7px
10px
0
0
;
padding
:
0
0
0
0
;
}
.hotelProductManage2
.RabateDiv
{
margin-left
:
25px
;
}
.hotelProductManage2
.RebateCount
{
height
:
34px
;
border-radius
:
17px
;
float
:
left
;
}
.hotelProductManage2
.reOne
,
.hotelProductManage2
.reTwo
,
.hotelProductManage2.dayNum
{
position
:
relative
;
}
.hotelProductManage2
.leftPnum
{
float
:
left
;
background-color
:
#f5f7fa
;
height
:
40px
;
line-height
:
40px
;
text-align
:
center
;
border-right
:
1px
solid
#cccccc
;
position
:
absolute
;
left
:
1px
;
top
:
1px
;
font-size
:
14px
;
padding
:
0
10px
;
color
:
#606266
;
}
.hotelProductManage2
.toolInput
{
height
:
42px
;
padding-left
:
5px
;
border
:
none
;
}
.hotelProductManage2
.inpuOne
{
width
:
225px
;
padding-left
:
120px
;
border
:
1px
solid
#d1d1d1
;
border-right
:
none
;
}
.hotelProductManage2
.inpuTwo
{
width
:
166px
;
padding
:
0
45px
0
77px
;
border
:
1px
solid
#d1d1d1
;
}
.hotelProductManage2
.fanNum
{
float
:
left
;
background-color
:
#f5f7fa
;
height
:
40px
;
line-height
:
40px
;
text-align
:
center
;
border-right
:
1px
solid
#cccccc
;
position
:
absolute
;
left
:
1px
;
top
:
1px
;
padding
:
0
10px
;
color
:
#606266
;
font-size
:
14px
;
}
.popList
{
font-size
:
12px
;
line-height
:
15px
;
text-align
:
left
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
.nowMonth
:hover
.detailInfo
{
display
:
block
;
}
.hotelProductManage2
.detailInfo
{
display
:
none
;
position
:
absolute
;
left
:
-145px
;
top
:
50px
;
z-index
:
999
;
}
.hotelProductManage2
.triangle_border_up
{
width
:
0
;
height
:
0
;
border-width
:
0
175px
30px
;
border-style
:
solid
;
opacity
:
0.75
;
border-color
:
transparent
transparent
rgba
(
233
,
82
,
82
,
1
);
/*透明 透明 灰*/
}
.hotelProductManage2
.detailInfo
.popContent
{
width
:
350px
;
min-height
:
80px
;
background-color
:
#e95252
;
text-align
:
left
;
color
:
#fff
;
font-size
:
12px
;
margin-top
:
-2px
;
overflow
:
auto
;
padding-bottom
:
10px
;
}
.hotelProductManage2
.popList
label
:first-child
{
display
:
inline-block
;
width
:
40%
;
margin
:
10px
0
0
10px
;
text-align
:
left
;
}
.hotelProductManage2
.popList
label
:last-child
{
display
:
inline-block
;
width
:
40%
;
margin
:
10px
10px
0
0
;
text-align
:
right
;
}
.hotelProductManage2
.Htupbtn
{
padding
:
0
10px
;
height
:
25px
;
margin
:
10px
0
0
75px
;
}
</
style
>
src/router/config.js
View file @
163e76f0
...
...
@@ -2667,8 +2667,14 @@ export default {
title
:
'线路管理'
},
},
{
path
:
'/lineoffer'
,
//定制包车=>线路报价
name
:
'lineoffer'
,
component
:
resolve
=>
require
([
'@/components/TravelManager/customizedcar/lineoffer'
],
resolve
),
meta
:
{
title
:
'线路报价'
},
},
...
...
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