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
9e07547b
Commit
9e07547b
authored
Apr 12, 2023
by
沈良进
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/superman
parents
2c2fe27a
a2965fea
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
37 additions
and
332 deletions
+37
-332
HotelList.vue
src/components/Hotel/singleProduct/HotelList.vue
+5
-319
HotelQueryList.vue
src/components/Hotel/singleProduct/HotelQueryList.vue
+19
-11
ListCar.vue
src/components/Hotel/singleProduct/components/ListCar.vue
+3
-2
productQuery.vue
src/components/SalesModule/productQuery.vue
+4
-0
productQueryOne.vue
src/components/SalesModule/productQueryOne.vue
+4
-0
TravelPrice.vue
...nents/newTravelmanager/TravelGroupControl/TravelPrice.vue
+2
-0
No files found.
src/components/Hotel/singleProduct/HotelList.vue
View file @
9e07547b
<
template
>
<div>
<div
class=
"query-box"
style=
"border-bottom: none;"
>
<ul>
<li>
<span>
<em>
{{
$t
(
'system.quety_area'
)
}}
</em>
<el-select
v-model=
"msg.Province"
filterable
@
change=
"getProvinceList(msg.Province,2)"
:placeholder=
"$t('hotel.hotel_province')"
>
<el-option
:key=
"0"
:value=
"0"
label=
"请选择"
></el-option>
<el-option
v-for=
"item in provinceList"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
</el-select>
<el-select
v-model=
"msg.City"
filterable
:placeholder=
"$t('hotel.hotel_city')"
>
<el-option
:key=
"0"
:value=
"0"
label=
"请选择"
></el-option>
<el-option
v-for=
"item in cityList"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>
星级
</em>
<el-select
v-model=
"msg.Star"
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'0'
></el-option>
<el-option
label=
"3星或商务"
:value=
'3'
></el-option>
<el-option
label=
"4星"
:value=
'4'
></el-option>
<el-option
label=
"5星"
:value=
'5'
></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>
价格区间
</em>
<el-input
type=
"Number"
v-model=
"msg.MinPrice"
></el-input>
<span
style=
"padding: 0 10px;"
>
-
</span>
<el-input
type=
"Number"
v-model=
"msg.MaxPrice"
></el-input>
</span>
</li>
<li><span><em>
日期
</em>
<el-date-picker
v-model=
'msg.StartDate'
value-format=
"yyyy-MM-dd"
type=
"date"
:picker-options=
"beforeCheck"
>
</el-date-picker>
<el-date-picker
v-model=
'msg.EndDate'
value-format=
"yyyy-MM-dd"
type=
"date"
:picker-options=
"afterCheck"
>
</el-date-picker>
</span>
</li>
<li>
<span>
<em>
酒店
</em>
<el-input
type=
""
v-model=
"msg.HotelName"
placeholder=
"酒店名称"
></el-input>
<!--
<el-select
v-model=
"msg.HotelChooseArray"
:placeholder=
"$t('pub.pleaseSel')"
class=
"multiple_input w300"
filterable
multiple
collapse-tags
:multiple-limit=
"3"
>
<el-option
v-for=
"item in HotelList"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
</el-select>
-->
</span>
</li>
<li>
<button
style=
"position: relative;"
class=
"hollowFixedBtn"
type=
"primary"
@
click=
"rightCarOpen=true"
>
<i
class=
"el-icon-goods"
></i>
购物车
<span
v-if=
"HotelLength>0"
style=
"position: absolute;right: 0px;top: -5px;color: #ffffff;
border-radius: 50%;background: #f1416c;width: 15px;height: 15px;"
>
{{
HotelLength
}}
</span>
</button>
<input
type=
"button"
class=
"normalBtn"
value=
"查询"
@
click=
"getList(),msg.pageIndex=1"
/>
</li>
</ul>
</div>
<div
style=
"width: 100%;min-height:200px; overflow-x: auto;padding-bottom: 10px; "
class=
"HotelQueryList"
v-loading=
"loading"
>
<div
class=
"hotelProductManage2_tableBox"
style=
"margin-bottom:20px;"
>
<span
style=
"color:#000000;background-color: #ff3737;padding:2px 4px;border-radius:5px"
>
红日
</span>
<span
style=
"color:#000000;background-color: #ff99cc;padding:2px 4px;border-radius:5px"
>
旺季
</span>
<span
style=
"color:#000000;background-color: #bcd6ee;padding:2px 4px;border-radius:5px"
>
平季
</span>
<span
style=
"color:#000000;background-color: #DDDDDD;padding:2px 4px;border-radius:5px"
>
淡季
</span>
<span
style=
"color:#000000;background-color: #02F78E;padding:2px 4px;border-radius:5px"
>
特别价
</span>
<span
style=
"color:#000000;background-color: #808000;padding:2px 4px;border-radius:5px"
>
行前日
</span>
</div>
<template
v-if=
"isShow"
>
<hotelTableList
v-loading=
'loading'
:list=
"dataList"
:tableHeight=
"tableHeight"
@
showOrderSubmitHandler=
"showOrderSubmitHandler"
@
success=
"success"
@
close=
"close"
></hotelTableList>
<div
class=
"noDataNotice"
v-if=
"dataList&&dataList.length==0"
>
<i
class=
"iconfont icon-kong"
></i>
<p>
{{
$t
(
"active.ld_noData"
)
}}
</p>
</div>
<el-pagination
v-if=
"dataList.length>0"
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"msg.pageIndex"
layout=
"total,prev, pager, next, jumper"
:page-size=
'msg.pageSize'
:total=
'total'
></el-pagination>
</
template
>
</div>
<!-- 暂存购物车 -->
<el-dialog
custom-class=
"w800"
title=
"酒店信息"
:visible
.
sync=
"showOrderPreview"
center
@
close=
"removeEditor"
>
<TableOperation
:editorType=
"editorType"
:HotelRow=
"orderSubmitObj"
:hotelInfor=
"orderSubmitItemObj"
@
close=
"close"
></TableOperation>
</el-dialog>
<!-- 购物车 -->
<ListCar
v-if=
"rightCarOpen"
:crmOrderObj=
"crmOrderObj"
@
close=
"close"
@
success=
"success"
@
editor=
"editor"
></ListCar>
<!-- 酒店详情信息 -->
<el-dialog
custom-class=
"w800"
title=
"酒店详情"
:visible
.
sync=
"showHotelDetails"
center
@
close=
"close"
>
<hotelDetails
:hotelId=
"HotelDetailId"
></hotelDetails>
</el-dialog>
<HotelQueryList
:pagesTitle=
"pagesTitle"
></HotelQueryList>
</div>
</
template
>
<
script
>
import
SamplePriceList
from
'./components/SamplePriceList'
import
TableOperation
from
'./components/TableOperation'
import
ListCar
from
'./components/ListCar'
import
hotelDetails
from
'./components/hotelDetails'
import
hotelTableList
from
'./components/hotelTableList'
import
HotelQueryList
from
'./HotelQueryList'
export
default
{
components
:
{
SamplePriceList
,
TableOperation
,
ListCar
,
hotelDetails
,
hotelTable
List
},
components
:
{
HotelQuery
List
},
data
()
{
return
{
showHotelDetails
:
false
,
HotelDetailId
:
0
,
editorType
:
0
,
rightCarOpen
:
false
,
HotelLength
:
0
,
orderSubmitItemObj
:
{},
orderSubmitObj
:
{},
showOrderPreview
:
false
,
total
:
0
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
//酒店选择数组
HotelChooseArray
:
[],
StartDate
:
this
.
getBeforeDate
(
-
20
,
new
Date
().
Format
(
"yyyy-MM-dd"
)),
EndDate
:
this
.
getBeforeDate
(
-
30
,
this
.
getBeforeDate
(
-
20
,
new
Date
().
Format
(
"yyyy-MM-dd"
))),
//只查询日本
Country
:
"651"
,
Province
:
0
,
City
:
0
,
OutBranchId
:
-
1
,
//星级
Star
:
0
,
//价格等级
PriceLevel
:
0
,
//供应商
Supplier
:
0
,
MaxPrice
:
0
,
MinPrice
:
0
,
HotelName
:
''
},
tableHeight
:
0
,
beforeCheck
:
{
disabledDate
:
time
=>
{
if
(
this
.
msg
.
StartDate
)
{
let
endTime
=
new
Date
(
this
.
getBeforeDate
(
-
3
,
new
Date
().
Format
(
"yyyy-MM-dd"
)));
return
time
&&
endTime
.
getTime
()
>=
time
.
getTime
();
}
else
{
return
false
;
}
}
},
afterCheck
:
{
disabledDate
:
time
=>
{
if
(
this
.
msg
.
StartDate
)
{
let
startTime
=
new
Date
(
this
.
msg
.
StartDate
);
//可以选择当天
return
time
&&
time
.
getTime
()
<
startTime
.
getTime
()
-
1
*
24
*
60
*
60
*
1000
;
}
else
{
return
false
;
}
}
},
defaultSelectValue
:
0
,
//国家 省市 区
provinceList
:
[],
cityList
:
[],
district
:
[],
HotelList
:
[],
dataList
:
[],
isShow
:
false
,
loading
:
false
,
HOTEL_memorandum
:
false
,
crmOrderObj
:
null
pagesTitle
:
'销售'
,
};
},
watch
:
{
...
...
@@ -191,154 +21,10 @@
}
},
methods
:
{
removeEditor
(){
localStorage
.
removeItem
(
'editor'
)
},
// 编辑购物车
editor
(
x
){
this
.
dataList
.
forEach
((
item
,
index
)
=>
{
if
(
item
.
HotelId
==
x
.
HotelId
){
item
.
subList
.
forEach
((
xs
,
indexs
)
=>
{
if
(
xs
.
DateStr
==
x
.
Date
){
this
.
rightCarOpen
=
false
this
.
showOrderSubmitHandler
(
item
,
indexs
,
1
)
}
})
}
})
},
// 提交预约成功
success
(){
this
.
close
()
this
.
getList
()
},
// 取消
close
(){
this
.
HotelLength
=
localStorage
.
getItem
(
"HotelLength"
)?
localStorage
.
getItem
(
"HotelLength"
):
0
this
.
showOrderPreview
=
false
this
.
rightCarOpen
=
false
this
.
showHotelDetails
=
false
localStorage
.
removeItem
(
"editor"
)
},
// 加入购物车
showOrderSubmitHandler
(
row
,
index
,
type
){
this
.
orderSubmitObj
=
row
this
.
orderSubmitItemObj
=
row
.
subList
[
index
]
this
.
showOrderPreview
=
true
this
.
editorType
=
type
?
type
:
0
},
com_onresize
()
{
//clientHeight的值由DIV内容的实际高度和CSS中的padding值决定,
var
contentsHeight
=
document
.
body
.
clientHeight
;
var
h
=
contentsHeight
-
50
-
180
-
100
;
if
(
h
<
110
)
{
return
;
}
//设置table的行高
this
.
tableHeight
=
h
;
},
getList
()
{
this
.
loading
=
true
;
if
(
this
.
msg
.
StartDate
==
null
)
{
this
.
msg
.
StartDate
=
this
.
getBeforeDate
(
-
20
,
new
Date
().
Format
(
"yyyy-MM-dd"
));
}
if
(
this
.
msg
.
EndDate
==
null
)
{
this
.
msg
.
EndDate
=
this
.
getBeforeDate
(
-
30
,
this
.
getBeforeDate
(
-
20
,
new
Date
().
Format
(
"yyyy-MM-dd"
)));
}
this
.
apipost
(
"dict_post_HotelOffer_GetClientHotelStatics"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
dataList
=
res
.
data
.
data
.
pageData
;
this
.
total
=
res
.
data
.
data
.
count
this
.
isShow
=
true
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
//获取酒店列表
GetHotelList
()
{
this
.
apipost
(
"hotel_post_GetHasStockHotelList"
,
{
QCountry
:
"651"
,
IsMoreThanZero
:
1
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
HotelList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
},
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
getProvinceList
(
ID
,
type
)
{
//根据省份获取城市
let
msg
=
{
Id
:
ID
};
if
(
type
==
1
)
{
this
.
msg
.
Province
=
0
;
this
.
msg
.
City
=
0
;
this
.
provinceList
=
[];
this
.
cityList
=
[];
}
else
if
(
type
==
2
)
{
this
.
msg
.
City
=
0
;
this
.
cityList
=
[];
}
this
.
apipost
(
"dict_post_Destination_GetChildList"
,
msg
,
res
=>
{
if
(
type
==
1
)
{
this
.
provinceList
=
res
.
data
.
data
;
}
else
if
(
type
==
2
)
{
this
.
cityList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
},
//Excel下载
DownLoadHotelQuery
()
{
this
.
loading
=
true
;
let
qMsg
=
{
queryMsg
:
this
.
msg
,
uid
:
this
.
getLocalStorage
().
EmployeeId
};
let
fileName
=
"酒店查询统计"
+
this
.
$commonUtils
.
getCurrentDate
()
+
".xls"
;
this
.
GetLocalFile
(
"hotel_get_downloadHotelQuery"
,
qMsg
,
fileName
,
res
=>
{
this
.
loading
=
false
;
});
},
},
mounted
()
{
// crm自动登陆传过来的参数
if
(
this
.
$route
.
query
.
crmOrderObj
){
this
.
crmOrderObj
=
JSON
.
parse
(
this
.
$route
.
query
.
crmOrderObj
)
}
this
.
HotelLength
=
localStorage
.
getItem
(
"HotelLength"
)?
localStorage
.
getItem
(
"HotelLength"
):
0
let
userinfo
=
this
.
getLocalStorage
();
let
ActionMenuCode
=
userinfo
.
ActionMenuCode
;
if
(
ActionMenuCode
.
indexOf
(
"HOTEL_memorandum"
)
!=
-
1
)
{
this
.
HOTEL_memorandum
=
true
;
}
this
.
getProvinceList
(
"651"
,
1
);
// this.GetHotelList();//酒店名称下拉
this
.
getList
();
this
.
com_onresize
();
window
.
onresize
=
()
=>
{
this
.
com_onresize
();
}
}
};
...
...
src/components/Hotel/singleProduct/HotelQueryList.vue
View file @
9e07547b
...
...
@@ -54,9 +54,9 @@
</span>
</li>
<li>
<input
v-if=
"HOTEL_memorandum"
type=
"button"
class=
"normalBtn"
value=
"备忘录"
<input
v-if=
"HOTEL_memorandum
&&!pagesTitle
"
type=
"button"
class=
"normalBtn"
value=
"备忘录"
@
click=
"goUrl('memorandumList')"
/>
<input
type=
"button"
class=
"normalBtn"
value=
"温馨提示"
<input
v-if=
"!pagesTitle"
type=
"button"
class=
"normalBtn"
value=
"温馨提示"
@
click=
"showNotice=true"
/>
<button
style=
"position: relative;"
class=
"hollowFixedBtn"
type=
"primary"
@
click=
"rightCarOpen=true"
>
<i
class=
"el-icon-goods"
></i>
...
...
@@ -102,12 +102,14 @@
<WarmReminder
@
close=
"showNotice= false"
></WarmReminder>
</div>
<!-- 默认弹窗信息 -->
<
template
v-if=
"!pagesTitle"
>
<el-dialog
custom-class=
"w800"
title=
"信息"
:visible
.
sync=
"showHQinfo"
center
>
<HotelTipTableList></HotelTipTableList>
<div
slot=
"footer"
class=
"dialog-footer"
>
<button
class=
"hollowFixedBtn"
@
click=
"showHQinfo = false"
>
关闭
</button>
</div>
</el-dialog>
</
template
>
<!-- 暂存购物车 -->
<el-dialog
custom-class=
"w800"
title=
"酒店信息"
:visible
.
sync=
"showOrderPreview"
center
@
close=
"removeEditor"
>
<TableOperation
:editorType=
"editorType"
:HotelRow=
"orderSubmitObj"
...
...
@@ -131,6 +133,7 @@
import
WarmReminder
from
'./components/WarmReminder'
import
HotelTipTableList
from
'./components/HotelTipTableList'
export
default
{
props
:[
'pagesTitle'
],
components
:
{
SamplePriceList
,
TableOperation
,
ListCar
,
hotelDetails
,
hotelTableList
,
...
...
@@ -156,8 +159,8 @@
pageSize
:
10
,
//酒店选择数组
HotelChooseArray
:
[],
StartDate
:
this
.
getBeforeDate
(
-
2
0
,
new
Date
().
Format
(
"yyyy-MM-dd"
)),
EndDate
:
this
.
getBeforeDate
(
-
30
,
this
.
getBeforeDate
(
-
2
0
,
new
Date
().
Format
(
"yyyy-MM-dd"
))),
StartDate
:
this
.
getBeforeDate
(
0
,
new
Date
().
Format
(
"yyyy-MM-dd"
)),
EndDate
:
this
.
getBeforeDate
(
-
30
,
this
.
getBeforeDate
(
0
,
new
Date
().
Format
(
"yyyy-MM-dd"
))),
//只查询日本
Country
:
"651"
,
Province
:
0
,
...
...
@@ -247,7 +250,8 @@
]
}
},
HOTEL_memorandum
:
false
HOTEL_memorandum
:
false
,
crmOrderObj
:
null
};
},
watch
:
{
...
...
@@ -398,6 +402,10 @@
},
},
mounted
()
{
// crm自动登陆传过来的参数
if
(
this
.
$route
.
query
.
crmOrderObj
){
this
.
crmOrderObj
=
JSON
.
parse
(
this
.
$route
.
query
.
crmOrderObj
)
}
this
.
HotelLength
=
localStorage
.
getItem
(
"HotelLength"
)?
localStorage
.
getItem
(
"HotelLength"
):
0
let
userinfo
=
this
.
getLocalStorage
();
...
...
src/components/Hotel/singleProduct/components/ListCar.vue
View file @
9e07547b
...
...
@@ -22,7 +22,8 @@
<div
class=
"list-content-box"
v-for=
"(y,i) in x.Hotels"
>
<div
class=
"list-operation"
>
<div>
<button
v-if=
"x.Date>OptionalTime"
class=
"hollowFixedBtn"
type=
"primary"
@
click=
"setEditorHandler(y)"
>
<button
v-if=
"x.Date>=OptionalTime"
class=
"hollowFixedBtn"
type=
"primary"
@
click=
"setEditorHandler(y)"
>
<i
class=
"el-icon-edit"
></i>
</button>
<button
class=
"normalBtn"
type=
"primary"
@
click=
"removeHotelHandler(xi,i)"
>
...
...
@@ -142,7 +143,7 @@
},
data
()
{
return
{
OptionalTime
:
this
.
getBeforeDate
(
-
2
,
new
Date
().
Format
(
'yyyy-MM-dd'
)),
//可编辑时间
OptionalTime
:
this
.
getBeforeDate
(
0
,
new
Date
().
Format
(
'yyyy-MM-dd'
)),
//可编辑时间
cars
:
[],
HotelLength
:
0
,
addNum
:
1
,
...
...
src/components/SalesModule/productQuery.vue
View file @
9e07547b
...
...
@@ -3367,6 +3367,10 @@
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
ctlxList
=
res
.
data
.
data
;
// 屏蔽订车订房订门票
this
.
ctlxList
.
splice
(
-
1
)
this
.
ctlxList
.
splice
(
-
1
)
this
.
ctlxList
.
splice
(
-
1
)
}
},
(
err
)
=>
{}
...
...
src/components/SalesModule/productQueryOne.vue
View file @
9e07547b
...
...
@@ -2290,6 +2290,10 @@
this
.
apipost
(
'sellorder_get_GetOrderJoinEnumList'
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
ctlxList
=
res
.
data
.
data
// 屏蔽订车订房订门票
this
.
ctlxList
.
splice
(
-
1
)
this
.
ctlxList
.
splice
(
-
1
)
this
.
ctlxList
.
splice
(
-
1
)
}
},
err
=>
{})
},
...
...
src/components/newTravelmanager/TravelGroupControl/TravelPrice.vue
View file @
9e07547b
...
...
@@ -1956,6 +1956,8 @@
this
.
apipost
(
"travel_get_GetTravelPriceTeamTypeList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
TeamListArr
=
res
.
data
.
data
;
// 屏蔽单项服务
this
.
TeamListArr
.
splice
(
-
1
)
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
...
...
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