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
ab44a3d6
Commit
ab44a3d6
authored
Jul 16, 2019
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
页面修改
parent
3c4fe5a1
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
357 additions
and
49 deletions
+357
-49
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
comCheckHotelV2.vue
src/components/commonPage/comCheckHotelV2.vue
+298
-0
TravelDaysTrip_Direct.vue
...elmanager/oldTravelGroupControl/TravelDaysTrip_Direct.vue
+7
-10
hotelTrip_Direct_V2.vue
...avelmanager/oldTravelGroupControl/hotelTrip_Direct_V2.vue
+18
-4
No files found.
src/assets/utils/commonUtils.js
View file @
ab44a3d6
...
...
@@ -114,7 +114,7 @@ var commonUtils = {
return
result
;
},
changeMoneyToChinese
(
Num
)
{
// 数字转中文大写
if
(
!
Num
)
{
if
(
!
Num
)
{
return
'零'
}
var
isNegative
=
false
;
// 是否负数
...
...
@@ -261,18 +261,18 @@ var commonUtils = {
tmpnewchar
=
tmpnewchar
+
"角"
;
if
(
i
==
1
)
tmpnewchar
=
tmpnewchar
+
"分"
;
newchar
=
newchar
+
tmpnewchar
;
newchar
=
newchar
+
tmpnewchar
;
}
}
// 替换所有无用汉字
while
(
newchar
.
search
(
"零零"
)
!=
-
1
)
newchar
=
newchar
.
replace
(
"零零"
,
"零"
);
newchar
=
newchar
.
replace
(
"零亿"
,
"亿"
);
newchar
=
newchar
.
replace
(
"亿万"
,
"亿"
);
newchar
=
newchar
.
replace
(
"零万"
,
"万"
);
newchar
=
newchar
.
replace
(
"零元"
,
"元"
);
newchar
=
newchar
.
replace
(
"零角"
,
""
);
newchar
=
newchar
.
replace
(
"零分"
,
""
);
newchar
=
newchar
.
replace
(
"零亿"
,
"亿"
);
newchar
=
newchar
.
replace
(
"亿万"
,
"亿"
);
newchar
=
newchar
.
replace
(
"零万"
,
"万"
);
newchar
=
newchar
.
replace
(
"零元"
,
"元"
);
newchar
=
newchar
.
replace
(
"零角"
,
""
);
newchar
=
newchar
.
replace
(
"零分"
,
""
);
if
(
newchar
.
charAt
(
newchar
.
length
-
1
)
==
"元"
||
newchar
.
charAt
(
newchar
.
length
-
1
)
==
"角"
)
{
newchar
=
newchar
+
"整"
;
...
...
@@ -400,5 +400,23 @@ var commonUtils = {
}
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
src/components/Hotel/roomReservationsDetails.vue
View file @
ab44a3d6
...
...
@@ -716,23 +716,14 @@
calculationPrice
(
obj
)
{
let
totalPrice
=
0
;
obj
.
OrderDetailsList
.
forEach
((
item
,
index
)
=>
{
var
tempPrice
=
0
;
//税别
if
(
obj
.
TaxType
==
2
)
{
if
(
index
==
4
)
{
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
);
}
if
(
obj
.
TaxType
==
2
&&
item
.
RebateRatio
>
0
)
{
tempPrice
=
item
.
UnitPrice
*
(
item
.
BookNum
-
item
.
HotelDiscount
)
*
(
1
+
0.08
-
item
.
RebateRatio
/
100
);
}
else
{
t
otalPrice
+
=
item
.
UnitPrice
*
(
item
.
BookNum
-
item
.
HotelDiscount
)
*
(
1
-
item
.
RebateRatio
/
100
);
t
empPrice
=
item
.
UnitPrice
*
(
item
.
BookNum
-
item
.
HotelDiscount
)
*
(
1
-
item
.
RebateRatio
/
100
);
}
totalPrice
+=
tempPrice
;
})
totalPrice
+=
obj
.
ParkFee
+
obj
.
CityTax
+
obj
.
InTangTax
;
obj
.
TotalPrice
=
totalPrice
.
toFixed
(
2
);
...
...
src/components/LeaderManagement/leaderReimbursement.vue
View file @
ab44a3d6
...
...
@@ -410,7 +410,7 @@
{{
subItem
.
UseAccount
}}
</td>
<td>
{{
peopleStrToWord
(
childItem
.
PeopleType
)
}}
:
{{
childItem
.
PeopleNum
}}
{{
peopleStrToWord
(
childItem
.
PeopleType
)
}}
:
{{
childItem
.
Use
PeopleNum
}}
</td>
<td>
{{
childItem
.
Discount
}}
...
...
@@ -731,18 +731,8 @@
obj
.
OrderDetailsList
.
forEach
((
item
,
index
)
=>
{
if
(
obj
.
PayStyle
===
1
)
{
//税别
if
(
obj
.
TaxType
==
2
)
{
if
(
index
==
4
)
{
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
);
}
if
(
obj
.
TaxType
==
2
&&
item
.
RebateRatio
>
0
)
{
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
);
...
...
src/components/commonPage/comCheckHotelV2.vue
0 → 100644
View file @
ab44a3d6
<!--第三方酒店信息-->
<
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 @
ab44a3d6
...
...
@@ -109,10 +109,13 @@
<span
v-if=
"IsDirect==1"
>
<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: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
v-else
>
</span>
</div>
<div
v-if=
"subItem.Type==$tripUtils.TypeKey.scenic"
>
...
...
@@ -120,7 +123,6 @@
<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>
</span>
</div>
<div
v-if=
"subItem.Type==$tripUtils.TypeKey.dinner"
>
<span
v-if=
"IsDirect==1"
>
...
...
@@ -163,6 +165,7 @@
import
trifficTrip
from
"../oldTravelGroupControl/trifficTrip"
;
import
scienTrip
from
"../oldTravelGroupControl/scienTrip_Direct"
;
import
hotelTrip
from
"../oldTravelGroupControl/hotelTrip_Direct"
;
import
hotelTripV2
from
"../oldTravelGroupControl/hotelTrip_Direct_V2"
;
import
dinnerTrip
from
"../oldTravelGroupControl/dinnerTrip_Direct"
;
import
freedomTrip
from
"../oldTravelGroupControl/freedomTrip"
;
import
warmtipTrip
from
"../oldTravelGroupControl/warmtipTrip"
;
...
...
@@ -270,16 +273,10 @@ export default {
},
components
:
{
trifficTrip
:
trifficTrip
,
scienTrip
:
scienTrip
,
hotelTrip
:
hotelTrip
,
hotelTripV2
:
hotelTripV2
,
dinnerTrip
:
dinnerTrip
,
freedomTrip
:
freedomTrip
,
warmtipTrip
:
warmtipTrip
,
titleTrip
:
titleTrip
...
...
src/components/newTravelmanager/oldTravelGroupControl/hotelTrip_Direct_V2.vue
View file @
ab44a3d6
...
...
@@ -29,9 +29,20 @@
</div>
<div
class=
"TDplanList clearfix"
>
<div
class=
"TDLeftPlan"
>
<span>
入住酒店
</span>
<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()"
>
...
...
@@ -95,7 +106,6 @@
<div
class=
"read"
v-if=
"!isShowEdit"
>
<div
class=
"TCtraffic flex"
>
<div
class=
"partName"
>
<span
class=
"TDTripType"
>
酒店
</span>
</div>
...
...
@@ -157,6 +167,7 @@
</
template
>
<
script
>
import
MyEdit
from
"../../EditTemplate.vue"
;
import
comCheckHotelV2
from
"../../commonPage/comCheckHotelV2.vue"
;
export
default
{
props
:
[
"subItemObj"
,
...
...
@@ -243,7 +254,8 @@ export default {
};
},
components
:
{
"my-edit"
:
MyEdit
"my-edit"
:
MyEdit
,
comCheckHotelV2
,
},
methods
:
{
//获取酒店列表
...
...
@@ -454,7 +466,9 @@ export default {
});
}
}
},
watch
:
{
subItemObj
:
{
//深度监听,可监听到对象、数组的变化
...
...
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