Commit f0416106 authored by 黄奎's avatar 黄奎

页面修改

parent a8a7738f
<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 .CP_ComTitle2 {
color: #106BAF;
font-weight: bold;
background-color: #D1EEEE;
white-space: nowrap;
}
.CostNewTable {
border-collapse: collapse;
}
.CostNewTable td {
height: 40px;
border: 1px solid #106BAF !important;
border-collapse: collapse;
padding: 0 3px;
}
.CostNewTable .el-input .el-input__inner {
height: 25px !important;
border: none;
border-bottom: 1px solid #606266;
padding-left: 5px !important;
}
.CP_ComTitle {
color: #106BAF;
}
.w70 {
width: 70px !important;
}
.CostcomCenter {
text-align: center;
}
.txtRightCost {
text-align: right;
padding-right: 10px;
}
.CostNewPrice .el-form-item {
margin-bottom: 0 !important;
}
</style>
<template>
<div>
<div class="CostNewPrice clearfix CP_Div" style="width:1350px;">
<el-form>
<table class="CostNewTable" style="width:1350px;">
<thead>
<tr>
<td colspan="12" class="CP_ComTitle2 CostcomCenter">报价信息</td>
</tr>
<tr>
<td class="CP_ComTitle2">默认报价单</td>
<td colspan="11">
<el-switch type="textarea" :disabled="!canEdit" v-model="IsDefault"
@change="queryMsg.IsDefault = IsDefault"></el-switch>
</td>
</tr>
<tr>
<td class="CP_ComTitle2 CostcomCenter" style="width:120px">币种</td>
<td v-for='(item,index) in CostCurrencyList'>
{{item.CurrencyName}}
<span>
<i class="iconfont icon-quxiao" style="display:inline-block;" @click="DeleteCurrency(index)"></i>
</span>
</td>
<td :colspan="12-2-CostCurrencyList.length+1">
<el-form-item class="w70">
<el-select v-model='currencyType' @change="getRate(currencyType),addCurrency()">
<el-option v-for="item in currencyTypeArr" :label='item.Name' :value='item.ID' :key='item.ID'>
</el-option>
</el-select>
</el-form-item>
</td>
</tr>
<tr>
<td class="CP_ComTitle2 CostcomCenter">汇率</td>
<td v-for='item in CostCurrencyList'>
<el-input class="w70" v-model='item.ExchangeRate'
@keyup.native="checkRate(item,'ExchangeRate'),getchange()">
</el-input>
</td>
<td :colspan="12-2-CostCurrencyList.length+1">
<el-input class="w70" v-model='queryMsg.RateInput'
@keyup.native="checkRate(queryMsg,'RateInput'),getchange()">
</el-input>
</td>
</tr>
<tr>
<td class="CP_ComTitle2 CostcomCenter">人数</td>
<td v-for="(item,index) in CostNumberList" :key='item.subCode'>
<el-input class="w70" v-model='item.PeopleNumber' @keyup.native="checkInteger(item,'PeopleNumber')">
</el-input>
<span>
<i class="iconfont icon-quxiao" @click="DeletePNumber(index),getchange()"></i>
</span>
</td>
<td :colspan="12-2-CostNumberList.length+1">
<el-form-item>
<el-input class="w70" v-model='queryMsg.PeopleNumber'
@keyup.native="checkInteger(queryMsg,'PeopleNumber'),getchange()"></el-input>
<i class="iconfont icon-img_haha" style="cursor:pointer;" @click="addPeoNunber"></i>
</el-form-item>
<div colspan="12" style="color: #f12121;font-weigth: bold;">填入人数后请点击"+"</div>
</td>
</tr>
</thead>
<tr>
<td rowspan="2" style="width:100px" class="CP_ComTitle2 CostcomCenter">Day</td>
<td rowspan="2" style="width:100px" class="CP_ComTitle2 CostcomCenter">行程大点</td>
<td rowspan="2" style="width:100px" class="CP_ComTitle2 CostcomCenter">币种</td>
<td rowspan="2" style="width:270px" class="CP_ComTitle2 CostcomCenter">酒店</td>
<td colspan="2" style="width:100px" class="CP_ComTitle2 CostcomCenter"></td>
<td rowspan="2" style="width:100px" class="CP_ComTitle2 CostcomCenter">门票</td>
<td colspan="3" style="width:100px" class="CP_ComTitle2 CostcomCenter"></td>
<td rowspan="2" style="width:100px" class="CP_ComTitle2 CostcomCenter">回佣<br />(不计入成本)</td>
<td rowspan="2" style="width:100px" class="CP_ComTitle2 CostcomCenter">其它费用<br />(保险、司导杂费等)</td>
</tr>
<tr>
<td style="width:50px" class="CP_ComTitle2 CostcomCenter">总车资</td>
<td style="width:50px" class="CP_ComTitle2 CostcomCenter">过路费</td>
<td style="width:35px" class="CP_ComTitle2 CostcomCenter"></td>
<td style="width:35px" class="CP_ComTitle2 CostcomCenter"></td>
<td style="width:30px" 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">
{{subItem.DayNum}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
<el-input type="textarea" resize="none" class="w250" v-model="subItem.Title"></el-input>
</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">
<el-form-item label="酒店名称:" style="width:250px;">
<el-select filterable remote :remote-method="(query) => remoteSearchAdGroup(query, subItem)"
v-model='subItem.HotelId' placeholder="请输入酒店名称" :loading="loading"
@change="getHotel(subItem,subItem.HotelId)">
<el-option v-for="(x) in subItem.HotelList" :key="x.ID" :label="x.Name" :value='x.ID'>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="含餐类型:">
<el-select v-model='subItem.ContainDinnerType' style="width:100px;" placeholder="含餐类型"
@change="DinnerTypeChange(subItem)">
<el-option label="含餐类型" :value='0'></el-option>
<el-option label="含早餐" :value='1'></el-option>
<el-option label="含晚餐" :value='2'></el-option>
<el-option label="含早晚餐" :value='3'></el-option>
</el-select>
</el-form-item>
<el-form-item label="酒店价格:">
<el-input type='text' v-model="subItem.HotelCostPrice" style="width:100px"
@keyup.native="checkPrice(subItem,'HotelCostPrice')" placeholder="酒店价格"></el-input>
</el-form-item>
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
<el-input type='text' v-model="subItem.BusCostPrice" class="w60"
@keyup.native="checkPrice(subItem,'BusCostPrice'),getchange()">
</el-input>
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
<el-input type='text' v-model="subItem.PassFee" class="w60"
@keyup.native="checkPrice(subItem,'PassFee'),getchange()">
</el-input>
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
<el-input type='text' v-model="subItem.ScenicCostPrice" class="w60"
@keyup.native="checkPrice(subItem,'ScenicCostPrice'),getchange()"></el-input>
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
<el-input type="text"
:disabled="(subItem.ContainDinnerType==1||subItem.ContainDinnerType==3)?true:false"
v-model='subItem.BreakfastCostPrice' class="w60"
@keyup.native="checkPrice(subItem,'BreakfastCostPrice'),getchange()">
</el-input>
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
<el-input type="text" v-model='subItem.LunchCostPrice' class="w60"
@keyup.native="checkPrice(subItem,'LunchCostPrice'),getchange()"></el-input>
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
<el-input type="text"
:disabled="(subItem.ContainDinnerType==2||subItem.ContainDinnerType==3)?true:false"
v-model='subItem.DinnerCostPrice' class="w60"
@keyup.native="checkPrice(subItem,'DinnerCostPrice'),getchange()"></el-input>
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
<el-input type="text" v-model='subItem.RebatePrice' class="w60"
@keyup.native="checkPrice(subItem,'RebatePrice'),getchange()"></el-input>
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
<el-input type="text" v-model='subItem.OtherPrice' class="w60"
@keyup.native="checkPrice(subItem,'OtherPrice'),getchange()"></el-input>
</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 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>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{getDayXiaoJi(8,1)}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{getDayXiaoJi(9,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 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>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{getDayXiaoJi(8,2)}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{getDayXiaoJi(9,2)}}
</td>
</tr>
</template>
</template>
<template v-else>
<tr v-for="subItem in dayCostPrice" :key="subItem.subCode">
<td align="center">
{{subItem.DayNum}}
</td>
<td>
<el-input type="textarea" resize="none" class="w250" v-model="subItem.Title"></el-input>
</td>
<td>
<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>
<el-form-item label="酒店名称:" style="width:250px;">
<el-select filterable remote :remote-method="(query) => remoteSearchAdGroup(query, subItem)"
v-model='subItem.HotelId' placeholder="请输入酒店名称" :loading="loading"
@change="getHotel(subItem,subItem.HotelId)">
<el-option v-for="(x) in subItem.HotelList" :key="x.ID" :label="x.Name" :value='x.ID'>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="含餐类型:">
<el-select v-model='subItem.ContainDinnerType' style="width:100px;" placeholder="含餐类型"
@change="DinnerTypeChange(subItem)">
<el-option label="含餐类型" :value='0'></el-option>
<el-option label="含早餐" :value='1'></el-option>
<el-option label="含晚餐" :value='2'></el-option>
<el-option label="含早晚餐" :value='3'></el-option>
</el-select>
</el-form-item>
<el-form-item label="酒店价格:">
<el-input type='text' v-model="subItem.HotelCostPrice" style="width:100px"
@keyup.native="checkPrice(subItem,'HotelCostPrice')" placeholder="酒店价格"></el-input>
</el-form-item>
</td>
<td>
<el-input type='text' v-model="subItem.BusCostPrice" class="w60"
@keyup.native="checkPrice(subItem,'BusCostPrice'),getchange()">
</el-input>
</td>
<td>
<el-input type='text' v-model="subItem.PassFee" class="w60"
@keyup.native="checkPrice(subItem,'PassFee'),getchange()">
</el-input>
</td>
<td>
<el-input type='text' v-model="subItem.ScenicCostPrice" class="w60"
@keyup.native="checkPrice(subItem,'ScenicCostPrice'),getchange()"></el-input>
</td>
<td>
<el-input type="text"
:disabled="(subItem.ContainDinnerType==1||subItem.ContainDinnerType==3)?true:false"
v-model='subItem.BreakfastCostPrice' class="w60"
@keyup.native="checkPrice(subItem,'BreakfastCostPrice'),getchange()">
</el-input>
</td>
<td>
<el-input type="text" v-model='subItem.LunchCostPrice' class="w60"
@keyup.native="checkPrice(subItem,'LunchCostPrice'),getchange()"></el-input>
</td>
<td>
<el-input type="text"
:disabled="(subItem.ContainDinnerType==2||subItem.ContainDinnerType==3)?true:false"
v-model='subItem.DinnerCostPrice' class="w60"
@keyup.native="checkPrice(subItem,'DinnerCostPrice'),getchange()"></el-input>
</td>
<td>
<el-input type="text" v-model='subItem.RebatePrice' class="w60"
@keyup.native="checkPrice(subItem,'RebatePrice'),getchange()"></el-input>
</td>
<td>
<el-input type="text" v-model='subItem.OtherPrice' class="w60"
@keyup.native="checkPrice(subItem,'OtherPrice'),getchange()"></el-input>
</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>
{{getDayXiaoJi(3,1)}}
</td>
<td>
{{getDayXiaoJi(4,1)}}
</td>
<td>
{{getDayXiaoJi(5,1)}}
</td>
<td>
{{getDayXiaoJi(6,1)}}
</td>
<td>
{{getDayXiaoJi(8,1)}}
</td>
<td>
{{getDayXiaoJi(9,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>
{{getDayXiaoJi(3,2)}}
</td>
<td>
{{getDayXiaoJi(4,2)}}
</td>
<td>
{{getDayXiaoJi(5,2)}}
</td>
<td>
{{getDayXiaoJi(6,2)}}
</td>
<td>
{{getDayXiaoJi(8,2)}}
</td>
<td>
{{getDayXiaoJi(9,2)}}
</td>
</tr>
</template>
<tr>
<td colspan="12"></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">
<el-form-item>
<el-select v-model='OtherPrice.InlandAirTicketCurrency' 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 colspan="2">
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.InlandAirTicketMoney"
@keyup.native="checkPrice(OtherPrice,'InlandAirTicketMoney'),getchange()"></el-input>
</el-form-item>
</td>
<td class="CP_ComTitle2 CostcomCenter">1</td>
<td class="CP_ComTitle2">签证费(每人)</td>
<td colspan="2">
<el-form-item>
<el-select v-model='OtherPrice.VisaMoneyCurrencyId' 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 colspan="2">
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.VisaMoney"
@keyup.native="checkPrice(OtherPrice,'VisaMoney'),getchange()"></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td class="CP_ComTitle2 CostcomCenter">2</td>
<td class="CP_ComTitle2">内陆段船票(每人)</td>
<td colspan="2">
<el-form-item>
<el-select v-model='OtherPrice.InlandShipTicketCurrency' 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 colspan="2">
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.InlandShipTicketMoney"
@keyup.native="checkPrice(OtherPrice,'InlandShipTicketMoney'),getchange()"></el-input>
</el-form-item>
</td>
<td class="CP_ComTitle2 CostcomCenter">2</td>
<td class="CP_ComTitle2">保险费(每人)</td>
<td colspan="2">
<el-form-item>
<el-select v-model='OtherPrice.SafeMoneyCurrencyId' 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 colspan="2">
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.SafeMoney"
@keyup.native="checkPrice(OtherPrice,'SafeMoney'),getchange()"></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td class="CP_ComTitle2 CostcomCenter">3</td>
<td class="CP_ComTitle2">内陆段火车票(每人)</td>
<td colspan="2">
<el-form-item>
<el-select v-model='OtherPrice.InlandTrainTicketCurrency' 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 colspan="2">
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.InlandTrainTicketMoney"
@keyup.native="checkPrice(OtherPrice,'InlandTrainTicketMoney'),getchange()"></el-input>
</el-form-item>
</td>
<td class="CP_ComTitle2 CostcomCenter">3</td>
<td class="CP_ComTitle2">领队小费(每人)</td>
<td colspan="2">
<el-form-item>
<el-select v-model='OtherPrice.LeaderTripMoneyCurrencyId' 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 colspan="2">
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.LeaderTripMoney"
@keyup.native="checkPrice(OtherPrice,'LeaderTripMoney'),getchange()"></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td class="CP_ComTitle2 CostcomCenter">4</td>
<td class="CP_ComTitle2">国际段机票(每人)</td>
<td colspan="2">
<el-form-item>
<el-select v-model='OtherPrice.InternationalAirTicketCurrency' 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 colspan="2">
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.InternationalAirTicket"
@keyup.native="checkPrice(OtherPrice,'InternationalAirTicket'),getchange()"></el-input>
</el-form-item>
</td>
<td class="CP_ComTitle2 CostcomCenter">4</td>
<td class="CP_ComTitle2">司机小费(每人)</td>
<td colspan="2">
<el-form-item>
<el-select v-model='OtherPrice.DriverGuideMoneyCurrencyId' 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 colspan="2">
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.DriverGuideMoney"
@keyup.native="checkPrice(OtherPrice,'DriverGuideMoney'),getchange()"></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td colspan="6"></td>
<td class="CP_ComTitle2 CostcomCenter">5</td>
<td class="CP_ComTitle2">导游小费(每人)</td>
<td colspan="2">
<el-form-item>
<el-select v-model='OtherPrice.GuideMoneyCurrencyId' 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 colspan="2">
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.GuideMoney"
@keyup.native="checkPrice(OtherPrice,'GuideMoney'),getchange()"></el-input>
</el-form-item>
</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="12"></td>
</tr>
<tr>
<td class="CP_ComTitle2" colspan="4">其他支出</td>
<td class="CP_ComTitle2" colspan="4">收入</td>
<td class="CP_ComTitle2" colspan="4">团负费</td>
</tr>
<tr>
<td class="CP_ComTitle2 CostcomCenter" colspan="2">摘要</td>
<td class="CP_ComTitle2 CostcomCenter" colspan="2">金额(人民币)</td>
<td class="CP_ComTitle2 CostcomCenter" colspan="2">摘要</td>
<td class="CP_ComTitle2 CostcomCenter" colspan="2">金额(人民币)</td>
<td class="CP_ComTitle2 CostcomCenter" colspan="2">摘要</td>
<td class="CP_ComTitle2 CostcomCenter" colspan="2">金额(人民币)</td>
</tr>
<tr>
<td class="CP_ComTitle2" colspan="2">销售提成1%</td>
<td colspan="2">
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.SalesCommissionMoney"
@keyup.native="checkPrice(OtherPrice,'SalesCommissionMoney'),getchange()"></el-input>
</el-form-item>
</td>
<td class="CP_ComTitle2" colspan="2">客人小费收入</td>
<td colspan="2">
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.TripMoney"
@keyup.native="checkPrice(OtherPrice,'TripMoney',true),getchange()"></el-input>
</el-form-item>
</td>
<td class="CP_ComTitle2" colspan="2">KB</td>
<td colspan="2">
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.KBMoney"
@keyup.native="checkPrice(OtherPrice,'KBMoney',true),getchange()"></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td class="CP_ComTitle2" colspan="2">作业处提成</td>
<td colspan="2">
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.OfficeCommissionMoney"
@keyup.native="checkPrice(OtherPrice,'OfficeCommissionMoney'),getchange()"></el-input>
</el-form-item>
</td>
<td class="CP_ComTitle2" colspan="2">导游人头费</td>
<td colspan="2">
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.GuidePeopleMoney"
@keyup.native="checkPrice(OtherPrice,'GuidePeopleMoney'),getchange()"></el-input>
</el-form-item>
</td>
<td colspan="4"></td>
</tr>
<tr>
<td class="CP_ComTitle2" colspan="2">
人民币小计
</td>
<td colspan="2">
{{Number(OtherPrice.SalesCommissionMoney)+Number(OtherPrice.OfficeCommissionMoney)}}
</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="2">
{{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" colspan="2">领队导游司机住宿</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="2">小计</td>
</tr>
<tr>
<td></td>
<td>
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.AirTicketShareMoney"
@keyup.native="checkPrice(OtherPrice,'AirTicketShareMoney'),getchange()"></el-input>
</el-form-item>
</td>
<td>
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.TicketShareMoney"
@keyup.native="checkPrice(OtherPrice,'TicketShareMoney'),getchange()"></el-input>
</el-form-item>
</td>
<td colspan="2">
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.LeaderGuideDriveZhuSu"
@keyup.native="checkPrice(OtherPrice,'LeaderGuideDriveZhuSu'),getchange()"></el-input>
</el-form-item>
</td>
<td>
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.SingleRoomShareMoney"
@keyup.native="checkPrice(OtherPrice,'SingleRoomShareMoney'),getchange()"></el-input>
</el-form-item>
</td>
<td colspan="2">
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.InlandTrafficShareMoney"
@keyup.native="checkPrice(OtherPrice,'InlandTrafficShareMoney'),getchange()"></el-input>
</el-form-item>
</td>
<td colspan="2">
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.OtherShareMoney"
@keyup.native="checkPrice(OtherPrice,'OtherShareMoney'),getchange()"></el-input>
</el-form-item>
</td>
<td colspan="2"></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 colspan="2">{{item.LeaderGuideDriveZhuSu}}</td>
<td>{{item.SingleRoomMoney}}</td>
<td colspan="2">{{item.InlandTrafficMoney}}</td>
<td colspan="2">{{item.OtherMoney}}</td>
<td colspan="2">{{item.SubtotalMoney}}</td>
</tr>
<tr>
<td colspan="12"></td>
</tr>
<tr>
<td colspan="12" class="CP_ComTitle2">成本回扣
</td>
</tr>
<tr>
<td>导游回补</td>
<td colspan="11">
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.GuideComplement"
@keyup.native="checkPrice(OtherPrice,'GuideComplement'),getchange()">></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>小费回补</td>
<td colspan="11">
<el-form-item>
<el-input type='text' class="w70" v-model="OtherPrice.TipComplement"
@keyup.native="checkPrice(OtherPrice,'TipComplement'),getchange()"></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td colspan="12"></td>
</tr>
<tr>
<td colspan="12" class="CP_ComTitle2">成本统计(以下报价为每人费用)<br />
计算规则: (房+餐+车+景点)*汇率+内陆段交通*汇率+杂支部分*汇率+其他资产+机票票+收入-团负费+领队分摊+地接报价*汇率-导游回补-小费回补
</td>
</tr>
<tr>
<td class="CP_ComTitle2">人数统计</td>
<td class="CP_ComTitle2">成本价(人民币)</td>
<td class="CP_ComTitle2">
<template v-if="postConfig.LineId==14">
成本价(日元)
</template>
</td>
<td class="CP_ComTitle2">
<template v-if="postConfig.LineId==14">
成本总价(日元)
</template>
</td>
<td class="CP_ComTitle2">销售价格(人民币)</td>
<td class="CP_ComTitle2">
<template v-if="postConfig.LineId==14">
销售价格(日元)
</template>
</td>
<td class="CP_ComTitle2">销售付款方式</td>
<td class="CP_ComTitle2">手配费</td>
<td class="CP_ComTitle2">手配费付款方式</td>
<td colspan="5" class="CP_ComTitle2">备注</td>
</tr>
<tr v-for="item in CostNumberList" :key="item.subCode">
<td>{{item.PeopleNumber}}+1</td>
<td>{{item.TotalMoney}}</td>
<td>
<template v-if="postConfig.LineId==14">
{{item.JPYTotalMoney}}
</template>
</td>
<td>
<template v-if="postConfig.LineId==14">
{{item.JPYTotalMoney*item.PeopleNumber}}
</template>
</td>
<td>
<el-input type='text' class="w70" v-model="item.SalePrice"
@keyup.native="checkPrice(item,'SalePrice',true)" maxlength="8"></el-input>
</td>
<td>
<el-input v-if="postConfig.LineId==14" type='text' class="w70" v-model="item.JPYSalePrice"
@keyup.native="checkPrice(item,'JPYSalePrice',true)" maxlength="8"></el-input>
</td>
<td>
<el-select sclass="w70" v-model="postConfig.SaleOfferPayType" :placeholder="$t('pub.pleaseSel')"
filterable>
<el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option>
<el-option v-for="item in payTypeList" :label='item.label' :value='item.value' :key='item.value'>
</el-option>
</el-select>
</td>
<td>
<el-input type='text' class="w70" v-model="item.ShouPeiFee"
@keyup.native="checkPrice(item,'ShouPeiFee',true)" maxlength="8"></el-input>
</td>
<td>
<el-select class="w70" v-model="postConfig.OfferPayType" :placeholder="$t('pub.pleaseSel')" filterable>
<el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option>
<el-option v-for="item in payTypeList" :label='item.label' :value='item.value' :key='item.value'>
</el-option>
</el-select>
</td>
<td colspan="5">
<el-input type="textarea" v-model="item.CostRemark"></el-input>
</td>
</tr>
<tr>
<td colspan="12"></td>
</tr>
<tr>
<td class="CP_ComTitle2">
婴儿
</td>
<td class="CP_ComTitle2">
单地接
</td>
<td class="CP_ComTitle2">
儿童占床
</td>
<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" colspan="2">
单房差
</td>
</tr>
<tr>
<td>
<el-input placeholder="" v-model="teamPrice.BabyPrice" @keyup.native="checkInteger(teamPrice,'BabyPrice')"
class="w70">
</el-input>
</td>
<td>
<el-input placeholder="" v-model="teamPrice.SingleDMCPrice"
@keyup.native="checkPrice(teamPrice,'SingleDMCPrice')" class="w70">
</el-input>
</td>
<td>
<el-input placeholder="" v-model="teamPrice.ChildNeedPrice"
@keyup.native="checkInteger(teamPrice,'ChildNeedPrice')" class="w70">
</el-input>
</td>
<td>
<el-input placeholder="" v-model="teamPrice.ChildNoNeedPrice"
@keyup.native="checkInteger(teamPrice,'ChildNoNeedPrice')" class="w70">
</el-input>
</td>
<td colspan="2">
<el-input placeholder="" v-model="teamPrice.BabyChargePrice"
@keyup.native="checkPrice(teamPrice,'BabyChargePrice')" class="w70">
</el-input>
</td>
<td colspan="2">
<el-input placeholder="" v-model="teamPrice.OldManChargePrice"
@keyup.native="checkInteger(teamPrice,'OldManChargePrice')" class="w70">
</el-input>
</td>
<td colspan="2">
<el-input placeholder="" v-model="teamPrice.VisaPrice" @keyup.native="checkPrice(teamPrice,'VisaPrice')"
class="w70">
</el-input>
</td>
<td colspan="2">
<el-input placeholder="" v-model="teamPrice.SingleRoomPrice"
@keyup.native="checkPrice(teamPrice,'SingleRoomPrice')" class="w70">
</el-input>
</td>
</tr>
<tr>
<td class="CP_ComTitle2">附件</td>
<td colspan="12">
<el-upload v-if="!teamPrice.ContractArray || !teamPrice.ContractArray.length" class="upload-demo"
style="display:inline-block;position:relative;top:-1px;left:3px;" :http-request="uploadFileBtn"
:show-file-list="false" action="">
<el-button size="small" type="primary">报价单附件</el-button>
</el-upload>
<template v-if="teamPrice.ContractArray&& teamPrice.ContractArray.length>0">
<template v-for="(subItem,subIndex) in teamPrice.ContractArray">
<a style="margin-left:20px;color:blue;cursor:pointer;" target="_blank" :key="subIndex"
@click="downloadFile(subItem.Url,subItem.Name)">{{subItem.Name}}</a>
<a :key="subIndex+1000" style="margin-left:20px;color:blue;cursor:pointer;"
@click="DeleteFile(subIndex)">删除</a>
</template>
</template>
</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", 'queryMsg'
],
data() {
return {
canEdit: true,
IsDefault: false,
//下拉框默认值
defaultSelect: 0,
//币种下拉
currencyType: "",
checkedPei: [],
currencyTypeArr: [], //币种下拉列表
LineTeamList: [], //系列下拉列表
companyList: [], //出团公司
teamList: [],
payTypeList: [{
value: 1,
label: '现金'
}, {
value: 2,
label: '汇款'
}, {
value: 3,
label: '外站自理'
}, ],
HotelName: null, //酒店下拉
loading: false
}
},
methods: {
// 获取酒店名称
getHotel(subItem, HotelId) {
subItem.HotelList.forEach(x => {
if (x.ID == HotelId) {
subItem.HotelName = x.Name
}
})
this.$forceUpdate()
},
remoteSearchAdGroup(query, subItem) {
if (query !== '') {
this.loading = true;
this.initHotel(query, subItem)
} else {
subItem.HotelList = []
this.HotelName = [];
}
},
//初始化酒店列表
initHotel(query, subItem, day) {
this.apipost(
"hotel_post_GetList", {
Name: query
},
res => {
this.loading = false
if (res.data.resultCode == 1) {
if (day == null) {
for (let i = 0; i < this.dayCostPrice.length; i++) {
if (!this.dayCostPrice[i].HotelList || this.dayCostPrice[i].HotelList.length == 0) {
this.dayCostPrice[i].HotelList = res.data.data
}
}
if (subItem && (subItem.HotelList || subItem.HotelList.length > 0)) {
subItem.HotelList = res.data.data
// subItem.HotelId = null
// subItem.HotelName = ''
}
} else if (day != null) {
this.dayCostPrice[day].HotelList = res.data.data
}
this.$forceUpdate()
this.HotelName = res.data.data;
}
},
null
);
},
//删除文件
DeleteFile(subIndex) {
this.teamPrice.ContractArray.splice(subIndex, 1);
},
//下载文件
downloadFile(fileUrl, fileName) {
const link = document.createElement('a');
link.href = fileUrl;
link.download = fileName;
document.body.appendChild(link);
link.click();
},
uploadFileBtn(file) { //上传
let newArr = [];
newArr.push(file.file)
let path = "/Upload/Temporary/"
this.$message.info(this.$t('tips.shangchuanzhong'))
this.UploadSelfFileT(path, newArr, x => {
var newUrl = this.domainManager().ViittoFileUrl + x.data.FilePath;
this.teamPrice.ContractArray.push({
Name: x.data.SourceFileName,
Url: newUrl
});
this.teamPrice.ContractUrl = newUrl;
this.Success(this.$t('tips.scchenggong'))
});
},
getCompanyList() {
//出团公司
this.apipost(
"sellorder_post_GetBranchList", {},
res => {
if (res.data.resultCode == 1) {
this.companyList = res.data.data;
}
},
err => {}
);
},
getTeamList() {
//出团公司
this.apipost(
"travel_GetTeamTypeEnumList", {},
res => {
if (res.data.resultCode == 1) {
this.teamList = res.data.data;
}
},
err => {}
);
},
//含餐类型切换
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);
}
if (this.OtherPrice.InternationalAirTicketCurrency == 1) {
trafficTotal += Number(this.OtherPrice.InternationalAirTicket);
} else {
trafficTotal += Number(this.OtherPrice.InternationalAirTicket) * this.getCurrencyMoney(this.OtherPrice
.InternationalAirTicketCurrency);
}
}
//外币
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);
}
if (this.OtherPrice.InternationalAirTicketCurrency != 1) {
trafficTotal += Number(this.OtherPrice.InternationalAirTicket);
}
}
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);
}
if (this.OtherPrice.GuideMoneyCurrencyId == 1) {
zazhiTotal += Number(this.OtherPrice.GuideMoney);
} else {
zazhiTotal += Number(this.OtherPrice.GuideMoney) * this.getCurrencyMoney(this.OtherPrice
.GuideMoneyCurrencyId);
}
}
//外币
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);
}
if (this.OtherPrice.GuideMoneyCurrencyId != 1) {
zazhiTotal += Number(this.OtherPrice.GuideMoney);
}
}
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);
}
//回佣
if (type == 8) {
xiaoJi += Number(item.RebatePrice) * Number(currencyRate);
}
//杂费
if (type == 9) {
xiaoJi += Number(item.OtherPrice) * 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;
},
//获取主成本价
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.InternationalAirTicket) * this.getCurrencyMoney(this.OtherPrice
.InternationalAirTicketCurrency) +
this.getConvertMoney(this.OtherPrice.DriverGuideMoney) * this.getCurrencyMoney(this.OtherPrice
.DriverGuideMoneyCurrencyId) +
this.getConvertMoney(this.OtherPrice.GuideMoney) * this.getCurrencyMoney(
this.OtherPrice.GuideMoneyCurrencyId
) +
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
) - this.getConvertMoney(this.OtherPrice.TipComplement) - this.getConvertMoney(this.OtherPrice
.GuideComplement);
//KBMoney[团负费用减法]
// this.getConvertMoney(this.OtherPrice.AirTicketMoeny) +
return totalMoney;
},
//获取主成本价
getCostJpyTotalMoney() {
let totalMoney =
this.getConvertMoney(this.OtherPrice.InlandAirTicketMoney) +
this.getConvertMoney(this.OtherPrice.InlandShipTicketMoney) +
this.getConvertMoney(this.OtherPrice.InlandTrainTicketMoney) +
this.getConvertMoney(this.OtherPrice.InternationalAirTicket) +
this.getConvertMoney(this.OtherPrice.DriverGuideMoney) +
this.getConvertMoney(this.OtherPrice.GuideMoney) +
this.getConvertMoney(this.OtherPrice.LeaderTripMoney) +
this.getConvertMoney(this.OtherPrice.OfficeCommissionMoney) +
this.getConvertMoney(this.OtherPrice.SafeMoney) +
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.getConvertMoney(this.OtherPrice.TipComplement) -
this.getConvertMoney(this.OtherPrice.GuideComplement);
//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, //过路费
HotelList: [], //酒店下拉
HotelId: null, //酒店ID
HotelName: "", //酒店名称
RebatePrice: 0, //回佣
OtherPrice: 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));
var jpyTrip = Number(that.getLocalJpyTotalMoney(x.PeopleNumber));
//其他价格
var otherPrice = Number(that.getCostTotalMoney());
var jpyotherPrice = Number(that.getCostJpyTotalMoney());
x.TotalMoney = (trip + otherPrice +
Number(that.getConvertMoney(x.SubtotalMoney))
).toFixed(0);
x.JPYTotalMoney = (jpyTrip + jpyotherPrice).toFixed(2);
});
},
//价格转换器
getConvertMoney(value) {
if (value === "" || value === undefined || value === null) {
value = 0.0;
}
return parseFloat(value);
},
//获取地接项目报价
getLocalTotalMoney(PeopleNumber) {
let totalMoney = 0.0;
var hotelPrice = Number(this.getDayXiaoJi(1, 2)); //酒店费用
var sencePrice = Number(this.getDayXiaoJi(3, 2)); //景点费用
var zaoPrice = Number(this.getDayXiaoJi(4, 2)); //早餐
var wuPrice = Number(this.getDayXiaoJi(5, 2)); //午餐
var wanPrice = Number(this.getDayXiaoJi(6, 2)); //晚餐
var otherPrice = Number(this.getDayXiaoJi(9, 2)); //其它费用
var busFee = Number(this.getDayXiaoJi(2, 2)) + Number(this.getDayXiaoJi(7, 2)); //车费
totalMoney = busFee + hotelPrice + sencePrice + zaoPrice + wuPrice + wanPrice + otherPrice;
return totalMoney.toFixed(0);
},
//获取地接项目报价
getLocalJpyTotalMoney(PeopleNumber) {
let totalMoney = 0.0;
var busFee = Number(this.getDayXiaoJi(2, 1)) + Number(this.getDayXiaoJi(7, 1));
var hotelPrice = Number(this.getDayXiaoJi(1, 1)); //酒店费用
var sencePrice = Number(this.getDayXiaoJi(3, 1)); //景点费用
var zaoPrice = Number(this.getDayXiaoJi(4, 1)); //早餐
var wuPrice = Number(this.getDayXiaoJi(5, 1)); //午餐
var wanPrice = Number(this.getDayXiaoJi(6, 1)); //晚餐
var otherPrice = Number(this.getDayXiaoJi(9, 1)); //其它费用
totalMoney = busFee + hotelPrice + sencePrice + zaoPrice + wuPrice + wanPrice + otherPrice;
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();
}
},
mounted() {
this.IsDefault = this.queryMsg.IsDefault
this.canEdit = this.queryMsg.canEdit
this.getSubtotalMoney();
this.getAllCurrency();
this.getCompanyList();
this.getTeamList();
},
created() {},
watch: {
postConfig: {
handler: function (val, oldVal) {
this.getLineTeamList(this.postConfig.LineId);
this.IsDefault = this.queryMsg.IsDefault
this.canEdit = this.queryMsg.canEdit
},
deep: true
},
CostNumberList: {
handler: function (val, oldVal) {
this.IsDefault = this.queryMsg.IsDefault
this.canEdit = this.queryMsg.canEdit
this.getchange()
},
deep: true
},
dayCostPrice: {
handler(val, oldVal) {
// 初始化酒店
setTimeout(() => {
if (this.dayCostPrice && this.dayCostPrice.length > 0) {
let arrList = function (list) {
list.forEach(x => {
x.HotelList = []
})
}
arrList(this.dayCostPrice)
for (let i = 0; i < this.dayCostPrice.length; i++) {
if (this.dayCostPrice[i].HotelName != '') {
this.initHotel(this.dayCostPrice[i].HotelName, this.dayCostPrice[i], i)
}
}
}
}, 100)
},
deep: true,
}
},
};
</script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment