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
9b0df04d
Commit
9b0df04d
authored
Feb 14, 2020
by
zhengke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加报价单审核
parent
7263b317
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
1647 additions
and
0 deletions
+1647
-0
CostNewPriceAudit.vue
...ts/TravelManager/TravelNewQuotation/CostNewPriceAudit.vue
+1344
-0
QuotationAduit.vue
...nents/TravelManager/TravelNewQuotation/QuotationAduit.vue
+294
-0
config.js
src/router/config.js
+9
-0
No files found.
src/components/TravelManager/TravelNewQuotation/CostNewPriceAudit.vue
0 → 100644
View file @
9b0df04d
<
style
>
@import
"../../../assets/css/newTravelManager.css"
;
.CostNewPrice
.el-form-item__content
,
.CostNewPrice
.el-form-item__label
{
line-height
:
30px
;
}
.CostNewPrice
.CP_halfWi
{
width
:
45%
;
}
.CostNewPrice
.QuotationFirstDiv1
{
padding-top
:
30px
;
}
.CostNewPrice
.QuotationFirstDiv1
.el-form-item__content
.el-select
{
width
:
calc
(
100%
-
100px
);
}
.CostNewPrice
.CP_ComTitle2
{
color
:
#106BAF
;
font-weight
:
bold
;
background-color
:
#D1EEEE
;
white-space
:
nowrap
;
}
.CostNewTable
td
{
padding
:
5px
;
height
:
40px
;
border
:
1px
solid
#106BAF
!important
;
}
.CostPriceDiv
{
float
:
left
;
width
:
19%
;
margin-right
:
23px
;
}
.CP_ComTitle
{
color
:
#106BAF
;
}
.w79
{
width
:
79px
!important
;
}
.w70
{
width
:
70px
!important
;
}
.CostcomCenter
{
text-align
:
center
;
}
.txtRightCost
{
text-align
:
right
;
padding-right
:
10px
;
}
.CostNewTable
.el-input__inner
{
padding
:
0
5px
;
}
</
style
>
<
template
>
<div>
<div
class=
"CostNewPrice clearfix CP_Div"
style=
"width:980px;"
>
<el-form>
<div
class=
"QuotationFirstDiv1"
>
<table
style=
"font-size:14px;"
>
<tr>
<td
width=
"80"
class=
"txtRightCost"
>
线路
</td>
<td
width=
"300"
>
{{
getLineName
(
postConfig
.
LineId
)
}}
</td>
<td
width=
"60"
class=
"txtRightCost"
>
系列
</td>
<td
width=
"300"
>
{{
getTeamName
(
postConfig
.
LineteamId
)
}}
</td>
<td
width=
"80"
class=
"txtRightCost"
>
客户名称
</td>
<td>
{{
postConfig
.
CustomerName
}}
</td>
</tr>
<tr>
<td
colspan=
"6"
style=
"height:20px;"
>
</td>
</tr>
<tr>
<td
width=
"80"
class=
"txtRightCost"
>
团队标题
</td>
<td
colspan=
"3"
>
{{
postConfig
.
Title
}}
</td>
<td
width=
"80"
class=
"txtRightCost"
>
行程天数
</td>
<td>
{{
postConfig
.
DayNum
}}
<el-input
class=
"w120 LowNum"
v-model=
"postConfig.NightNum"
style=
"display:none;"
@
keyup
.
native=
"checkInteger(postConfig,'NightNum')"
maxlength=
"2"
>
<template
slot=
"append"
>
晚
</
template
>
</el-input>
</td>
</tr>
</table>
<div
class=
"seat-box"
style=
"display:none;"
>
<div
class=
"left"
style=
"float:left;margin:6px 0 0 64px;"
>
座位
</div>
<div
class=
"right"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"6"
>
<el-form-item
prop=
"YSeat"
>
<el-input
placeholder=
"人数"
v-model=
"postConfig.YSeat"
maxlength=
"2"
@
keyup
.
native=
"checkInteger(postConfig,'YSeat')"
>
<
template
slot=
"prepend"
>
经济舱/上铺
</
template
>
</el-input>
</el-form-item>
</el-col>
<el-col
:span=
"5"
>
<el-form-item
prop=
"CSeat"
>
<el-input
placeholder=
"人数"
v-model=
"postConfig.CSeat"
maxlength=
"2"
@
keyup
.
native=
"checkInteger(postConfig,'CSeat')"
>
<
template
slot=
"prepend"
>
商务舱/中铺
</
template
>
</el-input>
</el-form-item>
</el-col>
<el-col
:span=
"5"
>
<el-form-item
prop=
"FSeat"
>
<el-input
placeholder=
"人数"
v-model=
"postConfig.FSeat"
maxlength=
"2"
@
keyup
.
native=
"checkInteger(postConfig,'FSeat')"
>
<
template
slot=
"prepend"
>
头等舱/下铺
</
template
>
</el-input>
</el-form-item>
</el-col>
<el-col
:span=
"5"
>
<el-form-item>
<el-input
placeholder=
"人数"
v-model=
"postConfig.LowNum"
maxlength=
"2"
>
<
template
slot=
"prepend"
>
最低成团人数
</
template
>
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
</div>
<br
/>
<table
class=
"CostPriceTable CostNewTable"
>
<thead>
<tr>
<td
colspan=
"12"
class=
"CP_ComTitle2 CostcomCenter"
>
报价信息
</td>
</tr>
<tr>
<td
width=
"170"
class=
"CP_ComTitle2 CostcomCenter"
>
币种
</td>
<td
v-for=
'(item,index) in CostCurrencyList'
>
{{item.CurrencyName}}
</td>
<td
:colspan=
"13-2-CostCurrencyList.length+1"
>
</td>
</tr>
<tr>
<td
class=
"CP_ComTitle2 CostcomCenter"
>
汇率
</td>
<td
v-for=
'item in CostCurrencyList'
>
{{item.ExchangeRate}}
</td>
<td
:colspan=
"13-2-CostCurrencyList.length+1"
>
</td>
</tr>
<tr>
<td
width=
"170"
class=
"CP_ComTitle2 CostcomCenter"
>
人数
</td>
<td
v-for=
"(item,index) in CostNumberList"
:key=
'item.subCode'
>
{{item.PeopleNumber}}
</td>
<td
width=
"150"
:colspan=
"13-2-CostNumberList.length+1"
>
</td>
</tr>
</thead>
<tr>
<td
colspan=
"13"
></td>
</tr>
<tr>
<td
rowspan=
"2"
width=
'180'
class=
"CP_ComTitle2 CostcomCenter"
>
Day
</td>
<td
rowspan=
"2"
width=
'200'
class=
"CP_ComTitle2 CostcomCenter"
>
行程大点
</td>
<td
rowspan=
"2"
width=
"100"
class=
"CP_ComTitle2 CostcomCenter"
>
币种
</td>
<td
rowspan=
"2"
width=
'60'
class=
"CP_ComTitle2 CostcomCenter"
>
酒店
</td>
<td
colspan=
"4"
width=
'100'
class=
"CP_ComTitle2 CostcomCenter"
>
车
</td>
<td
rowspan=
"2"
width=
'80'
class=
"CP_ComTitle2 CostcomCenter"
>
门票
</td>
<td
colspan=
"3"
width=
'100'
class=
"CP_ComTitle2 CostcomCenter"
>
餐
</td>
</tr>
<tr>
<td
width=
"120"
class=
"CP_ComTitle2 CostcomCenter"
>
总车资
</td>
<td
width=
"120"
class=
"CP_ComTitle2 CostcomCenter"
>
过路费
</td>
<td
width=
"100"
class=
"CP_ComTitle2 CostcomCenter"
>
人数
</td>
<td
width=
"100"
class=
"CP_ComTitle2 CostcomCenter"
style=
"white-space:nowrap; "
>
每人车资
</td>
<td
width=
"120"
class=
"CP_ComTitle2 CostcomCenter"
>
早
</td>
<td
width=
"100"
class=
"CP_ComTitle2 CostcomCenter"
>
中
</td>
<td
width=
"100"
class=
"CP_ComTitle2 CostcomCenter"
>
晚
</td>
</tr>
<
template
v-if=
"CostNumberList&&CostNumberList.length>1"
>
<template
v-for=
"(subItem,subIndex) in dayCostPrice"
>
<template
v-for=
"(childItem,childIndex) in CostNumberList"
>
<tr>
<td
align=
"center"
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
<div
style=
"width:100px;"
>
{{
subItem
.
DayNum
}}
</div>
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{
subItem
.
Title
}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
<el-form-item>
<el-select
v-model=
'subItem.CurrencyId'
class=
"w70"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'defaultSelect'
></el-option>
<el-option
v-for=
"items in CostCurrencyList"
:label=
'items.CurrencyName'
:value=
'items.CurrencyId'
:key=
'items.CurrencyId'
>
</el-option>
</el-select>
</el-form-item>
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
<template
v-if=
"subItem.ContainDinnerType==0"
>
含餐类型
</
template
>
<
template
v-if=
"subItem.ContainDinnerType==1"
>
含早餐
</
template
>
<
template
v-if=
"subItem.ContainDinnerType==2"
>
含晚餐
</
template
>
<
template
v-if=
"subItem.ContainDinnerType==3"
>
含晚餐
</
template
>
<br
/>
{{subItem.HotelCostPrice}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{subItem.BusCostPrice}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{subItem.PassFee}}
</td>
<td>
{{childItem.PeopleNumber}}
</td>
<td>
{{(Number(subItem.BusCostPrice)/Number(childItem.PeopleNumber)).toFixed(0)}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{subItem.ScenicCostPrice}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{subItem.BreakfastCostPrice}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{subItem.LunchCostPrice}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{subItem.DinnerCostPrice}}
</td>
</tr>
</template>
</template>
<
template
v-for=
"(childItem,childIndex) in CostNumberList"
>
<tr>
<td
colspan=
"3"
class=
"CP_ComTitle2 CostcomCenter"
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
外币小计
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{
getDayXiaoJi
(
1
,
1
)
}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{
getDayXiaoJi
(
2
,
1
)
}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{
getDayXiaoJi
(
7
,
1
)
}}
</td>
<td>
{{
childItem
.
PeopleNumber
}}
</td>
<td>
{{
((
Number
(
getDayXiaoJi
(
2
,
1
))
+
Number
(
getDayXiaoJi
(
7
,
1
)))
/
Number
(
childItem
.
PeopleNumber
)).
toFixed
(
0
)
}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{
getDayXiaoJi
(
3
,
1
)
}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{
getDayXiaoJi
(
4
,
1
)
}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{
getDayXiaoJi
(
5
,
1
)
}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{
getDayXiaoJi
(
6
,
1
)
}}
</td>
</tr>
</
template
>
<
template
v-for=
"(childItem,childIndex) in CostNumberList"
>
<tr>
<td
colspan=
"3"
class=
"CP_ComTitle2 CostcomCenter"
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
人民币小计
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{
getDayXiaoJi
(
1
,
2
)
}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{
getDayXiaoJi
(
2
,
2
)
}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{
getDayXiaoJi
(
7
,
2
)
}}
</td>
<td>
{{
childItem
.
PeopleNumber
}}
</td>
<td>
{{
((
Number
(
getDayXiaoJi
(
2
,
2
))
+
Number
(
getDayXiaoJi
(
7
,
2
)))
/
Number
(
childItem
.
PeopleNumber
)).
toFixed
(
0
)
}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{
getDayXiaoJi
(
3
,
2
)
}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{
getDayXiaoJi
(
4
,
2
)
}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{
getDayXiaoJi
(
5
,
2
)
}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"CostNumberList.length"
>
{{
getDayXiaoJi
(
6
,
2
)
}}
</td>
</tr>
</
template
>
</template>
<
template
v-else
>
<tr
v-for=
"subItem in dayCostPrice"
:key=
"subItem.subCode"
>
<td
align=
"center"
>
<div
style=
"width:100px;"
>
{{
subItem
.
DayNum
}}
</div>
</td>
<td>
{{
subItem
.
Title
}}
</td>
<td>
{{
getCurrencyDetail
(
OtherPrice
.
CurrencyId
)
}}
</td>
<td>
<template
v-if=
"subItem.ContainDinnerType==0"
>
含餐类型
</
template
>
<
template
v-if=
"subItem.ContainDinnerType==1"
>
含早餐
</
template
>
<
template
v-if=
"subItem.ContainDinnerType==2"
>
含晚餐
</
template
>
<
template
v-if=
"subItem.ContainDinnerType==3"
>
含晚餐
</
template
>
<br
/>
{{subItem.HotelCostPrice}}
</td>
<td>
{{subItem.BusCostPrice}}
</td>
<td>
{{subItem.PassFee}}
</td>
<td>
<
template
v-if=
"CostNumberList&&CostNumberList.length>0"
>
{{
CostNumberList
[
0
].
PeopleNumber
}}
</
template
>
</td>
<td>
<
template
v-if=
"CostNumberList&&CostNumberList.length>0"
>
{{
(
Number
(
subItem
.
BusCostPrice
)
/
Number
(
CostNumberList
[
0
].
PeopleNumber
)).
toFixed
(
0
)
}}
</
template
>
</td>
<td>
{{subItem.ScenicCostPrice}}
</td>
<td>
{{subItem.BreakfastCostPrice}}
</td>
<td>
{{subItem.LunchCostPrice}}
</td>
<td>
{{subItem.DinnerCostPrice}}
</td>
</tr>
<tr>
<td
colspan=
"3"
class=
"CP_ComTitle2 CostcomCenter"
>
外币小计
</td>
<td>
{{getDayXiaoJi(1,1)}}
</td>
<td>
{{getDayXiaoJi(2,1)}}
</td>
<td>
{{getDayXiaoJi(7,1)}}
</td>
<td>
<
template
v-if=
"CostNumberList&&CostNumberList.length>0"
>
{{
CostNumberList
[
0
].
PeopleNumber
}}
</
template
>
</td>
<td>
<
template
v-if=
"CostNumberList&&CostNumberList.length>0"
>
{{
((
Number
(
getDayXiaoJi
(
2
,
1
))
+
Number
(
getDayXiaoJi
(
7
,
1
)))
/
Number
(
CostNumberList
[
0
].
PeopleNumber
)).
toFixed
(
0
)
}}
</
template
>
</td>
<td>
{{getDayXiaoJi(3,1)}}
</td>
<td>
{{getDayXiaoJi(4,1)}}
</td>
<td>
{{getDayXiaoJi(5,1)}}
</td>
<td>
{{getDayXiaoJi(6,1)}}
</td>
</tr>
<tr>
<td
colspan=
"3"
class=
"CP_ComTitle2 CostcomCenter"
>
人民币小计
</td>
<td>
{{getDayXiaoJi(1,2)}}
</td>
<td>
{{getDayXiaoJi(2,2)}}
</td>
<td>
{{getDayXiaoJi(7,2)}}
</td>
<td>
<
template
v-if=
"CostNumberList&&CostNumberList.length>0"
>
{{
CostNumberList
[
0
].
PeopleNumber
}}
</
template
>
</td>
<td>
<
template
v-if=
"CostNumberList&&CostNumberList.length>0"
>
{{
(
(
Number
(
getDayXiaoJi
(
2
,
2
))
+
Number
(
getDayXiaoJi
(
7
,
2
)))
/
Number
(
CostNumberList
[
0
].
PeopleNumber
)).
toFixed
(
0
)
}}
</
template
>
</td>
<td>
{{getDayXiaoJi(3,2)}}
</td>
<td>
{{getDayXiaoJi(4,2)}}
</td>
<td>
{{getDayXiaoJi(5,2)}}
</td>
<td>
{{getDayXiaoJi(6,2)}}
</td>
</tr>
</template>
<tr>
<td
colspan=
"13"
></td>
</tr>
<tr>
<td
class=
"CP_ComTitle2"
colspan=
"6"
>
内陆段交通部分
</td>
<td
class=
"CP_ComTitle2"
colspan=
"6"
>
杂支部分
</td>
</tr>
<tr>
<td
class=
"CP_ComTitle2 CostcomCenter"
>
1
</td>
<td
class=
"CP_ComTitle2"
>
内陆段机位(每人)
</td>
<td
colspan=
"2"
>
{{getCurrencyDetail(OtherPrice.InlandAirTicketCurrency)}}
</td>
<td
colspan=
"2"
>
{{OtherPrice.InlandAirTicketMoney}}
</td>
<td
class=
"CP_ComTitle2 CostcomCenter"
>
1
</td>
<td
colspan=
"2"
class=
"CP_ComTitle2"
>
签证费(每人)
</td>
<td>
{{getCurrencyDetail(OtherPrice.VisaMoneyCurrencyId)}}
</td>
<td
colspan=
"2"
>
{{OtherPrice.VisaMoney}}
</td>
</tr>
<tr>
<td
class=
"CP_ComTitle2 CostcomCenter"
>
2
</td>
<td
class=
"CP_ComTitle2"
>
内陆段船票(每人)
</td>
<td
colspan=
"2"
>
{{getCurrencyDetail(OtherPrice.InlandShipTicketCurrency)}}
</td>
<td
colspan=
"2"
>
{{OtherPrice.InlandShipTicketMoney}}
</td>
<td
class=
"CP_ComTitle2 CostcomCenter"
>
2
</td>
<td
colspan=
"2"
class=
"CP_ComTitle2"
>
保险费(每人)
</td>
<td>
{{getCurrencyDetail(OtherPrice.SafeMoneyCurrencyId)}}
</td>
<td
colspan=
"2"
>
{{OtherPrice.SafeMoney}}
</td>
</tr>
<tr>
<td
class=
"CP_ComTitle2 CostcomCenter"
>
3
</td>
<td
class=
"CP_ComTitle2"
>
内陆段火车票(每人)
</td>
<td
colspan=
"2"
>
{{getCurrencyDetail(OtherPrice.InlandTrainTicketCurrency)}}
</td>
<td
colspan=
"2"
>
{{OtherPrice.InlandTrainTicketMoney}}
</td>
<td
class=
"CP_ComTitle2 CostcomCenter"
>
3
</td>
<td
colspan=
"2"
class=
"CP_ComTitle2"
>
领队小费
</td>
<td>
{{getCurrencyDetail(OtherPrice.LeaderTripMoneyCurrencyId)}}
</td>
<td
colspan=
"2"
>
{{OtherPrice.LeaderTripMoney}}
</td>
</tr>
<tr>
<td
colspan=
"6"
></td>
<td
class=
"CP_ComTitle2 CostcomCenter"
>
4
</td>
<td
colspan=
"2"
class=
"CP_ComTitle2"
>
司机、导游小费
</td>
<td>
{{getCurrencyDetail(OtherPrice.DriverGuideMoneyCurrencyId)}}
</td>
<td
colspan=
"2"
>
{{OtherPrice.DriverGuideMoney}}
</td>
</tr>
<tr>
<td
class=
"CP_ComTitle2"
>
外币小计
</td>
<td
colspan=
"5"
>
{{trafficXiaoJi(2)}}
</td>
<td
class=
"CP_ComTitle2"
>
外币小计
</td>
<td
colspan=
"5"
>
{{zazhiXiaoJi(2)}}
</td>
</tr>
<tr>
<td
class=
"CP_ComTitle2"
>
人民币小计
</td>
<td
colspan=
"5"
>
{{ trafficXiaoJi(1) }}
</td>
<td
class=
"CP_ComTitle2"
>
人民币小计
</td>
<td
colspan=
"5"
>
{{zazhiXiaoJi(1)}}
</td>
</tr>
<tr>
<td
colspan=
"13"
></td>
</tr>
<tr>
<td
class=
"CP_ComTitle2"
colspan=
"4"
>
其他支出
</td>
<td
class=
"CP_ComTitle2"
colspan=
"3"
style=
"display:none;"
>
机票
</td>
<td
class=
"CP_ComTitle2"
colspan=
"4"
>
收入
</td>
<td
class=
"CP_ComTitle2"
colspan=
"5"
>
团负费
</td>
</tr>
<tr>
<td
class=
"CP_ComTitle2 CostcomCenter"
colspan=
"2"
>
摘要
</td>
<td
class=
"CP_ComTitle2 CostcomCenter"
colspan=
"2"
>
金额
<br
/>
(人民币)
</td>
<td
class=
"CP_ComTitle2 CostcomCenter"
colspan=
"2"
style=
"display:none;"
>
摘要
</td>
<td
class=
"CP_ComTitle2 CostcomCenter"
style=
"display:none;"
>
金额
<br
/>
(人民币)
</td>
<td
class=
"CP_ComTitle2 CostcomCenter"
colspan=
"2"
>
摘要
</td>
<td
class=
"CP_ComTitle2 CostcomCenter"
colspan=
"2"
>
金额
<br
/>
(人民币)
</td>
<td
class=
"CP_ComTitle2 CostcomCenter"
colspan=
"2"
>
摘要
</td>
<td
class=
"CP_ComTitle2 CostcomCenter"
colspan=
"3"
>
金额
<br
/>
(人民币)
</td>
</tr>
<tr>
<td
style=
"white-space:nowrap; "
class=
"CP_ComTitle2"
colspan=
"2"
>
销售提成1%
</td>
<td
colspan=
"2"
>
{{OtherPrice.SalesCommissionMoney}}
</td>
<td
class=
"CP_ComTitle2"
colspan=
"2"
style=
"display:none;"
>
机票
</td>
<td
style=
"display:none;"
>
{{OtherPrice.AirTicketMoeny}}
</td>
<td
class=
"CP_ComTitle2"
colspan=
"2"
>
客人小费收入
</td>
<td
colspan=
"2"
>
{{OtherPrice.TripMoney}}
</td>
<td
class=
"CP_ComTitle2"
colspan=
"2"
>
KB
</td>
<td
colspan=
"3"
>
{{OtherPrice.KBMoney}}
</td>
</tr>
<tr>
<td
style=
"white-space:nowrap; "
class=
"CP_ComTitle2"
colspan=
"2"
>
作业处提成
</td>
<td
colspan=
"2"
>
{{OtherPrice.OfficeCommissionMoney}}
</td>
<td
colspan=
"3"
style=
"display:none;"
></td>
<td
class=
"CP_ComTitle2"
colspan=
"2"
>
导游人头费
</td>
<td
colspan=
"2"
>
{{OtherPrice.GuidePeopleMoney}}
</td>
<td
colspan=
"5"
></td>
</tr>
<tr>
<td
class=
"CP_ComTitle2"
colspan=
"2"
>
人民币小计
</td>
<td
colspan=
"2"
>
{{Number(OtherPrice.SalesCommissionMoney)+Number(OtherPrice.OfficeCommissionMoney)}}
</td>
<td
class=
"CP_ComTitle2"
style=
"display:none;"
>
人民币小计
</td>
<td
colspan=
"2"
style=
"display:none;"
>
{{Number(OtherPrice.AirTicketMoeny)}}
</td>
<td
class=
"CP_ComTitle2"
colspan=
"2"
>
人民币小计
</td>
<td
colspan=
"2"
>
{{Number(OtherPrice.TripMoney)+Number(OtherPrice.GuidePeopleMoney)}}
</td>
<td
class=
"CP_ComTitle2"
colspan=
"2"
>
人民币小计
</td>
<td
colspan=
"5"
>
{{Number(OtherPrice.KBMoney)}}
</td>
</tr>
<tr>
<td
colspan=
"12"
></td>
</tr>
<tr>
<td
colspan=
"12"
class=
"CP_ComTitle2"
>
领队分摊部分
</td>
</tr>
<tr>
<td
class=
"CP_ComTitle2 CostcomCenter"
>
人数
</td>
<td
class=
"CP_ComTitle2 CostcomCenter"
>
机票
</td>
<td
class=
"CP_ComTitle2 CostcomCenter"
>
门票
</td>
<td
class=
"CP_ComTitle2 CostcomCenter"
>
领队导游司机住宿
</td>
<td
class=
"CP_ComTitle2 CostcomCenter"
>
单房差
</td>
<td
class=
"CP_ComTitle2 CostcomCenter"
colspan=
"2"
>
内陆段交通
</td>
<td
class=
"CP_ComTitle2 CostcomCenter"
colspan=
"2"
>
杂费
</td>
<td
class=
"CP_ComTitle2 CostcomCenter"
colspan=
"3"
>
小计
</td>
</tr>
<tr>
<td></td>
<td>
{{OtherPrice.AirTicketShareMoney}}
</td>
<td>
{{OtherPrice.TicketShareMoney}}
</td>
<td>
{{OtherPrice.LeaderGuideDriveZhuSu}}
</td>
<td>
{{OtherPrice.SingleRoomShareMoney}}
</td>
<td
colspan=
"2"
>
{{OtherPrice.InlandTrafficShareMoney}}
</td>
<td
colspan=
"2"
>
{{OtherPrice.OtherShareMoney}}
</td>
<td
colspan=
"3"
></td>
</tr>
<tr
v-for=
"item in CostNumberList"
:key=
"item.subCode"
>
<td>
{{item.PeopleNumber}}+1
</td>
<td>
{{item.AirTicketMoney}}
</td>
<td>
{{item.TicketMoney}}
</td>
<td>
{{item.LeaderGuideDriveZhuSu}}
</td>
<td>
{{item.SingleRoomMoney}}
</td>
<td
colspan=
"2"
>
{{item.InlandTrafficMoney}}
</td>
<td
colspan=
"2"
>
{{item.OtherMoney}}
</td>
<td
colspan=
"3"
>
{{item.SubtotalMoney}}
</td>
</tr>
<tr>
<td
colspan=
"13"
></td>
</tr>
<tr>
<td
colspan=
"13"
class=
"CP_ComTitle2"
>
成本统计(以下报价为每人费用)
<br
/>
计算规则: (房+餐+车+景点)*汇率+内陆段交通*汇率+杂支部分*汇率+其他资产+机票票+收入-团负费+领队分摊+地接报价*汇率
</td>
</tr>
<tr>
<td
class=
"CP_ComTitle2"
>
人数统计
</td>
<td
class=
"CP_ComTitle2"
>
成本价
</td>
<td
class=
"CP_ComTitle2"
colspan=
"2"
>
销售价格
</td>
<td
colspan=
"8"
class=
"CP_ComTitle2"
>
备注
</td>
</tr>
<tr
v-for=
"item in CostNumberList"
:key=
"item.subCode"
>
<td>
{{item.PeopleNumber}}+1
</td>
<td>
{{item.TotalMoney}}
</td>
<td
colspan=
"2"
>
{{item.SalePrice}}
</td>
<td
colspan=
"8"
>
{{item.CostRemark}}
</td>
</tr>
<tr>
<td
colspan=
"13"
></td>
</tr>
<tr>
<td
class=
"CP_ComTitle2"
>
婴儿
</td>
<td
class=
"CP_ComTitle2"
colspan=
"2"
>
单地接
</td>
<td
class=
"CP_ComTitle2"
colspan=
"2"
>
儿童占床
</td>
<td
class=
"CP_ComTitle2"
colspan=
"2"
>
儿童不占床
</td>
<td
class=
"CP_ComTitle2"
>
儿童附加费
</td>
<td
class=
"CP_ComTitle2"
>
老人附加费
</td>
<td
class=
"CP_ComTitle2"
>
签证费
</td>
<td
class=
"CP_ComTitle2"
colspan=
"2"
>
单房差
</td>
</tr>
<tr>
<td>
{{teamPrice.BabyPrice}}
</td>
<td
colspan=
"2"
>
{{teamPrice.SingleDMCPrice}}
</td>
<td
colspan=
"2"
>
{{teamPrice.ChildNeedPrice}}
</td>
<td
colspan=
"2"
>
{{teamPrice.ChildNoNeedPrice}}
</td>
<td>
{{teamPrice.BabyChargePrice}}
</td>
<td>
{{teamPrice.OldManChargePrice}}
</td>
<td>
{{teamPrice.VisaPrice}}
</td>
<td
colspan=
"2"
>
{{teamPrice.SingleRoomPrice}}
</td>
</tr>
<tr>
<td
class=
"CP_ComTitle2"
>
备注
</td>
<td
colspan=
"12"
>
{{OtherPrice.OtherRemark}}
</td>
</tr>
<tr>
<td
class=
"CP_ComTitle2"
>
备注
</td>
<td
colspan=
"12"
>
<el-input
type=
"textarea"
></el-input>
</td>
</tr>
<tr>
<td
colspan=
"13"
style=
"text-align:center;"
>
<input
type=
"button"
class=
"normalBtn"
value=
"同意"
/>
<input
type=
"button"
class=
"normalBtn"
value=
"拒绝"
/>
</td>
</tr>
</table>
<div
class=
"Cost_Line"
></div>
</el-form>
</div>
</div>
</template>
<
script
>
export
default
{
props
:
[
"postConfig"
,
"OtherPrice"
,
"dayCostPrice"
,
"LineList"
,
"CostNumberList"
,
"CurrencyNumberListExt"
,
"CostCurrencyList"
,
"teamPrice"
],
data
()
{
return
{
//下拉框默认值
defaultSelect
:
0
,
queryMsg
:
{
//汇率输入
RateInput
:
""
,
//人数
PeopleNumber
:
""
},
//币种下拉
currencyType
:
""
,
checkedPei
:
[],
currencyTypeArr
:
[],
//币种下拉列表
LineTeamList
:
[],
//系列下拉列表
}
},
methods
:
{
//含餐类型切换
DinnerTypeChange
(
subItem
)
{
switch
(
subItem
.
ContainDinnerType
)
{
//含早餐
case
1
:
subItem
.
BreakfastCostPrice
=
0
;
break
;
//含晚餐
case
2
:
subItem
.
DinnerCostPrice
=
0
;
break
;
case
3
:
subItem
.
BreakfastCostPrice
=
0
;
subItem
.
DinnerCostPrice
=
0
;
break
;
}
},
//交通部分小计
trafficXiaoJi
(
currencyType
)
{
var
trafficTotal
=
0
;
//人民币
if
(
currencyType
==
1
)
{
if
(
this
.
OtherPrice
.
InlandAirTicketCurrency
==
1
)
{
trafficTotal
+=
Number
(
this
.
OtherPrice
.
InlandAirTicketMoney
);
}
else
{
trafficTotal
+=
Number
(
this
.
OtherPrice
.
InlandAirTicketMoney
)
*
this
.
getCurrencyMoney
(
this
.
OtherPrice
.
InlandAirTicketCurrency
);
}
if
(
this
.
OtherPrice
.
InlandShipTicketCurrency
==
1
)
{
trafficTotal
+=
Number
(
this
.
OtherPrice
.
InlandShipTicketMoney
);
}
else
{
trafficTotal
+=
Number
(
this
.
OtherPrice
.
InlandShipTicketMoney
)
*
this
.
getCurrencyMoney
(
this
.
OtherPrice
.
InlandShipTicketCurrency
);
}
if
(
this
.
OtherPrice
.
InlandTrainTicketCurrency
==
1
)
{
trafficTotal
+=
Number
(
this
.
OtherPrice
.
InlandTrainTicketMoney
);
}
else
{
trafficTotal
+=
Number
(
this
.
OtherPrice
.
InlandTrainTicketMoney
)
*
this
.
getCurrencyMoney
(
this
.
OtherPrice
.
InlandTrainTicketCurrency
);
}
}
//外币
else
{
if
(
this
.
OtherPrice
.
InlandAirTicketCurrency
!=
1
)
{
trafficTotal
+=
Number
(
this
.
OtherPrice
.
InlandAirTicketMoney
);
}
if
(
this
.
OtherPrice
.
InlandShipTicketCurrency
!=
1
)
{
trafficTotal
+=
Number
(
this
.
OtherPrice
.
InlandShipTicketMoney
);
}
if
(
this
.
OtherPrice
.
InlandTrainTicketCurrency
!=
1
)
{
trafficTotal
+=
Number
(
this
.
OtherPrice
.
InlandTrainTicketMoney
);
}
}
return
trafficTotal
.
toFixed
(
0
);
},
//杂支小计
zazhiXiaoJi
(
currencyType
)
{
var
zazhiTotal
=
0
;
//人民币
if
(
currencyType
==
1
)
{
if
(
this
.
OtherPrice
.
VisaMoneyCurrencyId
==
1
)
{
zazhiTotal
+=
Number
(
this
.
OtherPrice
.
VisaMoney
);
}
else
{
zazhiTotal
+=
Number
(
this
.
OtherPrice
.
VisaMoney
)
*
this
.
getCurrencyMoney
(
this
.
OtherPrice
.
VisaMoneyCurrencyId
);
}
if
(
this
.
OtherPrice
.
SafeMoneyCurrencyId
==
1
)
{
zazhiTotal
+=
Number
(
this
.
OtherPrice
.
SafeMoney
);
}
else
{
zazhiTotal
+=
Number
(
this
.
OtherPrice
.
SafeMoney
)
*
this
.
getCurrencyMoney
(
this
.
OtherPrice
.
SafeMoneyCurrencyId
);
}
if
(
this
.
OtherPrice
.
LeaderTripMoneyCurrencyId
==
1
)
{
zazhiTotal
+=
Number
(
this
.
OtherPrice
.
LeaderTripMoney
);
}
else
{
zazhiTotal
+=
Number
(
this
.
OtherPrice
.
LeaderTripMoney
)
*
this
.
getCurrencyMoney
(
this
.
OtherPrice
.
LeaderTripMoneyCurrencyId
);
}
if
(
this
.
OtherPrice
.
DriverGuideMoneyCurrencyId
==
1
)
{
zazhiTotal
+=
Number
(
this
.
OtherPrice
.
DriverGuideMoney
);
}
else
{
zazhiTotal
+=
Number
(
this
.
OtherPrice
.
DriverGuideMoney
)
*
this
.
getCurrencyMoney
(
this
.
OtherPrice
.
DriverGuideMoneyCurrencyId
);
}
}
//外币
else
{
if
(
this
.
OtherPrice
.
VisaMoneyCurrencyId
!=
1
)
{
zazhiTotal
+=
Number
(
this
.
OtherPrice
.
VisaMoney
);
}
if
(
this
.
OtherPrice
.
SafeMoneyCurrencyId
!=
1
)
{
zazhiTotal
+=
Number
(
this
.
OtherPrice
.
SafeMoney
);
}
if
(
this
.
OtherPrice
.
LeaderTripMoneyCurrencyId
!=
1
)
{
zazhiTotal
+=
Number
(
this
.
OtherPrice
.
LeaderTripMoney
);
}
if
(
this
.
OtherPrice
.
DriverGuideMoneyCurrencyId
!=
1
)
{
zazhiTotal
+=
Number
(
this
.
OtherPrice
.
DriverGuideMoney
);
}
}
return
zazhiTotal
.
toFixed
(
0
);
},
//每天小计
getDayXiaoJi
(
type
,
currencyType
)
{
var
xiaoJi
=
0
;
this
.
dayCostPrice
.
forEach
(
item
=>
{
var
currencyRate
=
1
;
if
(
currencyType
==
2
)
{
currencyRate
=
this
.
getCurrencyMoney
(
item
.
CurrencyId
);
}
//酒店
if
(
type
==
1
)
{
xiaoJi
+=
Number
(
item
.
HotelCostPrice
)
*
Number
(
currencyRate
);
}
//车
if
(
type
==
2
)
{
xiaoJi
+=
Number
(
item
.
BusCostPrice
)
*
Number
(
currencyRate
);
}
//景点
if
(
type
==
3
)
{
xiaoJi
+=
Number
(
item
.
ScenicCostPrice
)
*
Number
(
currencyRate
);
}
//早餐
if
(
type
==
4
)
{
xiaoJi
+=
Number
(
item
.
BreakfastCostPrice
)
*
Number
(
currencyRate
);
}
//午餐
if
(
type
==
5
)
{
xiaoJi
+=
Number
(
item
.
LunchCostPrice
)
*
Number
(
currencyRate
);
}
//午餐
if
(
type
==
6
)
{
xiaoJi
+=
Number
(
item
.
DinnerCostPrice
)
*
Number
(
currencyRate
);
}
//过路费
if
(
type
==
7
)
{
xiaoJi
+=
Number
(
item
.
PassFee
)
*
Number
(
currencyRate
);
}
});
return
xiaoJi
.
toFixed
(
0
);
},
//获取汇率
getCurrencyMoney
(
currencyId
)
{
let
currency
=
1
;
this
.
CostCurrencyList
.
forEach
(
x
=>
{
if
(
x
.
CurrencyId
==
currencyId
)
{
currency
=
x
.
ExchangeRate
;
}
});
return
currency
;
},
//获取币种名称
getCurrencyName
(
currencyId
)
{
let
CurrencyName
=
""
;
this
.
CostCurrencyList
.
forEach
(
x
=>
{
if
(
x
.
CurrencyId
==
currencyId
)
{
CurrencyName
=
x
.
CurrencyName
;
}
});
return
CurrencyName
;
},
//判断币种是否相等
checkExists
(
CurrencyId
)
{
var
flag
=
false
;
this
.
CurrencyNumberListExt
.
forEach
(
item
=>
{
if
(
!
flag
&&
item
.
Key
==
CurrencyId
)
{
flag
=
true
;
}
});
return
flag
;
},
//获取不同人数组合价
getCurrencyNumberTotalMoney
(
peopleNumber
)
{
let
totalMoney
=
0.0
;
this
.
CurrencyNumberListExt
.
forEach
(
x
=>
{
x
.
currencyNumberList
.
forEach
(
y
=>
{
// if (peopleNumber === y.PeopleNumber) {
// totalMoney +=
// this.getConvertMoney(y.Money) *
// this.getCurrencyMoney(y.CurrencyId);
// }
});
});
return
totalMoney
;
},
//获取主成本价
getCostTotalMoney
()
{
let
totalMoney
=
this
.
getConvertMoney
(
this
.
OtherPrice
.
InlandAirTicketMoney
)
*
this
.
getCurrencyMoney
(
this
.
OtherPrice
.
InlandAirTicketCurrency
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
InlandShipTicketMoney
)
*
this
.
getCurrencyMoney
(
this
.
OtherPrice
.
InlandShipTicketCurrency
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
InlandTrainTicketMoney
)
*
this
.
getCurrencyMoney
(
this
.
OtherPrice
.
InlandTrainTicketCurrency
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
DriverGuideMoney
)
*
this
.
getCurrencyMoney
(
this
.
OtherPrice
.
DriverGuideMoneyCurrencyId
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
LeaderTripMoney
)
*
this
.
getCurrencyMoney
(
this
.
OtherPrice
.
LeaderTripMoneyCurrencyId
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
OfficeCommissionMoney
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
SafeMoney
)
*
this
.
getCurrencyMoney
(
this
.
OtherPrice
.
SafeMoneyCurrencyId
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
SalesCommissionMoney
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
TripMoney
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
GuidePeopleMoney
)
-
this
.
getConvertMoney
(
this
.
OtherPrice
.
KBMoney
)
+
this
.
getConvertMoney
(
this
.
OtherPrice
.
VisaMoney
)
*
this
.
getCurrencyMoney
(
this
.
OtherPrice
.
VisaMoneyCurrencyId
);
//KBMoney[团负费用减法]
// this.getConvertMoney(this.OtherPrice.AirTicketMoeny) +
return
totalMoney
;
},
//获取系列列表
getLineTeamList
(
lineId
,
isClear
)
{
if
(
isClear
&&
isClear
==
1
)
{
this
.
postConfig
.
LineteamId
=
0
;
}
let
msg
=
{
lineID
:
lineId
,
isTOOP
:
1
};
var
that
=
this
;
//获取当前选中的对象
let
obj
=
{};
obj
=
that
.
LineList
.
find
(
item
=>
{
return
item
.
LineID
===
lineId
;
});
this
.
apipost
(
"team_post_GetList"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
LineTeamList
=
res
.
data
.
data
;
}
});
},
//生成行程报价
createDayTripPrice
()
{
if
(
this
.
postConfig
.
DayNum
>
this
.
dayCostPrice
.
length
)
{
for
(
var
i
=
this
.
dayCostPrice
.
length
;
i
<
this
.
postConfig
.
DayNum
;
i
++
)
{
//去掉以前默认的交通
var
dayItem
=
{
Id
:
0
,
//主键编号
OfferId
:
0
,
//报价单编号
ConfigId
:
0
,
//配置编号
Title
:
""
,
//行程大点
DayNum
:
i
+
1
,
//行程天数
CurrencyId
:
0
,
//币种
HotelCostPrice
:
0
,
//酒店报价
BusCostPrice
:
0
,
//车辆报价
ScenicCostPrice
:
0
,
//景点报价
BreakfastCostPrice
:
0
,
//早餐报价
LunchCostPrice
:
0
,
//午餐报价
DinnerCostPrice
:
0
,
//晚餐报价
ContainDinnerType
:
0
,
//含餐类型(1-含早餐,2-含晚餐,3-含早晚)
PassFee
:
0
,
//过路费
};
this
.
dayCostPrice
.
push
(
dayItem
);
}
}
else
{
//删除多余的项
for
(
var
i
=
this
.
postConfig
.
DayNum
;
i
<
this
.
dayCostPrice
.
length
;
i
++
)
{
this
.
dayCostPrice
.
splice
(
i
,
1
);
}
this
.
dayCostPrice
.
length
=
this
.
postConfig
.
DayNum
;
}
},
//获取币种对应 的人数报价
getCurrencyNumberList
(
CurrencyId
)
{
let
currencyNumberList
=
[];
let
flag
=
false
;
this
.
CurrencyNumberListExt
.
forEach
(
item
=>
{
if
(
!
flag
&&
item
.
Key
==
CurrencyId
)
{
flag
=
true
;
currencyNumberList
=
item
.
currencyNumberList
;
}
});
return
currencyNumberList
;
},
//添加币种
addCurrency
()
{
var
currencyId
=
this
.
currencyType
;
var
ckedName
;
var
ckedRate
=
this
.
queryMsg
.
RateInput
;
if
(
currencyId
==
""
)
{
this
.
Info
(
"请选择币种"
);
return
;
}
if
(
ckedRate
==
""
)
{
this
.
Info
(
"请输入汇率"
);
return
;
}
this
.
currencyTypeArr
.
forEach
(
x
=>
{
if
(
currencyId
==
x
.
ID
)
{
ckedName
=
x
.
Name
;
}
});
if
(
this
.
$tripUtils
.
isInObjArr
(
this
.
CostCurrencyList
,
"CurrencyId"
,
currencyId
)
)
{
this
.
Info
(
"币种已经存在"
);
return
;
}
var
CurObj
=
this
.
$tripUtils
.
CostCurrency
();
CurObj
.
CurrencyName
=
ckedName
;
CurObj
.
ExchangeRate
=
ckedRate
;
CurObj
.
CurrencyId
=
currencyId
;
this
.
CostCurrencyList
.
push
(
CurObj
);
this
.
currencyType
=
""
;
this
.
queryMsg
.
RateInput
=
""
;
let
currencyNumberItem
=
{
Key
:
currencyId
,
currencyNumberList
:
[]
};
if
(
this
.
CurrencyNumberListExt
.
length
>
0
)
{
if
(
this
.
CurrencyNumberListExt
[
0
].
currencyNumberList
.
length
>
0
)
{
this
.
CurrencyNumberListExt
[
0
].
currencyNumberList
.
forEach
(
x
=>
{
let
tempData
=
JSON
.
parse
(
JSON
.
stringify
(
x
));
tempData
.
CurrencyId
=
currencyId
;
tempData
.
Money
=
0.0
;
currencyNumberItem
.
currencyNumberList
.
push
(
tempData
);
}
);
}
}
this
.
CurrencyNumberListExt
.
push
(
currencyNumberItem
);
},
//添加人数费用
addPeoNunber
()
{
var
PeopleNumber
=
this
.
queryMsg
.
PeopleNumber
;
if
(
PeopleNumber
==
""
)
{
this
.
Info
(
"请输入人数"
);
return
;
}
if
(
this
.
$tripUtils
.
isInObjArr
(
this
.
CostNumberList
,
"PeopleNumber"
,
PeopleNumber
)
)
{
this
.
Info
(
"人数已经存在"
);
return
;
}
var
CostNumberObj
=
this
.
$tripUtils
.
CostNumber
();
CostNumberObj
.
PeopleNumber
=
PeopleNumber
;
this
.
CostNumberList
.
push
(
CostNumberObj
);
this
.
CurrencyNumberListExt
.
forEach
(
x
=>
{
var
CurrencyNumberObj
=
this
.
$tripUtils
.
CurrencyNumber
();
CurrencyNumberObj
.
CurrencyId
=
x
.
Key
;
CurrencyNumberObj
.
PeopleNumber
=
PeopleNumber
;
x
.
currencyNumberList
.
push
(
CurrencyNumberObj
);
});
this
.
queryMsg
.
PeopleNumber
=
""
;
this
.
queryMsg
.
Money
=
""
;
this
.
shortPeopleNumber
();
},
//删除币种
DeleteCurrency
(
index
)
{
this
.
CostCurrencyList
.
splice
(
index
,
1
);
},
//删除人数
DeletePNumber
(
index
)
{
this
.
CostNumberList
.
splice
(
index
,
1
);
},
//人数排序
shortPeopleNumber
()
{
this
.
CurrencyNumberListExt
.
forEach
(
x
=>
{
x
.
currencyNumberList
.
sort
(
this
.
$commonUtils
.
createComprisonFunction
(
"PeopleNumber"
)
);
});
this
.
CostNumberList
.
sort
(
this
.
$commonUtils
.
createComprisonFunction
(
"PeopleNumber"
)
);
},
//币种下拉获取汇率
getRate
(
ID
)
{
this
.
currencyTypeArr
.
forEach
(
x
=>
{
if
(
x
.
ID
==
ID
)
{
this
.
queryMsg
.
RateInput
=
x
.
CurrentRate
;
}
});
},
//获取所有币种
getAllCurrency
()
{
this
.
apipost
(
"financeinfo_post_GetList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
currencyTypeArr
=
res
.
data
.
data
;
this
.
currencyTypeArr
.
forEach
(
item
=>
{
if
(
item
.
ID
==
3
)
{
//徐总说日元默认加0.002
item
.
CurrentRate
=
Number
(
item
.
CurrentRate
)
+
Number
(
0.002
);
}
});
}
},
err
=>
{}
);
},
//计算总价
getSubtotalMoney
()
{
let
that
=
this
;
this
.
CostNumberList
.
forEach
(
x
=>
{
x
.
SubtotalMoney
=
(
that
.
getConvertMoney
(
x
.
AirTicketMoney
)
+
that
.
getConvertMoney
(
x
.
TicketMoney
)
+
that
.
getConvertMoney
(
x
.
SingleRoomMoney
)
+
that
.
getConvertMoney
(
x
.
InlandTrafficMoney
)
+
that
.
getConvertMoney
(
x
.
OtherMoney
)
+
that
.
getConvertMoney
(
x
.
LeaderGuideDriveZhuSu
)
).
toFixed
(
0
);
//房餐车景点价格
var
trip
=
Number
(
that
.
getLocalTotalMoney
(
x
.
PeopleNumber
));
console
.
log
(
"trip"
,
trip
);
//其他价格
var
otherPrice
=
Number
(
that
.
getCostTotalMoney
())
console
.
log
(
"otherPrice"
,
otherPrice
)
x
.
TotalMoney
=
(
trip
+
otherPrice
+
Number
(
that
.
getConvertMoney
(
x
.
SubtotalMoney
))
).
toFixed
(
0
);
// + that.getCurrencyNumberTotalMoney(x.PeopleNumber)
});
},
//价格转换器
getConvertMoney
(
value
)
{
if
(
value
===
""
||
value
===
undefined
||
value
===
null
)
{
value
=
0.0
;
}
return
parseFloat
(
value
);
},
//获取地接项目报价
getLocalTotalMoney
(
PeopleNumber
)
{
let
totalMoney
=
0.0
;
totalMoney
=
Number
(
this
.
getDayXiaoJi
(
1
,
2
))
+
Number
(
this
.
getDayXiaoJi
(
3
,
2
))
+
Number
(
this
.
getDayXiaoJi
(
4
,
2
))
+
Number
(
this
.
getDayXiaoJi
(
5
,
2
))
+
Number
(
this
.
getDayXiaoJi
(
6
,
2
))
+
Number
(
this
.
getDayXiaoJi
(
2
,
2
))
/
Number
(
PeopleNumber
)
+
Number
(
this
.
getDayXiaoJi
(
7
,
2
))
/
Number
(
PeopleNumber
)
;
return
totalMoney
.
toFixed
(
0
);
},
//计算领队分摊
getLeaderShare
()
{
let
that
=
this
;
var
AirTicketShareMoney
=
this
.
OtherPrice
.
AirTicketShareMoney
;
var
TicketShareMoney
=
this
.
OtherPrice
.
TicketShareMoney
;
var
SingleRoomShareMoney
=
this
.
OtherPrice
.
SingleRoomShareMoney
;
var
InlandTrafficShareMoney
=
this
.
OtherPrice
.
InlandTrafficShareMoney
;
var
OtherShareMoney
=
this
.
OtherPrice
.
OtherShareMoney
;
//司机导游住宿
var
LeaderGuideDriveZhuSu
=
this
.
OtherPrice
.
LeaderGuideDriveZhuSu
;
this
.
CostNumberList
.
forEach
(
x
=>
{
x
.
AirTicketMoney
=
(
AirTicketShareMoney
/
x
.
PeopleNumber
).
toFixed
(
0
);
x
.
TicketMoney
=
(
TicketShareMoney
/
x
.
PeopleNumber
).
toFixed
(
0
);
x
.
SingleRoomMoney
=
(
SingleRoomShareMoney
/
x
.
PeopleNumber
).
toFixed
(
0
);
x
.
InlandTrafficMoney
=
(
InlandTrafficShareMoney
/
x
.
PeopleNumber
).
toFixed
(
0
);
x
.
OtherMoney
=
(
OtherShareMoney
/
x
.
PeopleNumber
).
toFixed
(
0
);
x
.
LeaderGuideDriveZhuSu
=
(
LeaderGuideDriveZhuSu
/
x
.
PeopleNumber
).
toFixed
(
0
);
});
},
getchange
()
{
this
.
getLeaderShare
();
this
.
getSubtotalMoney
();
},
//遍历显示下拉框
getCurrencyDetail
(
id
){
var
str
=
''
;
this
.
CostCurrencyList
.
forEach
(
x
=>
{
if
(
id
==
x
.
CurrencyId
){
str
=
x
.
CurrencyName
;
}
})
if
(
id
==
0
){
str
=
'不限'
}
return
str
;
},
//遍历显示线路名
getLineName
(
id
){
var
str
=
''
;
this
.
LineList
.
forEach
(
x
=>
{
if
(
id
==
x
.
LineID
){
str
=
x
.
LineName
;
}
})
if
(
id
==
0
){
str
=
'不限'
}
return
str
;
},
//获取系列名
getTeamName
(
id
){
var
str
=
''
;
this
.
LineTeamList
.
forEach
(
x
=>
{
if
(
id
==
x
.
LtID
){
str
=
x
.
LtName
;
}
})
if
(
id
==
0
){
str
=
'不限'
}
return
str
;
}
},
mounted
()
{
this
.
getSubtotalMoney
();
this
.
getAllCurrency
();
},
created
()
{
},
watch
:
{
postConfig
:
{
handler
:
function
(
val
,
oldVal
)
{
this
.
getLineTeamList
(
this
.
postConfig
.
LineId
);
},
deep
:
true
},
CostNumberList
:
{
handler
:
function
(
val
,
oldVal
)
{
this
.
getchange
()
},
deep
:
true
},
},
};
</
script
>
src/components/TravelManager/TravelNewQuotation/QuotationAduit.vue
0 → 100644
View file @
9b0df04d
<
style
>
.singlePrice
{
width
:
100%
;
position
:
relative
;
margin-bottom
:
15px
;
background-color
:
#fff
;
padding
:
0
20px
20px
20px
;
border-radius
:
4px
;
}
</
style
>
<
template
>
<div
class=
"DirectQuotation clearfix"
v-loading=
"loading"
>
<div
class=
"singlePrice clearfix"
>
<CostNewPriceAudit
ref=
"CostNewPrice"
:postConfig=
"postData"
:OtherPrice=
"otherPrice"
:dayCostPrice=
"dayCostPriceList"
:LineList=
"LineList"
:CostCurrencyList=
"CostCurrencyList"
:CostNumberList=
"CostNumberList"
:CurrencyNumberListExt=
"CurrencyNumberListExt"
:teamPrice=
"teamPrice"
></CostNewPriceAudit>
</div>
<div
class=
"btnFixedDiv"
>
<div
class=
"toTop"
>
<i
class=
"iconfont icon-huidaodingbu"
></i>
</div>
<div
class=
"DTSaveBtn"
:class=
"
{'disClick':!isSubmit}" @click="SaveData(2)">提交
</div>
<div
class=
"DTSaveBtn"
style=
"display:none;"
>
复制
</div>
<div
class=
"DTSaveBtn caogao"
:class=
"
{'disClick':!isSubmit}" @click="SaveData(1)">
<span>
保存
</span>
<span>
草稿
</span>
</div>
</div>
</div>
</
template
>
<
script
>
import
CostNewPriceAudit
from
"../TravelNewQuotation/CostNewPriceAudit"
;
export
default
{
data
()
{
return
{
ConfigID
:
0
,
//基本配置
postData
:
{
ID
:
0
,
StartCityId
:
0
,
LineId
:
0
,
LineteamId
:
0
,
Title
:
""
,
IsOrder
:
1
,
IsSubstitution
:
1
,
IsB2B
:
1
,
IsB2C
:
1
,
FSeat
:
0
,
CSeat
:
0
,
YSeat
:
0
,
//最低成团人数
LowNum
:
0
,
//OP备注
OpRemark
:
""
,
//产品经理备注
ProductRecommend
:
""
,
IsDirect
:
0
,
//是否直采(0-否-1-是)【全部默认非直采】
PriceIsDirect
:
1
,
//是否直采报价(1-否-2-是)【全部默认非直采】
PDFAlias
:
""
,
//pdf别名
ImgCover
:
""
,
//封面图
DayNum
:
0
,
//天数
NightNum
:
0
,
//晚数
StartCityId
:
0
,
ReturnArriveCityId
:
0
,
//返回抵达城市
CustomerName
:
""
,
//客户名称
TeamType
:
0
,
//团队类型
},
dayCostPriceList
:
[],
//报价列表
isSubmit
:
true
,
otherPrice
:
{
CostId
:
0
,
//主键编号
ConfigID
:
0
,
//配置编号
OfferId
:
0
,
//报价单编号
InlandAirTicketCurrency
:
0
,
//内陆段机位币种
InlandAirTicketMoney
:
0
,
//内陆段机位金额(每人)
InlandShipTicketCurrency
:
0
,
//内陆段船票币种
InlandShipTicketMoney
:
0
,
//内陆段船票金额(每人)
InlandTrainTicketCurrency
:
0
,
//内陆段火车币种
InlandTrainTicketMoney
:
0
,
//内陆段火车金额(每人)
VisaMoney
:
0
,
//签证费用(每人)
SafeMoney
:
0
,
//保险费用(每人)
LeaderTripMoney
:
0
,
//领队小费
DriverGuideMoney
:
0
,
//司机导游小费
SalesCommissionMoney
:
0
,
//销售提成
OfficeCommissionMoney
:
0
,
//作业处提成
TripMoney
:
0
,
//小费
GuidePeopleMoney
:
0
,
//导游人头费
AirTicketMoeny
:
0
,
//机票成本费用
KBMoney
:
0
,
//KB人头费
AirTicketShareMoney
:
0
,
//机票分摊费用
TicketShareMoney
:
0
,
//门票分摊费用,
SingleRoomShareMoney
:
0
,
//单房差分摊费用
InlandTrafficShareMoney
:
0
,
//内陆段交通分摊费用
OtherShareMoney
:
0
,
//杂费分摊费用
OtherRemark
:
""
,
//其他价格备注
VisaMoneyCurrencyId
:
0
,
//签证费币种
SafeMoneyCurrencyId
:
0
,
//保险费币种
LeaderTripMoneyCurrencyId
:
0
,
//领队小费币种
DriverGuideMoneyCurrencyId
:
0
,
//司机导游小费币种
},
CostCurrencyList
:
[],
//选择的币种
CostNumberList
:
[],
//人数
CurrencyNumberListExt
:
[],
//币种和人数列表
//团报价信息
teamPrice
:
{
QuotationId
:
0
,
//主键编号
TeamId
:
0
,
//团期编号
ConfigID
:
0
,
//团队配置编号
OfferId
:
0
,
//报价编号
B2BMemberPrice
:
0
,
//同业会员价
B2BPrice
:
0
,
//同业价格
B2CMemberPrice
:
0
,
//直客会员价,
B2CPrice
:
0
,
//直客价格
ChildNeedPrice
:
0
,
//小孩占床价格,
ChildNoNeedPrice
:
0
,
//小孩不占床价格
BabyPrice
:
0
,
//婴儿价格
BabyChargePrice
:
0
,
//婴儿附加费
OldManChargePrice
:
0
,
//老人附加费
VisaPrice
:
0
,
//签证
OtherPrice
:
0
,
//杂费
SingleRoomPrice
:
0
,
//单房差
SingleDMCPrice
:
0
,
//单地接
RebatePrice
:
0
,
//同行返佣
DiscountPrice
:
0
,
//早鸟优惠
IsSupportChildren
:
1
,
//是否支持儿童出游(1-支持,2-不支持)
SafeMoney
:
0
,
//保险费
PeopleNumber
:
0
,
//人数
AirticketMoney
:
0
,
//机票费用
BackVisaPrice
:
0
,
//退签证费
BackSafeMoney
:
0
,
//退保险费
ContractUrl
:
""
,
//合同地址
PriceRemark
:
""
,
//定价备注
LeaderGuideDriveZhuSu
:
0
,
//领队导游住宿费
},
LineList
:
[],
//线路列表
loading
:
false
};
},
methods
:
{
//表单提交
submitForm
(
type
)
{
this
.
$refs
[
"QuotationPrice"
].
submitForm
(
type
);
},
//保存数据
SaveData
()
{
var
currencyNumList
=
[];
if
(
this
.
CurrencyNumberListExt
!=
null
&&
this
.
CurrencyNumberListExt
.
length
>
0
)
{
this
.
CurrencyNumberListExt
.
forEach
((
item
,
index
)
=>
{
item
.
currencyNumberList
.
forEach
(
subItem
=>
{
currencyNumList
.
push
(
subItem
);
});
});
}
var
nObj
=
{
config
:
this
.
postData
,
dayCostPriceList
:
this
.
dayCostPriceList
,
otherPrice
:
this
.
otherPrice
,
teamPrice
:
this
.
teamPrice
,
CostCurrencyList
:
this
.
CostCurrencyList
,
CostNumberList
:
this
.
CostNumberList
,
CurrencyNumberListExt
:
currencyNumList
};
this
.
loading
=
true
;
this
.
apipost
(
"travel_post_SetConfigOffer_V2"
,
nObj
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
res
.
data
.
message
);
if
(
this
.
postData
.
TeamType
==
1
)
{
this
.
goUrl
(
'newQuotation2'
);
}
else
{
this
.
goUrl
(
'newQuotation'
);
}
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
goUrl
(
path
)
{
this
.
$router
.
push
({
path
:
path
,
query
:
{
cache
:
true
}
});
},
getPostData
()
{
let
configId
=
this
.
$route
.
query
.
configId
;
let
offerId
=
0
;
if
(
this
.
$route
.
query
.
offerid
)
{
offerId
=
this
.
$route
.
query
.
offerid
;
}
let
msg
=
{
ID
:
configId
,
offerId
:
offerId
};
this
.
apipost
(
"travel_get_GetMyTravelInfo_V2"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
var
tempData
=
res
.
data
.
data
;
console
.
log
(
"tempData"
,
tempData
);
if
(
tempData
.
ID
&&
tempData
.
ID
>
0
)
{
this
.
postData
.
ID
=
tempData
.
ID
;
}
if
(
tempData
.
LineId
&&
tempData
.
LineId
>
0
)
{
this
.
postData
.
LineId
=
tempData
.
LineId
;
}
if
(
tempData
.
LineteamId
&&
tempData
.
LineteamId
>
0
)
{
this
.
postData
.
LineteamId
=
tempData
.
LineteamId
;
}
if
(
tempData
.
CSeat
&&
tempData
.
CSeat
>
0
)
{
this
.
postData
.
CSeat
=
tempData
.
CSeat
;
}
if
(
tempData
.
FSeat
&&
tempData
.
FSeat
>
0
)
{
this
.
postData
.
FSeat
=
tempData
.
FSeat
;
}
if
(
tempData
.
YSeat
&&
tempData
.
YSeat
>
0
)
{
this
.
postData
.
YSeat
=
tempData
.
YSeat
;
}
if
(
tempData
.
LowNum
&&
tempData
.
LowNum
>
0
)
{
this
.
postData
.
LowNum
=
tempData
.
LowNum
;
}
if
(
tempData
.
Title
&&
tempData
.
Title
!=
''
)
{
this
.
postData
.
Title
=
tempData
.
Title
;
}
if
(
tempData
.
DayNum
&&
tempData
.
DayNum
>
0
)
{
this
.
postData
.
DayNum
=
tempData
.
DayNum
;
}
if
(
tempData
.
NightNum
&&
tempData
.
NightNum
>
0
)
{
this
.
postData
.
NightNum
=
tempData
.
NightNum
;
}
this
.
postData
.
CustomerName
=
tempData
.
CustomerName
;
this
.
LineList
=
tempData
.
LineList
;
if
(
tempData
.
dayCostPriceList
&&
tempData
.
dayCostPriceList
!=
null
&&
tempData
.
dayCostPriceList
.
length
>
0
)
{
this
.
dayCostPriceList
=
tempData
.
dayCostPriceList
;
}
if
(
tempData
.
otherPrice
)
{
this
.
otherPrice
=
tempData
.
otherPrice
;
}
if
(
tempData
.
teamPrice
)
{
this
.
teamPrice
=
tempData
.
teamPrice
;
}
if
(
tempData
.
CostNumberList
&&
tempData
.
CostNumberList
!=
null
&&
tempData
.
CostNumberList
.
length
>
0
)
{
this
.
CostNumberList
=
tempData
.
CostNumberList
;
}
if
(
tempData
.
CostCurrencyList
&&
tempData
.
CostCurrencyList
!=
null
&&
tempData
.
CostCurrencyList
.
length
>
0
)
{
this
.
CostCurrencyList
=
tempData
.
CostCurrencyList
;
}
if
(
tempData
.
CurrencyNumberListExt
&&
tempData
.
CurrencyNumberListExt
!=
null
&&
tempData
.
CurrencyNumberListExt
.
length
>
0
)
{
this
.
CurrencyNumberListExt
=
tempData
.
CurrencyNumberListExt
;
}
if
(
this
.
CostCurrencyList
&&
this
.
CostCurrencyList
.
length
>
0
&&
this
.
CurrencyNumberListExt
)
{
this
.
CostCurrencyList
.
forEach
(
item
=>
{
let
currencyNumberItem
=
{
Key
:
item
.
CurrencyId
,
currencyNumberList
:
[]
};
if
(
this
.
CurrencyNumberListExt
.
length
==
0
)
{
this
.
CurrencyNumberListExt
.
push
(
currencyNumberItem
);
}
});
}
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
},
created
()
{
if
(
this
.
$route
.
query
.
TeamType
)
{
this
.
postData
.
TeamType
=
this
.
$route
.
query
.
TeamType
;
}
this
.
getPostData
();
},
components
:
{
CostNewPriceAudit
:
CostNewPriceAudit
}
};
</
script
>
src/router/config.js
View file @
9b0df04d
...
@@ -2916,6 +2916,15 @@ export default {
...
@@ -2916,6 +2916,15 @@ export default {
title
:
'制作报价单'
title
:
'制作报价单'
},
},
},
},
{
//新版报价单审核
path
:
'/QuotationAduit'
,
name
:
'QuotationAduit'
,
component
:
resolve
=>
require
([
'@/components/TravelManager/TravelNewQuotation/QuotationAduit'
],
resolve
),
meta
:
{
title
:
'报价单审核'
},
},
{
//团控-我的机票
{
//团控-我的机票
path
:
'/TravelMyTicket'
,
path
:
'/TravelMyTicket'
,
name
:
'TravelMyTicket'
,
name
:
'TravelMyTicket'
,
...
...
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