Commit 82b53ddc authored by 黄奎's avatar 黄奎

报价单和国内线酒店修改

parent cb92bf27
......@@ -169,11 +169,12 @@
<template v-for="(item,index) in dataList">
<template v-for="(subItem,subIndex) in item.HotelOrderList">
<tr v-for="(childItem,childIndex) in subItem.OrderDetailsList" :key="`h_`+index+subIndex+childIndex">
<td v-if="childIndex==0&&subIndex==0" :rowspan="6*item.HotelOrderList.length">
<td v-if="childIndex==0&&subIndex==0"
:rowspan="subItem.OrderDetailsList.length*item.HotelOrderList.length">
{{item.UseTimeStr}}
</td>
<!-- 酒店名称 -->
<td v-if="childIndex==0" :rowspan="6">
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length">
<table class="hotelTable">
<tr>
<td colspan="2">
......@@ -223,21 +224,21 @@
</span>
</td>
<!-- 机位总数/(Y/E/F) -->
<td v-if="childIndex==0" :rowspan="6">
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length">
<p class="link" @click="goUrlT('RegistrationList',subItem.TCID,'报名清单')">
{{flightTotal}}/{{subItem.HouseStatistics.RealityYSeatNum}}/{{subItem.HouseStatistics.RealityESeatNum}}/{{subItem.HouseStatistics.RealityFSeatNum}}
</p>
</td>
<!-- 占床/不占床 -->
<td v-if="childIndex==0" :rowspan="6">
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length">
<p class="link" @click="goUrlT('passengerHouse',subItem.TCID,'房间分配')">
{{subItem.RealityHouseGuestNum}}/{{subItem.HouseStatistics.NoNeedBed}}</p>
</td>
<!-- 实际用房数 -->
<td v-if="childIndex==0" :rowspan="6">
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length">
{{subItem.RealityHouseTypeCount}}
</td>
<td v-if="childIndex==0" :rowspan="6">
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length">
<table class="hotelTable">
<tr>
<td width="70" style="text-align:center;" colspan="2">
......@@ -301,8 +302,8 @@
</td>
<!-- 房间类型 -->
<td>
{{subItem.HouseStatistics.HouseTypeList[childIndex].HouseTypeNameExt}}
<template v-if="childIndex==4">
{{getHouseTypeName(subItem,childItem).HouseTypeNameExt}}
<!-- <template v-if="childIndex==4">
<template v-if="subItem.DriverGuideIsRebate==1">
<br /><span style="color:green">{{$t('hotel.hotel_commission')}}</span>
</template>
......@@ -312,7 +313,7 @@
</template>
<template v-if="childIndex==5">
<br /><span style="color:red;">{{$t('ground.bufanyong')}}</span>
</template>
</template> -->
</td>
<!-- 房间数 -->
<td>
......@@ -367,7 +368,7 @@
{{childItem.UnitPrice*(childItem.BookNum-childItem.HotelDiscount)}}
</td>
<!-- 返佣类型 -->
<td style="white-space:nowrap;" v-if="childIndex==0" :rowspan="6">
<td style="white-space:nowrap;" v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length">
<template v-if="subItem.RebateType==1">
<span style="color:green">{{$t('ground.hanshui')}}</span>
</template>
......@@ -415,11 +416,11 @@
</template>
</td>
<!-- 金额总计 -->
<td v-if="childIndex==0" :rowspan="6" style="white-space:nowrap;">
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length" style="white-space:nowrap;">
{{subItem.TotalPrice}}
</td>
<!-- 付款方式 -->
<td v-if="childIndex==0" :rowspan="6">
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length">
<table class="hotelTable">
<tr>
<td width="70" style="text-align:right;">{{$t('hotel.hotel_Currency')}}:</td>
......@@ -512,7 +513,7 @@
<el-option :label="$t('ground.lingduidydf')" :value='10'></el-option>
<el-option :label="$t('ground.shuaka')" :value='11'></el-option>
<el-option :label="$t('objFill.zhuanzhang')" :value='14'></el-option>
<el-option :label="$t('ground.enterpriseAlipay')"  :value='15'></el-option>
<el-option :label="$t('ground.enterpriseAlipay')" :value='15'></el-option>
</el-select>
</td>
</tr>
......@@ -591,7 +592,7 @@
</table>
</td>
<!-- 操作 -->
<td v-if="childIndex==0" :rowspan="6">
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length">
<template v-if="subItem.OPState==1">
<span class="Hotel_red">{{$t('salesModule.OPZD')}}</span>
</template>
......@@ -771,6 +772,18 @@
setHotelStock,
},
methods: {
getHouseTypeName(subItem, childItem) {
var obj = {};
if (subItem && subItem.HouseStatistics && subItem.HouseStatistics.HouseTypeList && subItem.HouseStatistics
.HouseTypeList.length > 0) {
subItem.HouseStatistics.HouseTypeList.forEach(hItem => {
if (hItem.HouseType == childItem.HouseType) {
obj = hItem;
}
})
}
return obj;
},
//订房状态切换
changeState(subItem) {
if (subItem.DMCState == 1) {
......
......@@ -28,6 +28,16 @@
padding: 5px;
}
.roomReservationsDetailsTalbe {
table-layout: fixed;
}
.roomReservationsDetailsTalbe thead tr th {
position: sticky;
top: 0;
z-index: 10;
}
</style>
<template>
......@@ -35,10 +45,10 @@
<div class="query-box" style="border-bottom: none;">
<ul>
<li>
<input v-if="IsOperation!=1" type="button" class="fr normalBtn mb30" :value="$t('pub.saveBtn')"
@click="saveList(1)" />
<input v-if="IsOperation==1&& EditBtn" type="button" class="fr normalBtn mb30" :value="$t('pub.saveBtn')"
@click="saveList(1)" />
<el-button type="primary" class="fr normalBtn mb30" v-if="IsOperation!=1" :loading="saveLoading"
@click="saveList(1)">{{$t('pub.saveBtn')}}</el-button>
<el-button type="primary" class="fr normalBtn mb30" v-if="IsOperation==1&& EditBtn " :loading="saveLoading"
@click="saveList(1)">{{$t('pub.saveBtn')}}</el-button>
<span v-if="IsOperation==1" style="color:red;font-size:14px;">{{$t('ground.yizhidanbng')}}</span>
</li>
</ul>
......@@ -46,557 +56,310 @@
</div>
<div style="width: 100%; overflow-x: auto;padding-bottom: 10px; " :style="{height: boxHeight + 'px'}"
class="ownScrollbarStyle" ref="ownScrollbarStyle">
<table border="0" cellspacing="1" cellpadding="0" class="roomReservationsDetailsTalbe">
<thead>
<tr>
<th class="fz14" style="border:none;">
{{$t('visa.v_teaminfo')}}&nbsp;&nbsp;{{$t('leader.leader_Leader')}}:{{LeaderName}}
&nbsp;&nbsp;{{$t('leader.leader_Guide')}}: {{GuideName}} </th>
</tr>
</thead>
</table>
<table border="0" cellspacing="1" cellpadding="0" class="roomReservationsDetailsTalbe" v-loading="loading">
<tr>
<th class="fz14" colspan="5">
{{$t('visa.v_teaminfo')}}:{{TCNUM}}&nbsp;&nbsp;{{$t('leader.leader_Leader')}}:{{LeaderName}}
&nbsp;&nbsp;{{$t('leader.leader_Guide')}}:{{GuideName}}</th>
<th class="fz14" colspan="17">
<el-tooltip class="item" effect="dark" :content="$t('objFill.piliangscsps')" placement="top-start"
style="float:left;margin-left:20px;display:none;">
<el-popover placement="bottom" popper-class="piliangPop" width="400" trigger="click"
v-model="isShowPiliangPop">
<table class="dmcSetTable roomReserSet" border="0" cellspacing="0" cellpadding="0">
<tr>
<th>{{$t('sm.Date')}}</th>
<th>{{$t('hotel.table_hotelname')}}</th>
</tr>
<template v-for="(lItem,lIndex) in list">
<tr v-for="(subItem,subIndex) in lItem.HotelOrderList" :key="subIndex+lIndex">
<td style="width:100px;">
{{lItem.UseTimeStr}}
<thead>
<tr>
<th width="110">{{$t('hotel.table_CheckInDate')}}</th>
<th width="250">{{$t('hotel.hotel_name')}}</th>
<th width="120">{{$t('ground.jiweizongshu')}}<br />(Y/E/F)</th>
<th width="80">{{$t('ground.zhanchuang')}}/<br />{{$t('ground.bzhanchuang')}}</th>
<th width="80">{{$t('ground.shiji')}}<br />{{$t('ground.yongfangshu')}}</th>
<th width="170">{{$t('ground.xiugaijiudiangys')}}</th>
<th width="100">{{$t('ground.fangjianleixing')}}</th>
<th width="80">{{$t('ground.fangjian')}}<br />{{$t("ground.yudingshu")}}</th>
<th width="80">单价/间</th>
<th width="80">减免间数</th>
<th width="80">{{$t('ground.jinexiaoji')}}</th>
<th width="100">{{$t('ground.jinezongji')}}</th>
<th width="270">{{$t('ground.fukuanbzdth')}}</th>
<th width="80">{{$t('system.table_operation')}}</th>
</tr>
</thead>
<tbody>
<template v-for="(item,index) in dataList">
<template v-for="(subItem,subIndex) in item.HotelOrderList">
<tr v-for="(childItem,childIndex) in subItem.OrderDetailsList" :key="`h_`+index+subIndex+childIndex">
<td v-if="childIndex==0&&subIndex==0"
:rowspan="subItem.OrderDetailsList.length*item.HotelOrderList.length">
{{item.UseTimeStr}}
</td>
<!-- 酒店名称 -->
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length">
<table class="hotelTable">
<tr>
<td colspan="2">
<p class="link" style="word-break: normal;text-align:left;"
:class="{'Hotel_red':subItem.HotelChangeState==3}"
@click="goUrlR('HotelManagement',subItem.HotelId,'酒店管理')">{{subItem.HotelName}}</p>
</td>
</tr>
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<tr>
<td width="40">
{{$t('hotel.table_tel')}}
</td>
<td style="width:280px;">
<el-checkbox v-model="subItem.IsChecked" @change="MoreUpdate(subItem)">{{subItem.NewHotelName}}
</el-checkbox>
<td style="text-align:left">
{{subItem.Tel}}
</td>
</tr>
</template>
<tr>
<td colspan="2" style="text-align:center">
<el-upload :http-request="uploadFileBtnS" :multiple="false" :show-file-list="false" action=''>
<el-button size="small" type="danger" style="margin-top:10px;">
{{$t('objFill.xuanzhewj')}}</el-button>
</el-upload>
</td>
</tr>
</table>
<el-button slot="reference" style="background:#E95252; border-color:#E95252" type="primary">
{{$t('objFill.piliangscsps')}}
</el-button>
</el-popover>
</el-tooltip>
<span style="margin-top:6px;display:inline-block;">{{$t('ground.dijiecaozuoxinxi')}}</span>
<el-tooltip class="item" effect="dark" :content="$t('ground.plxgai')" placement="top-start"
style="float:left;margin-left:20px;">
<el-popover placement="bottom" popper-class="piliangPop" width="400" trigger="click"
v-model="IsShowMoreUpdate">
<table class="dmcSetTable roomReserSet roomResetTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<th>{{$t('hotel.hotel_roomType')}}</th>
<th> {{$t('objFill.fangjianshul')}}</th>
<th>{{$t('admin.admin_personNumber')}}</th>
</tr>
<tr v-for="(subItem,subIndex) in HotelHouseTypeList" :key="subIndex">
<td style="width:100px;">
<el-checkbox v-model="subItem.IsChecked"> {{subItem.Name}}
</el-checkbox>
</td>
<td style="width:150px;">
<el-input class='w135 tcenter' maxlength="2" @keyup.native="checkInteger(subItem,'HouseNum')"
v-model='subItem.HouseNum'></el-input>
</td>
<td style="width:150px;">
<el-input class='w135 tcenter' maxlength="2" @keyup.native="checkInteger(subItem,'BookNum')"
v-model='subItem.BookNum'>
</el-input>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:right">
<input type="button" class="normalBtn" :value="$t('pub.saveBtn')" @click="BatchHotelOrder()">
</td>
</tr>
</table>
<el-button slot="reference" style="background:#E95252; border-color:#E95252;" type="primary"
v-if="EditBtn" @click="IsShowMoreUpdate=true">
{{$t('objFill.piliangxiugjd')}}
</el-button>
</el-popover>
</el-tooltip>
</th>
</tr>
<tr>
<th width="120">{{$t('hotel.table_CheckInDate')}}</th>
<th width="180">{{$t('hotel.hotel_name')}}</th>
<th width="120">{{$t('ground.jiweizongshu')}}<br />(Y/E/F)</th>
<th width="80">{{$t('ground.zhanchuang')}}/<br />{{$t('ground.bzhanchuang')}}</th>
<th width="80">{{$t('ground.shiji')}}<br />{{$t('ground.yongfangshu')}}</th>
<th width="170">{{$t('ground.xiugaijiudiangys')}}</th>
<th width="100">{{$t('ground.fangjianleixing')}}</th>
<th width="80">{{$t('ground.fangjian')}}<br />{{$t("ground.yudingshu")}}</th>
<th width="80">{{$t('ground.yudingrenshu')}}</th>
<th width="80">{{$t('ground.danjiameiren')}}</th>
<th width="80">{{$t('ground.mianjianrenshu')}}</th>
<th width="80">{{$t('ground.jinexiaoji')}}</th>
<th width="80">{{$t('ground.fanyongleixing')}}</th>
<th width="80">{{$t('hotel.hotel_commission')}}</th>
<th width="80">{{$t('ground.fanyongyjin')}}</th>
<th width="80">{{$t('ground.rutangshui')}}</th>
<th width="80">{{$t('ground.chengshishui')}}</th>
<th width="80">{{$t('ground.tingchefei')}}</th>
<th width="100">{{$t('ground.jinezongji')}}</th>
<th width="250">{{$t('ground.fukuanbzdth')}}</th>
<th width="80">{{$t('system.table_operation')}}</th>
</tr>
<template v-for="(item,index) in list">
<template v-for="(subItem,subIndex) in item.HotelOrderList">
<tr v-for="(childItem,childIndex) in subItem.OrderDetailsList" :key="childIndex">
<td>
{{item.UseTimeStr}}
</td>
<!-- 酒店名称 -->
<td>
<table class="hotelTable">
<tr>
<td colspan="2">
<p class="link" style="word-break: normal;text-align:left;"
:class="{'Hotel_red':subItem.HotelChangeState==3}"
@click="goUrlR('HotelManagement',subItem.HotelId,'酒店管理')">{{subItem.HotelName}}</p>
</td>
</tr>
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<tr>
<td width="40">
{{$t('hotel.table_tel')}}
</td>
<td style="text-align:left">
{{subItem.Tel}}
</td>
</tr>
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<tr>
<td width="40">
{{$t('hotel.table_address')}}
</td>
<td style="text-align:left">
{{subItem.Address}}
</td>
</tr>
</table>
<br />
<span style="color:red;font-weight:bold" >{{$t('objFill.v101.hote.baojiajine')}}{{subItem.OfferUnitPrice}}/{{$t('hotel.hotel_people')}}</span>
</td>
<!-- 机位总数/(Y/E/F) -->
<td>
<p class="link" @click="goUrlT('RegistrationList',subItem.TCID,'报名清单')">
{{flightTotal}}/{{subItem.HouseStatistics.RealityYSeatNum}}/{{subItem.HouseStatistics.RealityESeatNum}}/{{subItem.HouseStatistics.RealityFSeatNum}}
</p>
</td>
<!-- 占床/不占床 -->
<td>
<p class="link" @click="goUrlT('passengerHouse',subItem.TCID,'房间分配')">
{{subItem.RealityHouseGuestNum}}/{{subItem.HouseStatistics.NoNeedBed}}</p>
</td>
<!-- 实际用房数 -->
<td>
{{subItem.RealityHouseTypeCount}}
</td>
<td>
<table class="hotelTable">
<tr>
<td width="70" style="text-align:center;" colspan="2">
<span style="color:green">{{subItem.NewHotelName}}</span>
<el-popover placement="right" width="540" trigger="click" v-model="subItem.isShowPop">
<comCheckHotel :ref="'comCheckHotel'+index+subIndex+''" v-on:childHotel="childHotelList"
:UseDate="item.UseTimeStr" :Country="ChooseCountry">
</comCheckHotel>
<el-button size="small" type="danger" :data-index="'comCheckHotel'+index+subIndex+''"
slot="reference" style="cursor:pointer;"
@click="getChildHotel(index,subIndex),subItem.isShowPop=true">
{{$t('sm.jiudianxuanz')}}
</el-button>
</el-popover>
</td>
</tr>
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<tr>
<td width="70" style="text-align:right;">
{{$t('hotel.hotel_Supplier')}}
</td>
<td>
<el-select class='w120 sel' v-model='subItem.SupplierId' @change="getSupplierShoupei(subItem)"
filterable :placeholder="$t('ground.qingxuanzegys')">
<el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option>
<el-option v-for="(SupplierItem,Supplierindex) in SupplierList" :key="Supplierindex"
:label="SupplierItem.Name" :value="SupplierItem.ID">
</el-option>
</el-select>
</td>
</tr>
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<tr>
<td colspan="2">
<span v-if="subItem.IsHaveShouPeiFee==0" style="color:red;">{{$t('ground.wshoupeifei')}}</span>
<span v-if="subItem.IsHaveShouPeiFee==1&&isShoufeifei==true"
style="color:red;">{{$t('ground.shoupeifei')}}:{{subItem.ShouPeiMoney}}</span>
</td>
</tr>
<tr>
<td colspan="2">
<p style="padding-top: 5px;">
<template v-if="subItem.ContractUrl!=''">
<span style="color:green">{{$t('objFill.yiscspfs')}}</span>
&nbsp;&nbsp;<a v-if="subItem.ContractUrl" target="_blank" style="color:blue"
:href="subItem.ContractUrl">{{$t('fnc.chakan')}}</a>
</template>
</p>
<el-upload :http-request="uploadFileBtnS" :multiple="false" :show-file-list="false" action=''>
<el-button size="small" type="danger" @click='getItem(index, subIndex)'>
{{!subItem.ContractUrl ? $t('objFill.shangcsps'): $t('objFill.chongxcsps')}}</el-button>
</el-upload>
</td>
</tr>
</table>
</td>
<!-- 房间类型 -->
<td>
<div v-if="childItem.HouseType === 2">
<template
v-if="subItem.HouseStatistics.HouseTypeList&&subItem.HouseStatistics.HouseTypeList.length>1">
{{subItem.HouseStatistics.HouseTypeList[1].HouseTypeNameExt}}
</template>
<template v-if="childIndex==4">
<template v-if="subItem.DriverGuideIsRebate==1">
<br /><span style="color:green">{{$t('hotel.hotel_commission')}}</span>
</template>
<template v-else-if="subItem.DriverGuideIsRebate==0">
<br /><span style="color:red;">{{$t('ground.bufanyong')}}</span>
</template>
</template>
<template v-if="childIndex==5">
<br /><span style="color:red;">{{$t('ground.bufanyong')}}</span>
</template></div>
</td>
<!-- 房间数 -->
<td>
<div v-if="childItem.HouseType === 2">
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<tr>
<td width="40">
{{$t('hotel.table_address')}}
</td>
<td style="text-align:left">
{{subItem.Address}}
</td>
</tr>
</table>
<span style="font-weight:bold;font-size:14px;">{{$t('objFill.baojiajiudian')}}<font
style="color:red;">
{{subItem.OfferHotelName}}(
{{subItem.OfferUnitPrice}}<template v-if="subItem.IsHotelChange">
<el-tooltip :content="subItem.HotelChangeRemark">
<font style="color:blue;">
<template v-if="subItem.HotelChangeValue>0">
+{{subItem.HotelChangeValue}}
</template>
<template v-else>
{{subItem.HotelChangeValue}}
</template>
</font>
</el-tooltip>
</template>/{{$t('hotel.hotel_people')}})</font>
</span>
</td>
<!-- 机位总数/(Y/E/F) -->
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length">
<p class="link" @click="goUrlT('RegistrationList',subItem.TCID,'报名清单')">
{{flightTotal}}/{{subItem.HouseStatistics.RealityYSeatNum}}/{{subItem.HouseStatistics.RealityESeatNum}}/{{subItem.HouseStatistics.RealityFSeatNum}}
</p>
</td>
<!-- 占床/不占床 -->
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length">
<p class="link" @click="goUrlT('passengerHouse',subItem.TCID,'房间分配')">
{{subItem.RealityHouseGuestNum}}/{{subItem.HouseStatistics.NoNeedBed}}</p>
</td>
<!-- 实际用房数 -->
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length">
{{subItem.RealityHouseTypeCount}}
</td>
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length">
<table class="hotelTable">
<tr>
<td style="text-align:center;" colspan="2">
<span style="color:green">{{subItem.NewHotelName}}</span>
<el-popover placement="right" width="540" trigger="click"
:ref="'elPopoverHotel'+index+subIndex+''">
<comCheckHotel :ref="'comCheckHotel'+index+subIndex+''" v-on:childHotel="childHotelList"
:UseDate="item.UseTimeStr" :Country="ChooseCountry">
</comCheckHotel>
<el-button size="small" type="danger" :data-index="'comCheckHotel'+index+subIndex+''"
slot="reference" style="cursor:pointer;"
@click="subItem.isShowPop=true,getChildHotel(index,subIndex)">
{{$t('sm.jiudianxuanz')}}
</el-button>
</el-popover>
</td>
</tr>
</table>
</td>
<!-- 房间类型 -->
<td>
{{getHouseTypeName(subItem,childItem).HouseTypeNameExt}}
</td>
<!-- 房间数 -->
<td>
<el-input class='w40 tcenter' maxlength="2" @keyup.native="checkPrice(childItem,'HouseTypeCount')"
v-model='childItem.HouseTypeCount' :disabled="IsEditHotelPeople==0?true:false"></el-input>
</div>
</td>
<td>
<div v-if="childItem.HouseType === 2">
<el-input class='w40 tcenter' maxlength="2" @keyup.native="checkInteger(childItem,'BookNum')"
@input="calculationPrice(subItem)" v-model='childItem.BookNum'
:disabled="IsEditHotelPeople==0?true:false">
</el-input>
</div>
</td>
<!-- 单价/每人 -->
<td>
<div v-if="childItem.HouseType === 2">
</td>
<!-- 单价/每间 -->
<td>
<template v-if="childIndex==1">
<template v-if="EditBtn">
<el-input @keyup.native="checkInteger(childItem,'UnitPrice')" class='w60 tcenter'
@input="calculationPrice(subItem)" v-model='childItem.UnitPrice'></el-input>
<template v-if="(subItem.LineId==14||subItem.LineId==118)">
<template v-if="subItem.IsHaveHotelStock==1||childItem.UnitPrice>0">
<el-input @keyup.native="checkInteger(childItem,'UnitPrice')" class='w60 tcenter'
@input="calcPrice()" v-model='childItem.UnitPrice'></el-input>
</template>
<template v-else>
<el-popover placement="right" width="540" trigger="click"
:ref="'elPopoverEditHotelPrice'+index+subIndex+''">
<set-hotel-stock :ref="'comSetHotelPrice'+index+subIndex+''" :UseDate="item.UseTimeStr"
:HotelId="subItem.NewHotelId" :HotelName="subItem.NewHotelName" @success="GetNewHotelPrice">
</set-hotel-stock>
<el-button size="small" type="danger" :data-index="'comSetHotelPrice'+index+subIndex+''"
slot="reference" @click="subItem.isShowHStock=true,getHotelPrice(index,subIndex)">
添加报价
</el-button>
</el-popover>
</template>
</template>
<template v-else>
<el-input @keyup.native="checkInteger(childItem,'UnitPrice')" class='w60 tcenter'
@input="calculationPrice(subItem)" v-model='childItem.UnitPrice'
:disabled="(IsEditHotel==0||childItem.IsHaveStockPrice==1)?true:false">
</el-input>
@input="calcPrice()" v-model='childItem.UnitPrice'></el-input>
</template>
</template>
<template v-else>
<el-input @keyup.native="checkInteger(childItem,'UnitPrice')" class='w60 tcenter'
@input="calculationPrice(subItem)" v-model='childItem.UnitPrice'
:disabled="IsEditHotel==0?true:false">
@input="calcPrice()" v-model='childItem.UnitPrice' :disabled="IsEditHotel==0?true:false">
</el-input>
</template></div>
</td>
<!-- 免减人数 -->
<td>
<div v-if="childItem.HouseType === 2">
</template>
</td>
<!-- 免减人数 -->
<td>
<el-input class='w40' maxlength="2" @keyup.native="checkInteger(childItem,'HotelDiscount')"
v-model='childItem.HotelDiscount' @input="calculationPrice(subItem)">
v-model='childItem.HotelDiscount' @input="calcPrice()">
</el-input>
</div>
</td>
<!-- 金额小计 -->
<td style="white-space:nowrap;">
<div v-if="childItem.HouseType === 2">
<el-input class='w40' @keyup.native="checkPrice(childItem,'TotalPrice')"
v-model='childItem.TotalPrice' @input="changeTotalPrice(subItem)">
</el-input>
</div>
</td>
<!-- 返佣类型 -->
<td style="white-space:nowrap;" v-if="childIndex==0">
<template v-if="subItem.RebateType==1">
<span style="color:green">{{$t('ground.hanshui')}}</span>
</template>
<template v-else>
<span style="color:red"> {{$t('ground.bhanshui')}}</span>
</template>
</td>
<!--返佣-->
<td>
<div v-if="childItem.HouseType === 2">
<template v-if="childIndex<4">
<el-input class='w40' maxlength="2" @keyup.native="checkInteger(childItem,'RebateRatio')"
v-model='childItem.RebateRatio'
@input="SetRebateRatio(subItem,childItem.RebateRatio),calculationPrice(subItem)"
:disabled="IsEditHotel==0?true:false"></el-input> %
</template>
<template v-if="childIndex==5">
<el-input class='w40' maxlength="2" @keyup.native="checkInteger(childItem,'RebateRatio')"
v-model='childItem.RebateRatio' @input="calculationPrice(subItem)" :disabled="true"></el-input> %
</td>
<!-- 金额小计 -->
<td style="white-space:nowrap;">
{{childItem.UnitPrice*(childItem.HouseTypeCount-childItem.HotelDiscount)}}
</td>
<!-- 金额总计 -->
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length" style="white-space:nowrap;">
{{subItem.TotalPrice}}
</td>
<!-- 付款方式 -->
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length">
<table class="hotelTable">
<tr>
<td width="70" style="text-align:right;">{{$t('hotel.hotel_Currency')}}:</td>
<td>
<el-select v-model="subItem.CurrencyId" :placeholder="$t('pub.pleaseSel')" class='w135 sel'
@change="calcPrice()">
<el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option>
<el-option v-for="(item,index) in allCurrencyList" :key="index" :label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</td>
</tr>
<!-- <tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<tr>
<td width="70" style="text-align:right;">{{$t('ground.dfzhuangtai')}}:</td>
<td>
<el-select class='w135 sel' v-model='subItem.DMCState' :placeholder="$t('pub.pleaseSel')"
:disabled="IsEditHotel==0?true:false" @change="changeState(subItem)">
<el-option :label="$t('pub.pleaseSel')" :value='0'></el-option>
<el-option :label="$t('pub.sureBtn')" :value='1'></el-option>
<el-option :label="$t('visa.v_zanding')" :value='2'></el-option>
</el-select>
</td>
</tr> -->
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<tr>
<td width="70" style="text-align:right;color:red">{{$t('fnc.fkfangshi')}}:</td>
<td>
<el-select class='w135 sel' v-model='subItem.PayStyle' :placeholder="$t('pub.pleaseSel')"
:disabled="IsEditHotel==0?true:false" @change="PayChange(subItem)">
<el-option :label="$t('pub.pleaseSel')" :value='0'></el-option>
<el-option :label="$t('ground.xianfu')" :value='1'></el-option>
<el-option :label="$t('ground.qiandan')" :value='2'></el-option>
<el-option :label="$t('ground.shiwudk')" :value='3'></el-option>
<el-option :label="$t('ground.yufu')" :value='4'></el-option>
<el-option :label="$t('ground.yufukuandk')" :value='5'></el-option>
<el-option :label="$t('ground.yuejie')" :value='9'></el-option>
<el-option :label="$t('ground.lingduidydf')" :value='10'></el-option>
<el-option :label="$t('ground.shuaka')" :value='11'></el-option>
<el-option :label="$t('objFill.zhuanzhang')" :value='14'></el-option>
<el-option :label="$t('ground.enterpriseAlipay')" :value='15'></el-option>
</el-select>
</td>
</tr>
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<tr v-if="LineId==90">
<td width="70" style="text-align:right;">{{$t('pub.pubRemark')}}:</td>
<td>
<el-input type='textarea' class='w135' v-model='subItem.Remarks'></el-input>
</td>
</tr>
</table>
</td>
<!-- 操作 -->
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length">
<template v-if="subItem.OPState==1">
<span class="Hotel_red">{{$t('salesModule.OPZD')}}</span>
</template>
<template v-if="childIndex==4 && subItem.DriverGuideIsRebate==0">
<el-input class='w40' maxlength="2" @keyup.native="checkInteger(childItem,'RebateRatio')"
v-model='childItem.RebateRatio' @input="calculationPrice(subItem)" :disabled="true"></el-input> %
</template></div>
</td>
<!--返佣金额-->
<td>
<div v-if="childItem.HouseType === 2">
<!--含税-->
<template v-if="subItem.RebateType==1">
<!--税别-->
<template v-if="subItem.TaxType==2">
{{ (childItem.UnitPrice * (childItem.BookNum - childItem.HotelDiscount) * (1 + XiaoFeiTaxFee )*( childItem.RebateRatio / 100)).toFixed(2)}}
</template>
<template v-else>
{{(childItem.UnitPrice * (childItem.BookNum - childItem.HotelDiscount) * (1)*( childItem.RebateRatio / 100)).toFixed(2) }}
</template>
<template v-if="IsOperation!=1">
<el-tooltip class="item" effect="dark" :content="$t('pub.addBtn')" v-if="subItem.OPState!=1"
placement="top-start">
<el-button @click='AddHotel(item,subIndex)' icon="iconfont icon-tianjia" type="primary">
</el-button>
</el-tooltip>
<el-tooltip v-if="item.HotelOrderList.length>1 && subItem.OPState!=1" class="item" effect="dark"
:content="$t('system.table_delete')" placement="top-start">
<el-button type="primary" icon="iconfont icon-shanchu" @click='DeleteHotel(item,subIndex)'>
</el-button>
</el-tooltip>
</template>
<!--不含税-->
<template v-else>
<!--税别-->
<template v-if="subItem.TaxType==2">
{{(childItem.UnitPrice * (childItem.BookNum - childItem.HotelDiscount) * (1 + XiaoFeiTaxFee)*( childItem.RebateRatio / 100)).toFixed(2)}}
</template>
<template v-else>
{{(childItem.UnitPrice * (childItem.BookNum - childItem.HotelDiscount) * (1)*( childItem.RebateRatio / 100)).toFixed(2)}}
</template>
</template></div>
</td>
<!-- 入汤税 -->
<td style="white-space:nowrap;">
{{subItem.InTangTax}}
</td>
<!-- 城市税 -->
<td style="white-space:nowrap;">
{{subItem.CityTax}}
</td>
<!-- 停车费 -->
<td style="white-space:nowrap;">
{{subItem.ParkFee}}
</td>
<!-- 金额总计 -->
<td style="white-space:nowrap;">
{{subItem.TotalPrice}}
<template v-if="subItem.NewTotalPrice">
<br /><span style="color:red;">{{subItem.NewTotalPrice}}</span>
</template>
</td>
<!-- 付款方式 -->
<td>
<table class="hotelTable">
<tr>
<td width="70" style="text-align:right;">{{$t('hotel.hotel_Currency')}}:</td>
<td>
<el-select v-model="subItem.CurrencyId" :placeholder="$t('pub.pleaseSel')" class='w135 sel'
@change="calculationPrice(subItem)">
<el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option>
<el-option v-for="(item,index) in allCurrencyList" :key="index" :label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</td>
</tr>
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<tr>
<td width="70" style="text-align:right;">{{$t('ground.dfzhuangtai')}}:</td>
<td>
<el-select class='w135 sel' v-model='subItem.DMCState' :placeholder="$t('pub.pleaseSel')"
:disabled="IsEditHotel==0?true:false">
<el-option :label="$t('pub.pleaseSel')" :value='0'></el-option>
<el-option :label="$t('pub.sureBtn')" :value='1'></el-option>
<el-option :label="$t('visa.v_zanding')" :value='2'></el-option>
</el-select>
</td>
</tr>
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<tr>
<td width="70" style="text-align:right;">{{$t('salesModule.SureTime')}}:</td>
<td>
<el-date-picker v-model='subItem.SureTime' class='w135' value-format="yyyy-MM-dd" type="date"
:disabled="IsEditHotel==0?true:false"></el-date-picker>
</td>
</tr>
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<!-- <tr>
<td width="70" style="text-align:right;">{{$t('ground.shurushubie')}}:</td>
<td>
<el-select class='w135 sel' v-model='subItem.TaxType' :placeholder="$t('pub.pleaseSel')"
@change="calculationPrice(subItem)" :disabled="IsEditHotel==0?true:false">
<el-option :label="$t('pub.pleaseSel')" :value='0'></el-option>
<el-option :label="$t('pub.SR')" :value='1'></el-option>
<el-option :label="$t('pub.SB')" :value='2'></el-option>
</el-select>
</td>
</tr> -->
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<tr>
<td width="70" style="text-align:right;color:red">{{$t('fnc.fkfangshi')}}:</td>
<td>
<el-select class='w135 sel' v-model='subItem.PayStyle' :placeholder="$t('pub.pleaseSel')"
:disabled="IsEditHotel==0?true:false" @change="PayChange(subItem)">
<el-option :label="$t('pub.pleaseSel')" :value='0'></el-option>
<el-option :label="$t('ground.xianfu')" :value='1'></el-option>
<el-option :label="$t('ground.qiandan')" :value='2'></el-option>
<el-option :label="$t('ground.shiwudk')" :value='3'></el-option>
<el-option :label="$t('ground.yufu')" :value='4'></el-option>
<el-option :label="$t('ground.yufukuandk')" :value='5'></el-option>
<el-option :label="$t('ground.yuejie')" :value='9'></el-option>
<el-option :label="$t('ground.lingduidydf')" :value='10'></el-option>
<el-option :label="$t('ground.shuaka')" :value='11'></el-option>
</el-select>
</td>
</tr>
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<!-- <tr>
<td width="70" style="text-align:right;">{{$t('ground.sidaoffkfs')}}:</td>
<td>
<el-select class='w135 sel' v-model='subItem.DMCPayType' :placeholder="$t('pub.pleaseSel')"
:disabled="IsEditHotel==0?true:false" @change="calculationPrice(subItem)">
<el-option :label="$t('pub.pleaseSel')" :value='0'></el-option>
<el-option :label="$t('ground.yuejie')" :value='9'></el-option>
<el-option :label="$t('ground.xianfu')" :value='1'></el-option>
<el-option :label="$t('ground.qiandan')" :value='2'></el-option>
<el-option :label="$t('ground.shiwudk')" :value='3'></el-option>
<el-option :label="$t('ground.yufu')" :value='4'></el-option>
<el-option :label="$t('ground.yufukuandk')" :value='5'></el-option>
<el-option :label="$t('ground.gongsihetzf')" :value='6'></el-option>
<el-option :label="$t('ground.lingduidydf')" :value='10'></el-option>
<el-option :label="$t('ground.shuaka')" :value='11'></el-option>
</el-select>
</td>
</tr> -->
<tr v-show="subItem.PayStyle==6">
<td colspan="2" style="height:5px;"></td>
</tr>
<tr v-show="subItem.PayStyle==6">
<td width="70" style="text-align:right;">{{$t('ground.fukuanth')}}:</td>
<td>
<el-input class='w135' v-model='subItem.PayTypeTCNUM' :disabled="IsEditHotel==0?true:false">
</el-input>
</td>
</tr>
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<tr>
<td width="70" style="text-align:right;">{{$t('ground.dingtuanhao')}}:</td>
<td>
<el-input class='w135' v-model='subItem.ReserveNo'></el-input>
</td>
</tr>
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<tr style="display:none;">
<td width="70" style="text-align:right;">{{$t('ground.tixinggys')}}:</td>
<td>
<el-select class='w135 sel' v-model='subItem.SupplierHotelStatus'
:placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.pleaseSel')" :value='0'></el-option>
<el-option :label="$t('ground.yibantx')" :value='1'></el-option>
<el-option :label="$t('ground.zhongyaotx')" :value='2'></el-option>
</el-select>
</td>
</tr>
<tr>
<td colspan="2" style="height:5px;">
</td>
</tr>
<tr>
<td width="70" style="text-align:right;">{{$t('ground.duigysbz')}}:</td>
<td>
<el-input type='textarea' class='w135' v-model='subItem.Remarks'></el-input>
</td>
</tr>
<tr v-if="subItem.SupplierToDmcRemarks" style="display:none;">
<td width="70" style="text-align:right;">{{$t('ground.gongysddjbz')}}:</td>
<td>
<span
:class="{'rq_disImNote':subItem.SupplierToDmcHotelStatus==1&&DateMinus(subItem.SupplierToDmcHotelStatusTime)<=5,'rq_importNote':subItem.SupplierToDmcHotelStatus==2&&DateMinus(subItem.SupplierToDmcHotelStatusTime)<=5}">
{{subItem.SupplierToDmcRemarks}}
</span>
</td>
</tr>
<tr v-if="EditBtn">
<td width="70" style="text-align:right;">{{$t('ground.shifoutbgxfj')}}:</td>
<td>
<el-select class='w135 sel' v-model='subItem.IsSyncHotelCount'>
<el-option :label="$t('ground.tongbugx')" :value='0'></el-option>
<el-option :label="$t('ground.bugengxin')" :value='1'></el-option>
</el-select>
</td>
</tr>
</table>
</td>
<!-- 操作 -->
<td>
<template v-if="subItem.OPState==1">
<span class="Hotel_red">{{$t('salesModule.OPZD')}}</span>
</template>
<template v-if="IsOperation!=1">
<el-tooltip class="item" effect="dark" :content="$t('pub.saveBtn')" placement="top-start">
<el-button icon="iconfont icon-baocun1" @click="SaveSingle(subItem)" type="primary"></el-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" :content="$t('pub.addBtn')" v-if="subItem.OPState!=1"
placement="top-start">
<el-button @click='AddHotel(item,subIndex)' icon="iconfont icon-tianjia" type="primary"></el-button>
</el-tooltip>
<el-tooltip v-if="item.HotelOrderList.length>1 && subItem.OPState!=1" class="item" effect="dark"
:content="$t('system.table_delete')" placement="top-start">
<el-button type="primary" icon="iconfont icon-shanchu" @click='DeleteHotel(item,subIndex)'>
</el-button>
</el-tooltip>
</template>
<el-popover width="200" trigger="click" popper-class="Bus_HotelPop">
<commonHotelLog :ref="'comHotelLog'+index+subIndex+''"> </commonHotelLog>
<div slot="reference" class="w80" style="cursor:pointer;text-decoration:underline;"
@click="GetHotelLog(subItem,index,subIndex)">{{$t('fnc.rizhi')}}</div>
</el-popover>
</td>
</tr>
<el-popover width="200" trigger="click" popper-class="Bus_HotelPop">
<commonHotelLog :ref="'comHotelLog'+index+subIndex+''"> </commonHotelLog>
<div slot="reference" class="w80" style="cursor:pointer;text-decoration:underline;"
@click="GetHotelLog(subItem,index,subIndex)">{{$t('fnc.rizhi')}}</div>
</el-popover>
</td>
</tr>
</template>
</template>
</template>
</tbody>
<tfoot>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td colspan="2">
合计:
</td>
<td>
<font style="color:red;font-weight:bold;">
{{allTotalPrice}}
</font>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
</tfoot>
</table>
<div class="noDataNotice" v-if="list.length<1">
<div class="noDataNotice" v-if="dataList.length<1">
<i class="iconfont icon-kong"></i>
<p>{{$t('active.ld_noData')}}</p>
</div>
......@@ -607,7 +370,7 @@
import moment from 'moment'
import comCheckHotel from "../commonPage/comCheckHotel.vue";
import commonHotelLog from "../commonPage/commonHotelLog.vue";
import commonPHlInfo from "../commonPage/commonPriceHotelInfo.vue";
import setHotelStock from "../commonPage/setHotelStock.vue";
export default {
data() {
return {
......@@ -615,7 +378,7 @@
LineId: 0,
EditBtn: false, //房餐景点修改权限
defaultSelectValue: 0,
list: [],
dataList: [],
roomList: [],
TCNUM: '',
flightTotal: 0,
......@@ -693,15 +456,38 @@
BookNum: 0
},
],
ChooseCountry: "651"
ChooseCountry: "651",
currentUserInfo: {},
saveLoading: false, //保存,防止重复提交
allTotalPrice: 0,
}
},
components: {
comCheckHotel,
commonHotelLog,
commonPHInfo: commonPHlInfo
setHotelStock,
},
methods: {
getHouseTypeName(subItem, childItem) {
var obj = {};
if (subItem && subItem.HouseStatistics && subItem.HouseStatistics.HouseTypeList && subItem.HouseStatistics
.HouseTypeList.length > 0) {
subItem.HouseStatistics.HouseTypeList.forEach(hItem => {
if (hItem.HouseType == childItem.HouseType) {
obj = hItem;
}
})
}
return obj;
},
//订房状态切换
changeState(subItem) {
if (subItem.DMCState == 1) {
subItem.SureTime = this.$commonUtils.getCurrentDate();
} else {
subItem.SureTime = "";
}
},
//批量修改房间数和房间人
BatchHotelOrder() {
var checkArray = [];
......@@ -756,12 +542,7 @@
//获取子组件返回的数据
childHotelList(ckedObj) {
//使用时间
var oldData = JSON.parse(JSON.stringify(this.list[this.findex].HotelOrderList[this.childIndex]));
this.list.forEach(x => {
x.HotelOrderList.forEach(y => {
y.isShowPop = false;
})
});
var oldData = JSON.parse(JSON.stringify(this.dataList[this.findex].HotelOrderList[this.childIndex]));
var useTime = oldData.CheckInDateStr;
var hotelId = ckedObj.ID;
var TCID = oldData.TCID;
......@@ -772,54 +553,83 @@
}, res => {
if (res.data.resultCode == 1) {
var objData = res.data.data;
var tipStr = "";
//库存不够
if (objData.isOverStock == 0) {
if (objData.list && objData.list.length > 0) {
var str = "";
objData.list.forEach((cItem, cIndex) => {
str += (cIndex == 0 ? "" : ",") + cItem.TCNUM + this.$t('objFill.shiyongle') + cItem.LastUseNum + this.$t(
'hotel.hotel_room');
tipStr += (cIndex == 0 ? "" : ",") + cItem.TCNUM + this.$t('objFill.shiyongle') + cItem
.LastUseNum + this.$t(
'hotel.hotel_room');
});
if (str != "") {
this.Info(str);
}
}
}
//库存充足或没有酒店库存的情况
else if (objData.isOverStock == 1 || objData.isOverStock == -1) {
this.list[this.findex].HotelOrderList[this.childIndex].Address = ckedObj.Address;
this.list[this.findex].HotelOrderList[this.childIndex].NewHotelName = ckedObj.Name;
this.list[this.findex].HotelOrderList[this.childIndex].Tel = ckedObj.Tel;
this.list[this.findex].HotelOrderList[this.childIndex].NewHotelId = ckedObj.ID;
this.list[this.findex].HotelOrderList[this.childIndex].PayStyle = ckedObj.PayStyle;
this.list[this.findex].HotelOrderList[this.childIndex].PayStyleExt = ckedObj.PayStyle;
if (tipStr != "") {
this.Info(tipStr);
}
var tempOrderObj = this.dataList[this.findex].HotelOrderList[this.childIndex];
if (tempOrderObj) {
tempOrderObj.Address = ckedObj.Address;
tempOrderObj.NewHotelName = ckedObj.Name;
tempOrderObj.Tel = ckedObj.Tel;
tempOrderObj.NewHotelId = ckedObj.ID;
tempOrderObj.PayStyle = ckedObj.PayStyle;
tempOrderObj.PayStyleExt = ckedObj.PayStyle;
tempOrderObj.IsHaveHotelStock = 0;
if (ckedObj && ckedObj.Inventory > 0) {
tempOrderObj.IsHaveHotelStock = 1;
}
//判断供应商编号是否大于0
if (ckedObj.Supplier > 0) {
this.list[this.findex].HotelOrderList[this.childIndex].SupplierId = ckedObj.Supplier;
tempOrderObj.SupplierId = ckedObj.Supplier;
}
this.list[this.findex].HotelOrderList[this.childIndex].OrderDetailsList.forEach((subItem,
tempOrderObj.OrderDetailsList.forEach((subItem,
subIndex) => {
//判断是否有库存价格
if (subIndex == 1 && ckedObj.CostPrice > 0 && ckedObj.Inventory > 0) {
subItem.IsHaveStockPrice = 1;
} else {
subItem.IsHaveStockPrice = 0;
if (subItem.HouseType == 2) {
subItem.UnitPrice = ckedObj.CostPrice;
}
subItem.UnitPrice = ckedObj.CostPrice;
subItem.RebateRatio = ckedObj.RebateRatio;
});
this.calculationPrice(this.list[this.findex].HotelOrderList[this.childIndex]);
}
} else {
this.Error(this.$t('ground.qingqiucanscw'));
this.calcPrice();
let str = `elPopoverHotel${this.findex}${this.childIndex}`
//关闭组件
this.$refs[str][0].doClose();
}
}, err => {})
},
//酒店报价
GetNewHotelPrice(newHPObj) {
if (newHPObj) {
let str = `elPopoverEditHotelPrice${this.findex}${this.childIndex}`
//关闭组件
this.$refs[str][0].doClose();
var tempObj = this.dataList[this.findex].HotelOrderList[this.childIndex];
if (this.dataList[this.findex].HotelOrderList[this.childIndex]) {
if (tempObj && tempObj.IsHaveHotelStock) {
tempObj.IsHaveHotelStock = 1;
}
if (tempObj && tempObj.OrderDetailsList && tempObj.OrderDetailsList.length > 0) {
tempObj.OrderDetailsList.forEach((subItem,
subIndex) => {
if (subItem.HouseType == 2) {
subItem.UnitPrice = newHPObj.CostPrice;
}
});
}
}
}
},
getHotelPrice(index, subIndex) {
this.findex = index;
this.childIndex = subIndex;
},
//点击酒店选择
getChildHotel(index, subIndex) {
this.findex = index;
this.childIndex = subIndex;
let str = `comCheckHotel${index}${subIndex}`
//调用comCheckHotel组件的 getCheckHotel()方法
this.$refs[str][0].getCheckHotel();
},
//输入返佣自动前面4个房型赋值
......@@ -887,7 +697,7 @@
var fileUrl = this.domainManager().ViittoFileUrl + x.data.FilePath;
//批量上传
if (this.IsMoreUpdate == 1) {
this.list.forEach((sItem, sIndex) => {
this.dataList.forEach((sItem, sIndex) => {
sItem.HotelOrderList.forEach((subItem, subIndex) => {
if (subItem.IsChecked) {
subItem.ContractUrl = fileUrl;
......@@ -898,7 +708,7 @@
});
this.isShowPiliangPop = false;
} else {
this.list[this.checkedIndex].HotelOrderList[this.checkedsubIndex].ContractUrl = fileUrl;
this.dataList[this.checkedIndex].HotelOrderList[this.checkedsubIndex].ContractUrl = fileUrl;
}
this.IsMoreUpdate = 0;
this.$forceUpdate()
......@@ -956,6 +766,7 @@
}
}
this.apipost('dmcstatistics_get_GetHotelStaticsDetail_V2', msg, res => {
console.log("dmcstatistics_get_GetHotelStaticsDetail_V2", res.data);
if (res.data.resultCode == 1) {
this.IsOperation = res.data.data.IsOperation;
if (this.IsEditHotel == 0) {
......@@ -972,15 +783,14 @@
if (list != null && list.length > 0) {
list.forEach((item, sIndex) => {
item.HotelOrderList.forEach(subItem => {
//默认不更新
if (this.LineId != 14) {
subItem.IsSyncHotelCount = 1;
}
subItem.hotelList.push({
Name: subItem.NewHotelName,
ID: subItem.NewHotelId
});
//默认成日元
if (subItem.CurrencyId == 0) {
subItem.CurrencyId = 3;
}
subItem.OrderDetailsList.forEach((x, index1) => {
x.HouseTypeCount = x.HouseTypeCount.toString();
x.UnitPrice = x.UnitPrice.toString();
......@@ -989,25 +799,21 @@
if (subItem.ReserveNo == '' || subItem.ReserveNo == null) {
subItem.ReserveNo = this.$route.query.NewCombinationNum;
}
subItem.OrderDetailsList = subItem.OrderDetailsList.filter(item => item.HouseType === 2)
const item = subItem.OrderDetailsList.find(item => item.HouseType === 2) || {
TotalPrice: 0
}
subItem.TotalPrice = item.TotalPrice.toFixed(2);
// 将金额总计的值赋值给金额小计
subItem.OrderDetailsList[0].TotalPrice = Number(subItem.TotalPrice).toFixed(2);
subItem.isShowPop = false;
subItem.isShowHStock = false;
subItem.ckedHotelName = "";
//遍历手配
this.SupplierList.forEach(x => {
if (x.ID == subItem.SupplierId) {
subItem.IsHaveShouPeiFee = x.IsHaveShouPeiFee;
subItem.ShouPeiMoney = x.ShouPeiMoney;
subItem.SupplierType = x.Type;
}
})
})
});
this.list = list;
this.dataList = list;
this.calcPrice();
this.$forceUpdate();
}
} else {
......@@ -1016,90 +822,43 @@
this.loading = false
}, err => {})
},
calculationPrice(obj) {
//计算价格
calcPrice() {
let totalPrice = 0;
//获取当前选中的对象
let currentObj = {};
if (obj.CurrencyId != 0) {
currentObj = this.allCurrencyList.find(item => {
return item.ID === obj.CurrencyId; //筛选出匹配数据
});
}
//日元
let jpaObj = this.allCurrencyList.find(item => {
return item.ID === 3; //筛选出匹配数据
});
obj.OrderDetailsList.forEach((item, index) => {
var tempPrice = 0;
var coefficient = 1;
//税别
if (obj.TaxType == 2) {
coefficient = 1 + this.XiaoFeiTaxFee;
}
if (index == 4 && obj.DMCPayType == 9) {
tempPrice = 0;
} else {
tempPrice = item.UnitPrice * (item.BookNum - item.HotelDiscount) * (coefficient - item.RebateRatio /
100);
}
totalPrice += tempPrice;
})
totalPrice += obj.ParkFee + obj.CityTax + obj.InTangTax;
obj.TotalPrice = totalPrice;
if (this.LineId == 14) {
if (currentObj && currentObj.ID > 0) {
//人民币
if (currentObj.ID == 1) {
obj.NewTotalPrice = currentObj.Name + ":" + (totalPrice * jpaObj.PayRate).toFixed(2);
}
//日元
else if (currentObj.ID == 3) {
obj.NewTotalPrice = "";
} else {
if (currentObj.CurrentRate > 1) {
obj.NewTotalPrice = currentObj.Name + ":" + ((totalPrice * jpaObj.PayRate) / currentObj.CurrentRate)
.toFixed(2);
} else {
obj.NewTotalPrice = currentObj.Name + ":" + ((totalPrice * jpaObj.PayRate) * currentObj.CurrentRate)
.toFixed(2);
}
if (this.dataList && this.dataList.length > 0) {
this.dataList.forEach(rItem => {
if (rItem.HotelOrderList && rItem.HotelOrderList.length > 0) {
rItem.HotelOrderList.forEach(oItem => {
var tempPrice = 0;
oItem.OrderDetailsList.forEach((dItem, index) => {
tempPrice += dItem.UnitPrice * (dItem.HouseTypeCount - dItem.HotelDiscount);
})
oItem.TotalPrice = tempPrice.toFixed(2);
totalPrice += tempPrice;
});
}
} else {
obj.NewTotalPrice = "";
}
});
}
// 将金额总计的值赋值给金额小计
obj.OrderDetailsList[0].TotalPrice = Number(obj.TotalPrice).toFixed(2);
this.allTotalPrice = totalPrice.toFixed(2);
this.$forceUpdate();
},
changeTotalPrice(obj) {
obj.TotalPrice = Number(obj.OrderDetailsList[0].TotalPrice).toFixed(2);
},
saveList(type) {
if (type == 0) {
this.list.forEach(item => {
this.dataList.forEach(item => {
item.HotelOrderList.forEach(subItem => {
subItem.HotelOrderState = 0;
});
})
}
if (type == 1) {
this.list.forEach(item => {
this.dataList.forEach(item => {
item.HotelOrderList.forEach(subItem => {
subItem.HotelOrderState = 1;
});
})
}
var flag = true;
var isUpload = true;
var str = "";
this.list.forEach(item => {
this.dataList.forEach(item => {
item.HotelOrderList.forEach(subItem => {
if (isUpload && subItem.PayStyle == 1 && subItem.ContractUrl == '' && !this.EditBtn) {
str += `${this.$t('objFill.qingshangchuan')}${item.UseTimeStr}${this.$t('objFill.deshoups')}`
isUpload = false;
}
subItem.OrderDetailsList.forEach((y, sIndex) => {
if (y.HouseTypeCount) {
y.HouseTypeCount = parseFloat(y.HouseTypeCount);
......@@ -1122,16 +881,19 @@
if (!this.$commonUtils.isNumber(y.RebateRatio)) {
y.RebateRatio = 0;
}
y.BookNum = y.HouseTypeCount;
})
if (!this.$commonUtils.isNumber(subItem.TotalPrice)) {
subItem.TotalPrice = 0;
}
});
})
this.saveLoading = true;
this.loading = true;
this.apipost('dmcstatistics_get_SetHotelOrder', this.list, res => {
this.apipost('dmcstatistics_get_SetHotelOrder', this.dataList, res => {
this.loading = false;
this.saveLoading = false;
if (res.data.resultCode == 1) {
this.getList();
this.Success(res.data.message);
......@@ -1140,66 +902,12 @@
}
}, err => {})
},
//单条保存
SaveSingle(item) {
item.HotelOrderState = 1;
var flag = true;
var isUpload = true;
var str = "";
this.list.forEach(item => {
item.HotelOrderList.forEach(subItem => {
if (isUpload && subItem.PayStyle == 1 && subItem.ContractUrl == '' && !this.EditBtn) {
str += `${this.$t('objFill.qingshangchuan')}${item.UseTimeStr}${this.$t('objFill.deshoups')}`
isUpload = false;
}
subItem.OrderDetailsList.forEach(y => {
if (y.HouseTypeCount) {
y.HouseTypeCount = parseFloat(y.HouseTypeCount);
} else {
y.HouseTypeCount = 0;
}
if (y.UnitPrice) {
y.UnitPrice = parseInt(y.UnitPrice);
} else {
y.UnitPrice = 0;
}
if (y.HotelDiscount) {
y.HotelDiscount = parseInt(y.HotelDiscount);
} else {
y.HotelDiscount = 0;
}
if (y.BookNum == "") {
y.BookNum = 0;
}
if (!this.$commonUtils.isNumber(y.RebateRatio)) {
y.RebateRatio = 0;
}
})
if (!this.$commonUtils.isNumber(subItem.TotalPrice)) {
subItem.TotalPrice = 0;
}
});
})
let mag = {
TotalList: this.list,
SingleItem: item
};
this.apipost('dmcstatistics_get_SetHotelOrder', this.list, res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.getList();
} else {
this.Error(res.data.message);
}
}, err => {})
},
// 获取供应商
initSupplier() {
this.apipost("supplier_post_GetAllList", {
this.apipost("travel_get_GetAllHotelList", {
Type: 1,
Country: 651
Country: 651,
LineId: this.$route.query.LineId
}, res => {
if (res.data.resultCode === 1) {
this.SupplierList = res.data.data;
......@@ -1212,6 +920,7 @@
if (x.ID == SubItem.SupplierId) {
SubItem.IsHaveShouPeiFee = x.IsHaveShouPeiFee;
SubItem.ShouPeiMoney = x.ShouPeiMoney;
SubItem.SupplierType = x.Type;
}
})
},
......@@ -1223,6 +932,7 @@
}
}, err => {});
},
//判断是否有房、餐、车价格修改权限
GetAuth() {
var actionCode = this.$AuthCode.EditRoomDinnerTIcket;
this.CheckUserAuth(actionCode, res => {
......@@ -1235,6 +945,7 @@
},
},
mounted() {
this.currentUserInfo = this.getLocalStorage();
if (this.$route.query.LineId) {
this.LineId = this.$route.query.LineId;
}
......@@ -1323,9 +1034,6 @@
color: red;
}
.roomReservationsDetailsTalbe .hotelTable {
border: none;
}
......
......@@ -277,7 +277,7 @@
:disabled="checkedDisabled2"></el-checkbox>
</th>
<th width="150">{{$t('hotel.table_hotelname')}}</th>
<th width="150">{{$t('objFill.shoupeishu')}}</th>
<th width="150">{{$t('salesModule.ChangeHotel')}}</th>
<th width="70">{{$t('op.TakeBed')}}<br />{{$t('op.NoneedBed')}}</th>
<th width="70">{{$t('objFill.shiji')}}<br />{{$t('objFill.yongfangshu')}}</th>
......@@ -287,9 +287,9 @@
<th width="60">{{$t('advmanager.v_free')}}<br />{{$t('admin.admin_personNumber')}}</th>
<th width="60">{{$t('objFill.v101.LeaderManagement.danjiaren')}}</th>
<th width="60">{{$t('fnc.jine')}}<br />{{$t('ground.xiaoji')}}</th>
<th width="60">{{$t('hotel.hotel_commission')}})<br />{{$t('advmanager.v_type')}}</th>
<th width="60">{{$t('hotel.hotel_commission')}})</th>
<th width="60">{{$t('hotel.hotel_commission')}})<br />{{$t('fnc.jine')}}</th>
<th width="60">{{$t('hotel.hotel_commission')}}<br />{{$t('advmanager.v_type')}}</th>
<th width="60">{{$t('hotel.hotel_commission')}}</th>
<th width="60">{{$t('hotel.hotel_commission')}}<br />{{$t('fnc.jine')}}</th>
<th width="60">{{$t('pub.SR')}}<br />{{$t('pub.SB')}}</th>
<th width="60">{{$t('fnc.a_zongjine')}}</th>
<th width="60">{{$t('fnc.fukuan')}}<br />{{$t('objFill.fangshi')}}</th>
......@@ -339,10 +339,7 @@
<span style="color:red"
v-if="subItem.StandardRoomPrice">{{$t('objFill.shijijine')}}:{{subItem.StandardRoomPrice}}/{{$t('objFill.v101.LeaderManagement.renbiaoj')}}</span>
</td>
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length" style="text-align:left; ">
<a target="_blank" v-if="subItem.ContractUrl!==''" :href="subItem.ContractUrl"
style="text-decoration: underline; cursor: pointer;color:red">{{$t('objFill.chakanshoupeishu')}}</a>
</td>
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length" style="text-align:left;color:red; ">
{{subItem.HotelName!=subItem.NewHotelName?""+subItem.NewHotelName:""}}
</td>
......@@ -569,7 +566,7 @@
<th width="180">{{$t('restaurant.res_resName')}}</th>
<th width="100">{{$t('objFill.leibie')}}</th>
<th width="100">{{$t('objFill.zongrenshu')}}</th>
<th width="">{{$t('objFill.yongchanrenshu')}}</th>
<th width="">{{$t('objFill.yongchanrenshu')}}/桌数</th>
<th width="80">{{$t('objFill.mianfeirenshu')}}</th>
<th width="">{{$t('fnc.danjia')}}</th>
<th width="">{{$t('objFill.jingexj')}}</th>
......@@ -583,11 +580,12 @@
<template v-for='(item,index) in list.DiningList'>
<template v-for="(subItem,subIndex) in item.DiningSummaryList">
<tr v-for="(childItem,childIndex) in subItem.DiningPriceList">
<td v-if="childIndex==0&&subIndex==0" :rowspan="3*item.DiningSummaryList.length">{{item.UseTimeStr}}</td>
<td v-if="childIndex==0" :rowspan="3">
<td v-if="childIndex==0&&subIndex==0"
:rowspan="subItem.DiningPriceList.length*item.DiningSummaryList.length">{{item.UseTimeStr}}</td>
<td v-if="childIndex==0" :rowspan="subItem.DiningPriceList.length">
<el-checkbox v-model="subItem.checked" @change="getChecked(3)"></el-checkbox>
</td>
<td v-if="childIndex==0" :rowspan="3">
<td v-if="childIndex==0" :rowspan="subItem.DiningPriceList.length">
<template v-if="subItem.DiningName!=subItem.NewDiningName">
{{subItem.NewDiningName}}
</template>
......@@ -612,14 +610,24 @@
</font></span>
</template>
</td>
<td v-if="childIndex==0" :rowspan="3">
<td v-if="childIndex==0" :rowspan="subItem.DiningPriceList.length">
{{subItem.UseDinnerTypeStr}}
</td>
<td v-if="childIndex==0" :rowspan="3">
<td v-if="childIndex==0" :rowspan="subItem.DiningPriceList.length">
{{subItem.UseAccount}}
</td>
<td>
{{peopleStrToWord(childItem.PeopleType)}}:{{childItem.UsePeopleNum}}
<template v-if="subItem.LineId==90">
<template v-if="subItem.BookStyle==0">
人数:{{childItem.UsePeopleNum}}
</template>
<template v-else>
桌数:{{childItem.UsePeopleNum}}
</template>
</template>
<template v-else>
{{peopleStrToWord(childItem.PeopleType)}}:{{childItem.UsePeopleNum}}
</template>
</td>
<td>
{{childItem.Discount}}
......@@ -636,10 +644,10 @@
<td>
{{childItem.DiscountPrice}}%
</td>
<td v-if="childIndex==0" :rowspan="3">
<td v-if="childIndex==0" :rowspan="subItem.DiningPriceList.length">
{{diningTotalPrice(subItem, subItem.DiningPriceList)}}
</td>
<td v-if="childIndex==0" :rowspan="3">
<td v-if="childIndex==0" :rowspan="subItem.DiningPriceList.length">
<span v-if="subItem.PayStyle === 1">{{$t('objFill.xianfu')}}</span>
<span v-else-if="subItem.PayStyle === 2">{{$t('objFill.qiandan')}}</span>
<span v-else-if="subItem.PayStyle === 3">{{$t('objFill.yufu')}}</span>
......@@ -651,7 +659,7 @@
<br />
<span v-show="subItem.PayStyle==6">{{$t('objFill.v101.hote.fukuanth')}}:{{subItem.PayTypeTCNUM}}</span>
</td>
<td v-if="childIndex==0" :rowspan="3">
<td v-if="childIndex==0" :rowspan="subItem.DiningPriceList.length">
<template v-if="IsShowRMB">
<span>{{$t('fnc.a_rminbi')}}</span>
</template>
......@@ -659,10 +667,10 @@
{{GetCurrency(subItem.CurrencyId)}}
</template>
</td>
<td v-if="childIndex==0" :rowspan="3">
<td v-if="childIndex==0" :rowspan="subItem.DiningPriceList.length">
{{subItem.Remarks}}
</td>
<td v-if="childIndex==0" :rowspan="3">
<td v-if="childIndex==0" :rowspan="subItem.DiningPriceList.length">
<template v-for="(x, i) in subItem.FrList">
<el-tooltip class="item" effect="dark" :content="getTips(x)" placement="bottom">
<span class="cursor-pointer radius5 mr mb px5" style="margin: 3px;white-space: nowrap;" :class="{'bgD9F3FF':x.Status==1,'bgFAEAED':x.Status==2,'bjFFF3E0':x.Status==3,
......@@ -705,7 +713,6 @@
<p class="teamRevenueExpenditureTitle">
{{$t('scen.sc_piao')}}
<span class="fr" style="margin-top: -8px;">
<!-- <input type="button" class="normalBtn" :value="$t('objFill.xingzengfk')" @click="goUrl(3,2)" /> -->
</span>
</p>
<table class="leaderReimbursementTable" border="0" cellspacing="1" cellpadding="0">
......@@ -724,22 +731,22 @@
<th width="80">{{$t('objFill.mianfeirenshu')}}</th>
<th width="">{{$t('fnc.danjia')}}</th>
<th width="">{{$t('objFill.jingexj')}}</th>
<th width="">{{$t('hotel.hotel_commission')}})</th>
<th width="">{{$t('hotel.hotel_commission')}}</th>
<th width="">{{$t('fnc.a_zongjine')}}</th>
<th width="">{{$t('hotel.hotel_payType')}})</th>
<th width="">{{$t('hotel.hotel_payType')}}</th>
<th width="100">{{$t('pub.pubRemark')}}</th>
<th width="110">{{$t('objFill.costdocument')}}</th>
</tr>
<template v-for='(item,index) in list.ScenicList'>
<template v-for="(subItem,subIndex) in item.ScenicStatisticsList">
<tr v-for="(childItem,childIndex) in subItem.TicketPriceList">
<td v-if="childIndex==0&&subIndex==0" :rowspan="3*item.ScenicStatisticsList.length">{{item.UseTimeStr}}
<td v-if="childIndex==0&&subIndex==0"
:rowspan="subItem.TicketPriceList.length*item.ScenicStatisticsList.length">{{item.UseTimeStr}}
</td>
<td v-if="childIndex==0" :rowspan="3">
<td v-if="childIndex==0" :rowspan="subItem.TicketPriceList.length">
<el-checkbox v-model="subItem.checked" @change="getChecked(4)"></el-checkbox>
</td>
<td v-if="childIndex==0" :rowspan="3">
<td v-if="childIndex==0" :rowspan="subItem.TicketPriceList.length">
{{subItem.ScenicName}}
<template v-if="subItem.ScenicOfferPrice&& subItem.ScenicOfferPrice>0">
<br />
......@@ -761,11 +768,21 @@
</span>
</template>
</td>
<td v-if="childIndex==0" :rowspan="3">
<td v-if="childIndex==0" :rowspan="subItem.TicketPriceList.length">
{{subItem.UseAccount}}
</td>
<td>
{{peopleStrToWord(childItem.PeopleType)}}:{{childItem.UsePeopleNum}}
<template v-if="subItem.LineId==90">
<template v-if="childItem.PeopleType==1">
<font>门票人数:{{childItem.UsePeopleNum}}</font>
</template>
<template v-if="childItem.PeopleType==2">
<font>小交通人数:{{childItem.UsePeopleNum}}</font>
</template>
</template>
<template v-else>
{{peopleStrToWord(childItem.PeopleType)}}:{{childItem.UsePeopleNum}}
</template>
</td>
<td>
{{childItem.Discount}}
......@@ -782,10 +799,10 @@
<td>
{{childItem.DiscountPrice}}%
</td>
<td v-if="childIndex==0" :rowspan="3">
<td v-if="childIndex==0" :rowspan="subItem.TicketPriceList.length">
{{scenicTotalPrice(subItem, subItem.TicketPriceList)}}
</td>
<td v-if="childIndex==0" :rowspan="3">
<td v-if="childIndex==0" :rowspan="subItem.TicketPriceList.length">
<span v-if="subItem.PayStyle === 1">{{$t('objFill.xianfu')}}</span>
<span v-else-if="subItem.PayStyle === 2">{{$t('ground.gsjiesuan')}}</span>
<span v-else-if="subItem.PayStyle === 4">{{$t('objFill.yufu')}}</span>
......@@ -797,10 +814,10 @@
<br />
<span v-show="subItem.PayStyle==6">{{$t('objFill.v101.hote.fukuanth')}}:{{subItem.PayTypeTCNUM}}</span>
</td>
<td v-if="childIndex==0" :rowspan="3">
<td v-if="childIndex==0" :rowspan="subItem.TicketPriceList.length">
{{subItem.Remarks}}
</td>
<td v-if="childIndex==0" :rowspan="3">
<td v-if="childIndex==0" :rowspan="subItem.TicketPriceList.length">
<template v-for="(x, i) in subItem.FrList">
<el-tooltip class="item" effect="dark" :content="getTips(x)" placement="bottom">
<span class="cursor-pointer radius5 mr mb px5" style="margin: 3px;white-space: nowrap;" :class="{'bgD9F3FF':x.Status==1,'bgFAEAED':x.Status==2,'bjFFF3E0':x.Status==3,
......@@ -2522,6 +2539,7 @@
this.msg,
res => {
this.loading = false;
console.log("getList", res.data);
if (res.data.resultCode == 1) {
let data = res.data.data
let arrList = function (arr) {
......
......@@ -144,9 +144,9 @@
</td>
<td>
<template v-if="LineId==90">
<el-select v-model="subItem.BookStyle" :placeholder="$t('pub.pleaseSel')" class='w135 sel'>
<el-option :value="0" label="按人数预定"></el-option>
<el-option :value="1" label="按桌预定"></el-option>
<el-select v-model="subItem.BookStyle" :placeholder="$t('pub.pleaseSel')" class='sel' style="width:80px;">
<el-option :value="0" label="人数"></el-option>
<el-option :value="1" label="桌数"></el-option>
</el-select>
</template>
<template v-else>
......
......@@ -48,6 +48,12 @@
padding: 0 5px;
}
.offer_select-tag {
background-color: #409eff !important;
color: white !important;
border-color: #409eff !important;
}
</style>
<template>
......@@ -114,12 +120,16 @@
<td width="80" class="txtRightCost">{{$t('hotel.hotel_StarDate')}}</td>
<td colspan="5">
<template v-if="postConfig.OutDateTimeList&&postConfig.OutDateTimeList.length>0">
<el-tag v-for="(item,oIndex) in postConfig.OutDateTimeList" :key="oIndex" style="margin-right:5px;">
{{item}}
<el-tag v-for="(item,oIndex) in postConfig.OutDateTimeList" :key="oIndex"
style="margin-right:5px;cursor:pointer;" @click="switchOffer(item)"
:class="item==selectDate?'offer_select-tag': ''">
<el-tooltip class="item" effect="dark" content="点击切换日期" placement="top-start">
<font> {{item}}</font>
</el-tooltip>
</el-tag>
</template>
<template v-else>
<el-tag style="margin-right:5px;">
<el-tag style="margin-right:5px;" :class="postConfig.OutDateTime==selectDate?'offer_select-tag': ''">
{{postConfig.OutDateTime}}
</el-tag>
</template>
......@@ -612,6 +622,11 @@
{{teamPrice.SingleDMCPrice}}
</el-form-item>
</td>
<td colspan="2">
<el-form-item :label="$t('salesModule.DJNum')">
{{offerDataObj.DMCNum}}
</el-form-item>
</td>
<td colspan="2">
<el-form-item :label="$t('Operation.Op_childNobed')">
{{teamPrice.ChildNoNeedPrice}}
......@@ -627,7 +642,7 @@
{{teamPrice.SingleRoomPrice}}
</el-form-item>
</td>
<td colspan="4">
<td colspan="2">
<el-form-item :label="$t('objFill.dandijjg')">
{{teamPrice.SingleDMCTCPrice}}
</el-form-item>
......@@ -1020,14 +1035,6 @@
{{postConfig.TeamTypeName}}
</template>
</td>
<!-- <td colspan="4">
<el-form-item :label="$t('objFill.v101.gengctleix')">
<el-select class="multiple_input" v-model="postConfig.TeamType">
<el-option v-for='item in teamList' :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</td> -->
</tr>
<!--报价单审核-->
<tr v-if="IsEdit==2">
......@@ -1057,21 +1064,16 @@
import changeOffer from '@/components/commonPage/changeOffer'
export default {
//IsEdit(1-查看,2-审核,3-OP变更,4-变更审核)
props: ["OfferArray", "postConfig", "IsEdit"],
props: ["postConfig", "IsEdit"],
data() {
return {
tabsActive: 0,
orderList: [],
//审核信息
AduitMsg: {
},
AduitMsg: {}, //审核信息
OtherPrice: {},
dayCostPrice: [],
CostCurrencyList: [],
CostNumberList: [],
teamPrice: {},
teamList: [], //团队类型
offerDataObj: {},
//报价单变更参数
changMsg: {
isShowChangeOffer: false,
......@@ -1081,15 +1083,53 @@
checkObj: {}
},
dialogDiningTitle: "行程变更",
selectDate: "", //当前选择时间
}
},
watch: {
postConfig: {
handler: function (val, oldVal) {
if (val != oldVal) {
this.switchOffer();
}
},
deep: true
},
IsEdit: {
handler: function (val, oldVal) {
if (val != oldVal) {
this.switchOffer();
}
},
deep: true
}
},
components: {
changeOffer: changeOffer,
},
methods: {
//获取变更原因
getChangeRemark() {
switchOffer(dateStr) {
if (dateStr) {
this.selectDate = dateStr;
} else {
if (this.postConfig.OfferArray && this.postConfig.OfferArray.length > 0) {
this.selectDate = this.postConfig.OfferArray[0].OutDateTime;
}
}
var that = this;
if (this.postConfig.OfferArray && this.postConfig.OfferArray.length > 0) {
var selectOfferObj = this.postConfig.OfferArray.find((qitem) => {
return qitem.OutDateTime == that.selectDate
})
if (selectOfferObj) {
this.OtherPrice = selectOfferObj.otherPrice;
this.teamPrice = selectOfferObj.teamPrice;
this.CostNumberList = selectOfferObj.CostNumberList;
this.offerDataObj = selectOfferObj;
this.dayCostPrice = selectOfferObj.dayCostPriceList;
this.CostCurrencyList = selectOfferObj.CostCurrencyList;
}
}
},
//关闭弹窗
closeDialog() {
......@@ -1121,8 +1161,8 @@
},
GetDayStr(dayNum) {
var str = "";
if (this.postConfig.OutDateTime && this.postConfig.OutDateTime != '') {
var dateFormat = new Date(this.postConfig.OutDateTime);
if (this.selectDate && this.selectDate != '') {
var dateFormat = new Date(this.selectDate);
dateFormat = dateFormat.setDate(dateFormat.getDate() + dayNum);
dateFormat = new Date(dateFormat);
let y = dateFormat.getFullYear()
......@@ -1132,34 +1172,6 @@
}
return str;
},
getTeamList() {
//出团公司
this.apipost(
"travel_GetTeamTypeEnumList", {},
res => {
if (res.data.resultCode == 1) {
this.teamList = res.data.data;
}
},
err => {}
);
},
selectTag(index) {
this.tabsActive = index
this.changeTabs()
},
changeTabs() {
this.currentData = this.orderList[this.tabsActive]
if (!this.currentData) {
return
}
this.OtherPrice = this.currentData.otherPrice;
this.dayCostPrice = this.currentData.dayCostPriceList;
this.CostCurrencyList = this.currentData.CostCurrencyList;
this.CostNumberList = this.currentData.CostNumberList;
this.queryMsg = this.currentData.queryMsg;
this.teamPrice = this.currentData.teamPrice;
},
//下载文件
downloadFile(fileUrl, fileName) {
const link = document.createElement('a');
......@@ -1176,92 +1188,95 @@
//每天小计
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);
xiaoJi += Number(item.PassFee) * Number(currencyRate);
}
//景点
if (type == 3) {
if (item.ScenicList && item.ScenicList.length > 0) {
item.ScenicList.forEach(sItem => {
if (sItem.TicketName != '' || sItem.TicketId > 0) {
xiaoJi += Number(sItem.TicketCostPrice) * Number(currencyRate);
}
})
if (this.dayCostPrice && this.dayCostPrice.length > 0) {
this.dayCostPrice.forEach(item => {
var currencyRate = 1;
if (currencyType == 2) {
currencyRate = this.getCurrencyMoney(item.CurrencyId);
}
//xiaoJi += Number(item.ScenicCostPrice) * Number(currencyRate);
}
//早餐
if (type == 4) {
xiaoJi += Number(item.BreakfastCostPrice) * Number(currencyRate);
xiaoJi += Number(item.LunchCostPrice) * Number(currencyRate);
xiaoJi += Number(item.DinnerCostPrice) * Number(currencyRate);
}
//回佣
if (type == 8) {
xiaoJi += Number(item.RebatePrice) * Number(currencyRate);
}
// 其它费用(保险、司导杂费等)
if (type == 9) {
xiaoJi += Number(item.OtherPrice) * Number(currencyRate);
}
});
//酒店
if (type == 1) {
xiaoJi += Number(item.HotelCostPrice) * Number(currencyRate);
}
//车
if (type == 2) {
xiaoJi += Number(item.BusCostPrice) * Number(currencyRate);
xiaoJi += Number(item.PassFee) * Number(currencyRate);
}
//景点
if (type == 3) {
if (item.ScenicList && item.ScenicList.length > 0) {
item.ScenicList.forEach(sItem => {
if (sItem.TicketName != '' || sItem.TicketId > 0) {
xiaoJi += Number(sItem.TicketCostPrice) * Number(currencyRate);
}
})
}
}
//早餐
if (type == 4) {
xiaoJi += Number(item.BreakfastCostPrice) * Number(currencyRate);
xiaoJi += Number(item.LunchCostPrice) * Number(currencyRate);
xiaoJi += Number(item.DinnerCostPrice) * Number(currencyRate);
}
//回佣
if (type == 8) {
xiaoJi += Number(item.RebatePrice) * Number(currencyRate);
}
// 其它费用(保险、司导杂费等)
if (type == 9) {
xiaoJi += Number(item.OtherPrice) * Number(currencyRate);
}
});
}
return xiaoJi.toFixed(0);
},
//获取变更合计
getDayChangeXiaoJi(type, currencyType) {
var xiaoJi = 0;
this.dayCostPrice.forEach(item => {
var currencyRate = 1;
if (currencyType == 2) {
currencyRate = this.getCurrencyMoney(item.CurrencyId);
}
//酒店
if (type == 1) {
if (item.IsHotelChange) {
xiaoJi += Number(item.HotelChangeValue) * Number(currencyRate);
if (this.dayCostPrice && this.dayCostPrice.length > 0) {
this.dayCostPrice.forEach(item => {
var currencyRate = 1;
if (currencyType == 2) {
currencyRate = this.getCurrencyMoney(item.CurrencyId);
}
}
//车
if (type == 2) {
if (item.IsBusChange) {
xiaoJi += Number(item.BusChangeValue) * Number(currencyRate);
//酒店
if (type == 1) {
if (item.IsHotelChange) {
xiaoJi += Number(item.HotelChangeValue) * Number(currencyRate);
}
}
}
//景点
if (type == 3) {
if (item.IsScenicChange) {
xiaoJi += Number(item.ScenicChangeValue) * Number(currencyRate);
//车
if (type == 2) {
if (item.IsBusChange) {
xiaoJi += Number(item.BusChangeValue) * Number(currencyRate);
}
}
}
//早餐
if (type == 4) {
if (item.IsBreakfastChange) {
xiaoJi += Number(item.BreakfastChangeValue) * Number(currencyRate);
//景点
if (type == 3) {
if (item.IsScenicChange) {
xiaoJi += Number(item.ScenicChangeValue) * Number(currencyRate);
}
}
if (item.IsLunchChange) {
xiaoJi += Number(item.LunchChangeValue) * Number(currencyRate);
//早餐
if (type == 4) {
if (item.IsBreakfastChange) {
xiaoJi += Number(item.BreakfastChangeValue) * Number(currencyRate);
}
if (item.IsLunchChange) {
xiaoJi += Number(item.LunchChangeValue) * Number(currencyRate);
}
if (item.IsDinnerChange) {
xiaoJi += Number(item.DinnerChangeValue) * Number(currencyRate);
}
}
if (item.IsDinnerChange) {
xiaoJi += Number(item.DinnerChangeValue) * Number(currencyRate);
if (type == 9) {
if (item.IsOtherChange) {
xiaoJi += Number(item.OtherChangeValue) * Number(currencyRate);
}
}
}
if (type == 9) {
if (item.IsOtherChange) {
xiaoJi += Number(item.OtherChangeValue) * Number(currencyRate);
}
}
});
});
}
return xiaoJi.toFixed(0);
},
//其它成本价格
......@@ -1366,11 +1381,10 @@
}
},
mounted() {
this.orderList = this.OfferArray
this.changeTabs()
this.switchOffer();
},
created() {
this.getTeamList();
},
watch: {
......
......@@ -60,6 +60,13 @@
margin-bottom: 0 !important;
}
/* 在你的组件样式中 */
.CostNewPrice .custom-label-color .el-form-item__label {
color: #ff4949 !important;
font-weight: bold !important;
/* 修改为你需要的颜色 */
}
</style>
<template>
......@@ -389,6 +396,8 @@
<tr>
<td colspan="13">{{$t('objFill.qitacbrmb')}}</td>
</tr>
<template>
</template>
<tr>
<td colspan="2">
<el-form-item :label="$t('active.cl_jipiao')" label-position="right">
......@@ -420,7 +429,6 @@
@keyup.native="checkPrice(teamPrice,'UnionPrice'),getchange()"></el-input>
</el-form-item>
</td>
<td colspan="4" rowspan="2">
{{$t('objFill.xiaojijpzdsjly')}}:
<br /> {{getOtherCostMoney()}}
......@@ -476,16 +484,8 @@
</el-form-item>
</td>
<td colspan="2">
<el-form-item :label="$t('Operation.Op_childNobed')">
<el-input placeholder="" v-model="teamPrice.ChildNoNeedPrice"
@keyup.native="checkInteger(teamPrice,'ChildNoNeedPrice')" class="w70">
</el-input>
</el-form-item>
</td>
<td colspan="2">
<el-form-item :label="$t('Operation.Op_childBed')">
<el-input placeholder="" v-model="teamPrice.ChildNeedPrice"
@keyup.native="checkInteger(teamPrice,'ChildNeedPrice')" class="w70">
<el-form-item :label="$t('salesModule.DJNum')" class="custom-label-color">
<el-input placeholder="" v-model="offerDataObj.DMCNum" class="w150">
</el-input>
</el-form-item>
</td>
......@@ -496,13 +496,27 @@
</el-input>
</el-form-item>
</td>
<td colspan="4">
<td colspan="2">
<el-form-item :label="$t('objFill.dandijjg')">
<el-input placeholder="" v-model="teamPrice.SingleDMCTCPrice"
@keyup.native="checkPrice(teamPrice,'SingleDMCTCPrice')" class="w70">
</el-input>
</el-form-item>
</td>
<td colspan="2">
<el-form-item :label="$t('Operation.Op_childNobed')">
<el-input placeholder="" v-model="teamPrice.ChildNoNeedPrice"
@keyup.native="checkInteger(teamPrice,'ChildNoNeedPrice')" class="w70">
</el-input>
</el-form-item>
</td>
<td colspan="2">
<el-form-item :label="$t('Operation.Op_childBed')">
<el-input placeholder="" v-model="teamPrice.ChildNeedPrice"
@keyup.native="checkInteger(teamPrice,'ChildNeedPrice')" class="w70">
</el-input>
</el-form-item>
</td>
</tr>
<tr>
<td colspan="2">
......@@ -577,7 +591,6 @@
</td>
<td>
{{$t('objFill.tongyexsjg')}}
<br />
<!--台湾印象和日本印象-->
<template v-if="postConfig.OutBranchId==1218||postConfig.OutBranchId==1220">
......@@ -684,25 +697,40 @@
<travelDinner v-if="isShowDiningDig" :qMsg="qMsg" @chooseDinner="chooseDinner" @closeDinner="closeDialog"
:otherDinner="otherDinner" :breakFirstList="breakFirstList"></travelDinner>
</el-dialog>
</div>
</template>
<script>
import travelDinner from '@/components/commonPage/travelDinner'
export default {
props: ["postConfig", "AllCurrencyList"],
props: ["postConfig", "AllCurrencyList", "offerSelectDate"],
watch: {
postConfig: {
handler: function (val, oldVal) {
if (val != oldVal) {
this.getOfferItemObj(1);
}
},
deep: true
},
offerSelectDate: {
handler: function (val, oldVal) {
if (val != oldVal) {
this.getOfferItemObj(2);
}
},
deep: true
}
},
data() {
return {
dayCostPriceList: this.postConfig.OfferArray[0].dayCostPriceList,
otherPrice: this.postConfig.OfferArray[0].otherPrice,
teamPrice: this.postConfig.OfferArray[0].teamPrice,
CostNumberList: this.postConfig.OfferArray[0].CostNumberList,
dayCostPriceList: this.postConfig.dayCostPriceList,
otherPrice: {},
teamPrice: {},
CostNumberList: [],
CurrencyNumberListExt: this.postConfig.OfferArray[0].CurrencyNumberListExt,
CostCurrencyList: this.postConfig.OfferArray[0].CostCurrencyList,
offerDataObj: {},
//下拉框默认值
defaultSelect: 0,
//币种下拉
......@@ -745,6 +773,24 @@
travelDinner: travelDinner,
},
methods: {
//获取选中的日期
getOfferItemObj(type) {
var selectOfferObj = {};
if (this.postConfig && this.postConfig.OfferArray && this.postConfig.OfferArray.length > 0) {
selectOfferObj = this.postConfig.OfferArray.find((qitem) => {
return qitem.OutDateTime == this.offerSelectDate
})
}
if (selectOfferObj) {
this.otherPrice = selectOfferObj.otherPrice;
this.teamPrice = selectOfferObj.teamPrice;
this.CostNumberList = selectOfferObj.CostNumberList;
this.offerDataObj = selectOfferObj;
}
this.getchange()
this.getSubMoney();
return selectOfferObj;
},
changeTicket(subItem) {
if (subItem.TicketSourceList && subItem.TicketSourceList.length > 0) {
var changeObj = subItem.TicketSourceList.find(qitem => qitem.TicketId == subItem.TicketId);
......@@ -817,8 +863,8 @@
},
GetDayStr(dayNum) {
var str = "";
if (this.postConfig.OutDateTime && this.postConfig.OutDateTime != '') {
var dateFormat = new Date(this.postConfig.OutDateTime);
if (this.offerSelectDate && this.offerSelectDate != '') {
var dateFormat = new Date(this.offerSelectDate);
dateFormat = dateFormat.setDate(dateFormat.getDate() + dayNum);
dateFormat = new Date(dateFormat);
let y = dateFormat.getFullYear()
......@@ -843,7 +889,6 @@
this.initHotel(query, subItem)
} else {
subItem.HotelList = []
}
},
//景点搜索
......@@ -989,7 +1034,6 @@
}
})
}
//xiaoJi += Number(item.ScenicCostPrice) * Number(currencyRate);
}
//餐合计
if (type == 4) {
......@@ -1138,6 +1182,7 @@
},
//添加人数费用
addPeoNunber() {
var that = this;
var PeopleNumber = this.priceObj.priceNum;
if (PeopleNumber == "") {
this.Info(this.$t('objFill.v101.SalesModule.col2.t4'));
......@@ -1156,6 +1201,13 @@
var CostNumberObj = this.$tripUtils.CostNumber();
CostNumberObj.PeopleNumber = PeopleNumber;
this.CostNumberList.push(CostNumberObj);
if (this.postConfig && this.postConfig.OfferArray && this.postConfig.OfferArray.length > 0) {
this.postConfig.OfferArray.forEach(rItem => {
if (rItem.OutDateTime != this.offerSelectDate) {
rItem.CostNumberList = JSON.parse(JSON.stringify(that.CostNumberList))
}
})
}
this.CurrencyNumberListExt.forEach(x => {
var CurrencyNumberObj = this.$tripUtils.CurrencyNumber();
CurrencyNumberObj.CurrencyId = x.Key;
......@@ -1173,7 +1225,13 @@
},
//删除人数
DeletePNumber(index) {
var that = this;
this.CostNumberList.splice(index, 1);
if (this.postConfig && this.postConfig.OfferArray && this.postConfig.OfferArray.length > 0) {
this.postConfig.OfferArray.forEach(rItem => {
rItem.CostNumberList = JSON.parse(JSON.stringify(that.CostNumberList));
})
}
},
//人数排序
shortPeopleNumber() {
......@@ -1259,8 +1317,9 @@
tempPrice = Number(that.getLocalMoney(x.PeopleNumber));
});
}
this.teamPrice.SingleDMCPrice = tempPrice.toFixed(0);
if (this.teamPrice.SingleDMCPrice <= 0 || (type && type == 1)) {
this.teamPrice.SingleDMCPrice = tempPrice.toFixed(0);
//this.teamPrice.SingleDMCPrice = tempPrice.toFixed(0);
}
this.getSubMoney();
},
......@@ -1304,6 +1363,7 @@
created() {
this.getEmployeeList();
this.getConfigDinnerList();
this.getOfferItemObj(0);
}
};
......
......@@ -12,8 +12,7 @@
<template>
<div class="DirectQuotation clearfix" v-loading="loading">
<div class="singlePrice clearfix">
<CostNewPriceAudit v-if="haveData" ref="CostNewPrice" :postConfig="postData" :OfferArray="OfferArray"
:IsEdit="IsEdit"></CostNewPriceAudit>
<CostNewPriceAudit v-if="haveData" ref="CostNewPrice" :postConfig="postData" :IsEdit="IsEdit"></CostNewPriceAudit>
</div>
</div>
</template>
......@@ -23,9 +22,6 @@
data() {
return {
haveData: false,
OfferArray: [],
ConfigID: 0,
IsShow: false,
//基本配置
postData: {
ID: 0,
......@@ -87,8 +83,8 @@
OpAuditDate: "", //印尼团 OP审核时间
OpAuditContent: "", //印尼团OP审核备注
OpAuditStatus: "", //印尼团OP审核状态
OfferArray: [],
},
isSubmit: true,
loading: false,
IsEdit: 0,
};
......@@ -131,6 +127,7 @@
});
},
getPostData() {
this.haveData = false;
let BatchNum = "";
let offerid = 0;
if (this.$route.query.BatchNum) {
......@@ -145,10 +142,11 @@
};
this.loading = true;
this.apipost(
"travel_get_GetMyTravelInfo_V5",
"travel_get_PriceOfferInfo",
msg,
res => {
this.loading = false;
console.log("travel_get_PriceOfferInfo",res.data);
if (res.data.resultCode == 1) {
var tempData = res.data.data;
if (tempData.ID && tempData.ID > 0) {
......@@ -160,18 +158,7 @@
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;
}
......@@ -267,9 +254,8 @@
this.postData.PriceTeamTypeName = tempData.PriceTeamTypeName;
this.postData.PriceTeamType = tempData.PriceTeamType;
if (tempData.OfferArray) {
tempData.OfferArray.forEach(item => {
this.OfferArray.push(item)
})
this.postData.OfferArray = tempData.OfferArray;
}
this.haveData = true;
} else {
......
......@@ -44,8 +44,6 @@
color: #106BAF;
}
.w70 {
width: 70px !important;
}
......@@ -63,9 +61,10 @@
margin-bottom: 0 !important;
}
.select-tag {
font-weight: bold;
color: #f12a2a;
.offer_select-tag {
background-color: #409eff !important;
color: white !important;
border-color: #409eff !important;
}
</style>
......@@ -113,7 +112,7 @@
</template>
</el-select>
</template>
<template v-if="postData.TeamType==2" >
<template v-if="postData.TeamType==2">
&nbsp;&nbsp;&nbsp;&nbsp;
<el-tooltip content="勾选此项,团队报满后,自动生成新团期,新报价单。">
<el-checkbox v-model="postData.IsRoll" :true-label="1" :false-label="0">滚动发团</el-checkbox>
......@@ -182,10 +181,9 @@
<td width="80" class="txtRightCost">{{$t('hotel.hotel_StarDate')}}</td>
<td>
<el-date-picker type="dates" v-model="postData.OutDateTimeList" value-format="yyyy-MM-dd" placeholder
:disabled="rParams.TCID>0">
:disabled="rParams.TCID>0" @change="changeDate">
</el-date-picker>
</td>
</tr>
<tr>
<td colspan="8" style="height:20px;">
......@@ -196,8 +194,11 @@
<td colspan="5">
<template v-if="postData.OutDateTimeList&&postData.OutDateTimeList.length>0">
<el-tag v-for="(item,oIndex) in postData.OutDateTimeList" :key="item" closable
style="margin-right:5px;" @close="handleClose(item,oIndex)">
{{item}}
style="margin-right:5px;cursor:pointer;" @close="handleClose(item,oIndex)"
:class="item==selectDate?'offer_select-tag': ''" @click="switchOffer(item)">
<el-tooltip class="item" effect="dark" content="点击切换日期" placement="top-start">
<font> {{item}}</font>
</el-tooltip>
</el-tag>
</template>
</td>
......@@ -205,8 +206,8 @@
</table>
</div>
<br />
<CostNewPriceForm v-if="haveData" ref="CostNewPrice" :postConfig="postData" :AllCurrencyList="AllCurrencyList"
@success="refreshPage">
<CostNewPriceForm v-if="haveData" ref="CostNewPrice" :postConfig="postData" :offerSelectDate="selectDate"
:AllCurrencyList="AllCurrencyList" @success="refreshPage">
</CostNewPriceForm>
</el-form>
</div>
......@@ -225,7 +226,6 @@
</template>
<script>
import CostNewPriceForm from "../TravelNewQuotation/CostNewPriceForm";
export default {
components: {
CostNewPriceForm: CostNewPriceForm,
......@@ -254,125 +254,25 @@
//基本配置
postData: {
BatchNum: "",
ID: 0,
TCID: 0,
OfferId: 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, //出团类型
PriceTeamType: 0, //团队类型
TravelState: 1, //团控状态(1-草稿,2-待审核,3-审核通过,4-审核拒绝,5已撤销)
OutBranchId: "", //出团公司
OutDateTime: "", //出发时间
OutDateTimeList: [], //出发时间
OfferPayType: 0, //报价单付款方式
SaleOfferPayType: 0, //售价付款方式
IsRoll: 0, //团期报满后是否自动生成新团期,新报价单
OPId: "", //主OP
AssistantId: "", //助理OP[格式:1,2,3]
AssistantList: [], //助理OP数组
OfferArray: [{
CostCurrencyList: [],
CostNumberList: [], //报价人数
CurrencyNumberListExt: [], //币种和人数列表
dayCostPriceList: [], //行程报价
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, //单地接(成本)
SingleDMCTCPrice: 0, //单地接团售价
RebatePrice: 0, //同行返佣
DiscountPrice: 0, //早鸟优惠
IsSupportChildren: 1, //是否支持儿童出游(1-支持,2-不支持)
SafeMoney: 0, //保险费
PeopleNumber: 0, //人数
AirticketMoney: 0, //机票费用
BackVisaPrice: 0, //退签证费
BackSafeMoney: 0, //退保险费
ContractUrl: "", //合同地址
PriceRemark: "", //定价备注
ContractArray: [],
TaxPrice: 0, //税金
UnionPrice: 0, //联运价格
NightPrice: 0, //过夜费
}, //团队价格信息
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, //司机小费币种
LeaderGuideDriveZhuSu: 0, //领队导游住宿费
GuideMoneyCurrencyId: 0, //导游小费币种
GuideMoney: 0, //导游小费
InternationalAirTicket: 0, //国际段机票
InternationalAirTicketCurrency: 0, //国际段机票币种
GuideComplement: 0, //导游回补
TipComplement: 0, //小费回补
}, //其他报价
}]
SaleOfferPayType: "",
OPId: "",
AssistantList: [],
dayCostPriceList: [], //行程报价
OfferArray: []
},
isSubmit: true,
LineList: [], //线路列表
......@@ -387,27 +287,167 @@
TCID: 0,
BatchNum: ""
},
selectDate: "", //选中的日期
};
},
methods: {
//删除日期
handleClose(item, index) {
if (this.postData.BatchNum && this.postData.BatchNum != '') {
var postMsg = {
BatchNum: this.postData.BatchNum,
Date: item
//切换日期
switchOffer(item) {
this.haveData = false;
this.selectDate = item;
this.haveData = true;
},
//日期选择
changeDate() {
var that = this;
if (this.postData.OutDateTimeList && this.postData.OutDateTimeList.length > 0) {
var rootObj = null;
if (this.postData.OfferArray && this.postData.OfferArray.length > 0) {
rootObj = this.postData.OfferArray[0]
}
this.apipost(
"travel_post_RemoveTravelOffer", postMsg,
res => {
if (res.data.resultCode == 1) {
this.postData.OutDateTimeList.splice(index, 1);
this.postData.OutDateTimeList.forEach(subItem => {
var tempObj = that.getOfferObj();
tempObj.OutDateTime = subItem;
var existsObj = that.postData.OfferArray.find((qitem) => {
return qitem.OutDateTime == subItem
})
//第一个报价在添加日期的
if (!existsObj) {
if (rootObj) {
tempObj = JSON.parse(JSON.stringify(rootObj));
tempObj.DMCNum = "";
}
});
} else {
this.postData.OutDateTimeList.splice(index, 1);
tempObj.OutDateTime = subItem;
that.postData.OfferArray.push(tempObj);
}
});
if (this.postData && this.postData.OfferArray && this.postData.OfferArray.length > 0) {
if (this.postData.BatchNum == '') {
that.switchOffer(this.postData.OfferArray[0].OutDateTime)
} else {
var lastItem = this.postData.OfferArray[this.postData.OfferArray.length - 1];
that.switchOffer(lastItem.OutDateTime)
}
}
}
},
//获取报价单对象
getOfferObj() {
var offerObj = {
OfferPayType: 0, //报价单付款方式
SaleOfferPayType: 0, //售价付款方式
OutDateTime: "", //出发时间
AssistantId: "", //助理OP[格式:1,2,3]
OPId: "", //主OP
DMCNum: "", //地接团号
AssistantList: [], //助理OP数组
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, //单地接(成本)
SingleDMCTCPrice: 0, //单地接团售价
RebatePrice: 0, //同行返佣
DiscountPrice: 0, //早鸟优惠
IsSupportChildren: 1, //是否支持儿童出游(1-支持,2-不支持)
SafeMoney: 0, //保险费
PeopleNumber: 0, //人数
AirticketMoney: 0, //机票费用
BackVisaPrice: 0, //退签证费
BackSafeMoney: 0, //退保险费
ContractUrl: "", //合同地址
PriceRemark: "", //定价备注
ContractArray: [],
TaxPrice: 0, //税金
UnionPrice: 0, //联运价格
NightPrice: 0, //过夜费
}, //团队价格信息
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, //司机小费币种
LeaderGuideDriveZhuSu: 0, //领队导游住宿费
GuideMoneyCurrencyId: 0, //导游小费币种
GuideMoney: 0, //导游小费
InternationalAirTicket: 0, //国际段机票
InternationalAirTicketCurrency: 0, //国际段机票币种
GuideComplement: 0, //导游回补
TipComplement: 0, //小费回补
}, //其他报价
};
return offerObj;
},
//删除日期
handleClose(item, index) {
var that = this;
var tipMsg = "是否要删除【" + item + "】报价?";
that.Confirm(tipMsg, function () {
if (that.postData.BatchNum && that.postData.BatchNum != '') {
var postMsg = {
BatchNum: that.postData.BatchNum,
Date: item
}
that.apipost(
"travel_post_RemoveTravelOffer", postMsg,
res => {
if (res.data.resultCode == 1) {}
});
that.postData.OutDateTimeList.splice(index, 1);
} else {
that.postData.OutDateTimeList.splice(index, 1);
}
if (that.postData.OfferArray && that.postData.OfferArray.length > 0) {
var sIndex = that.postData.OfferArray.findIndex(qitem => qitem.OutDateTime == item);
that.postData.OfferArray.splice(sIndex, 1);
if (that.postData.OfferArray && that.postData.OfferArray.length > 0) {
var lastItem = that.postData.OfferArray[that.postData.OfferArray.length - 1];
that.switchOffer(lastItem.OutDateTime)
}
}
});
},
changeTeamType() {
this.postData.LineId = 0;
this.postData.LineteamId = 0;
......@@ -472,8 +512,8 @@
}, err => {});
},
createDayTripPrice() {
var tempArray = this.createDayTripPriceItem(this.postData.OfferArray[0].dayCostPriceList);
this.postData.OfferArray[0].dayCostPriceList = tempArray;
var tempArray = this.createDayTripPriceItem(this.postData.dayCostPriceList);
this.postData.dayCostPriceList = tempArray;
this.$forceUpdate()
},
//生成行程报价
......@@ -558,13 +598,9 @@
this.Error(this.$t('objFill.v101.zhulopbnhzopcx'));
return;
}
var postMsg = {
config: this.postData,
OfferArray: this.postData.OfferArray
};
this.loading = true;
this.apipost(
"travel_post_SetConfigOffer_V3", postMsg,
"travel_post_SetPriceOfferInfo", this.postData,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
......@@ -583,11 +619,11 @@
}
});
},
//刷新页面
refreshPage() {
this.getPostData();
},
getPostData() {
this.haveData = false;
let offerId = 0;
if (this.$route.query.offerid) {
offerId = this.$route.query.offerid;
......@@ -606,33 +642,19 @@
}
this.loading = true;
this.apipost(
"travel_get_GetMyTravelInfo_V5", msg,
"travel_get_PriceOfferInfo", msg,
res => {
console.log("travel_get_GetMyTravelInfo_V5", res);
console.log("travel_get_PriceOfferInfo", res);
this.loading = false;
if (res.data.resultCode == 1) {
var tempData = res.data.data;
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;
}
......@@ -660,15 +682,10 @@
this.postData.TeamType = tempData.TeamType;
this.postData.PriceTeamType = tempData.PriceTeamType;
this.postData.TravelState = tempData.TravelState;
this.LineList = tempData.LineList;
if (tempData && tempData.OfferArray && tempData.OfferArray.length > 0) {
this.postData.OfferArray[0].dayCostPriceList = tempData.OfferArray[0].dayCostPriceList;
this.postData.OfferArray[0].CurrencyNumberListExt = tempData.OfferArray[0].CurrencyNumberListExt;
this.postData.OfferArray[0].teamPrice = tempData.OfferArray[0].teamPrice;
this.postData.OfferArray[0].otherPrice = tempData.OfferArray[0].otherPrice;
this.postData.OfferArray[0].CostNumberList = tempData.OfferArray[0].CostNumberList;
this.postData.OfferArray[0].CostCurrencyList = tempData.OfferArray[0].CostCurrencyList;
this.postData.dayCostPriceList = tempData.OfferArray[0].dayCostPriceList;
this.postData.OfferArray = tempData.OfferArray;
this.postData.OPId = tempData.OfferArray[0].OPId;
var tempA_Array = tempData.OfferArray[0].AssistantList;
if (tempA_Array && tempA_Array.length > 0) {
......@@ -676,8 +693,8 @@
this.postData.AssistantList.push(aItem.Id);
})
}
this.switchOffer(tempData.OfferArray[0].OutDateTime);
}
this.haveData = true;
} else {
this.Error(res.data.message);
}
......
......@@ -8,7 +8,7 @@
<div class="switchDiv clearfix" style="width:98%;">
<div class="DirectPriceCenter">
<div class="singlePrice clearfix" v-loading="loading">
<CostNewPriceAudit v-if="haveData" ref="CostNewPrice" :postConfig="postData" :OfferArray="OfferArray"
<CostNewPriceAudit v-if="haveData" ref="CostNewPrice" :postConfig="postData"
:IsEdit="0">
</CostNewPriceAudit>
</div>
......@@ -24,7 +24,6 @@
data() {
return {
haveData: false,
OfferArray: [],
//基本配置
postData: {
ID: 0,
......@@ -74,6 +73,7 @@
AssistantList: [], //助理OP
PriceTeamType: 0, //团队类型,
PriceTeamTypeName: "", //团队类型,
OfferArray: [],
},
loading: false
};
......@@ -91,7 +91,7 @@
this.haveData = false;
this.loading = true;
this.apipost(
"travel_get_GetMyTravelInfo_V4",
"travel_get_PriceOfferInfo",
msg,
res => {
this.loading = false;
......@@ -106,18 +106,7 @@
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;
}
......@@ -183,9 +172,7 @@
this.postData.PriceTeamTypeName = tempData.PriceTeamTypeName;
this.postData.PriceTeamType = tempData.PriceTeamType;
if (tempData.OfferArray) {
tempData.OfferArray.forEach(item => {
this.OfferArray.push(item)
})
this.postData.OfferArray = tempData.OfferArray;
}
this.haveData = true;
} else {
......
......@@ -195,13 +195,11 @@
<td width="80" class="txtRightCost">{{$t('hotel.hotel_choostDate')}}</td>
<td colspan="5">
<template v-if="postData.OutDateTimeList&&postData.OutDateTimeList.length>0">
<el-tooltip class="item" effect="dark" content="点击切换" placement="top">
<el-tag v-for="(item,oIndex) in postData.OutDateTimeList" :key="item" closable
style="margin-right:5px;cursor:pointer;" @close="handleClose(item,oIndex)"
:class="item==selectDate?'offer_select-tag': ''" @click="switchOffer(item)">
{{item}}
</el-tag>
</el-tooltip>
<el-tag v-for="(item,oIndex) in postData.OutDateTimeList" :key="item" closable
style="margin-right:5px;cursor:pointer;" @close="handleClose(item,oIndex)"
:class="item==selectDate?'offer_select-tag': ''" @click="switchOffer(item)">
{{item}}
</el-tag>
</template>
</td>
</tr>
......@@ -303,7 +301,10 @@
changeDate() {
var that = this;
if (this.postData.OutDateTimeList && this.postData.OutDateTimeList.length > 0) {
var rootObj = this.postData.OfferArray[0];
var rootObj = null;
if (this.postData.OfferArray && this.postData.OfferArray.length > 0) {
rootObj = this.postData.OfferArray[0]
}
this.postData.OutDateTimeList.forEach(subItem => {
var tempObj = that.getOfferObj();
tempObj.OutDateTime = subItem;
......@@ -312,12 +313,21 @@
})
//第一个报价在添加日期的
if (!existsObj) {
tempObj = JSON.parse(JSON.stringify(rootObj));
if (rootObj) {
tempObj = JSON.parse(JSON.stringify(rootObj));
}
tempObj.OutDateTime = subItem;
that.postData.OfferArray.push(tempObj);
}
this.switchOffer(tempObj.OutDateTime);
});
if (this.postData && this.postData.OfferArray && this.postData.OfferArray.length > 0) {
if (this.postData.BatchNum == '') {
that.switchOffer(this.postData.OfferArray[0].OutDateTime)
} else {
var lastItem = this.postData.OfferArray[this.postData.OfferArray.length - 1];
that.switchOffer(lastItem.OutDateTime)
}
}
}
},
//获取报价单对象
......@@ -418,9 +428,7 @@
this.apipost(
"travel_post_RemoveTravelOffer", postMsg,
res => {
if (res.data.resultCode == 1) {
}
if (res.data.resultCode == 1) {}
});
this.postData.OutDateTimeList.splice(index, 1);
} else {
......@@ -607,7 +615,6 @@
this.getPostData();
},
getPostData() {
this.haveData = false;
let offerId = 0;
if (this.$route.query.offerid) {
offerId = this.$route.query.offerid;
......@@ -677,9 +684,8 @@
this.postData.AssistantList.push(aItem.Id);
})
}
this.selectDate = tempData.OfferArray[0].OutDateTime;
this.switchOffer(tempData.OfferArray[0].OutDateTime);
}
this.haveData = true;
} else {
this.Error(res.data.message);
}
......
......@@ -422,7 +422,6 @@
@keyup.native="checkPrice(teamPrice,'UnionPrice'),getchange()"></el-input>
</el-form-item>
</td>
<td colspan="4" rowspan="2">
{{$t('objFill.xiaojijpzdsjly')}}:
<br /> {{getOtherCostMoney()}}
......@@ -512,7 +511,6 @@
</el-form-item>
</td>
</tr>
<tr>
<td colspan="2">
<el-form-item :label="$t('Operation.Op_zhu')+`OP`">
......@@ -770,19 +768,17 @@
methods: {
//获取选中的日期
getOfferItemObj(type) {
console.log("getOfferItemObj_" + type, this.postConfig);
var selectOfferObj = {};
if (this.postConfig && this.postConfig.OfferArray && this.postConfig.OfferArray.length > 0) {
selectOfferObj = this.postConfig.OfferArray.find((qitem) => {
return qitem.OutDateTime == this.offerSelectDate
})
}
console.log("selectOfferObj_" + type, selectOfferObj);
if (selectOfferObj) {
this.otherPrice = selectOfferObj.otherPrice;
this.teamPrice = selectOfferObj.teamPrice;
this.CostNumberList = selectOfferObj.CostNumberList;
this.offerDataObj=selectOfferObj;
this.offerDataObj = selectOfferObj;
}
return selectOfferObj;
},
......@@ -1177,6 +1173,7 @@
},
//添加人数费用
addPeoNunber() {
var that = this;
var PeopleNumber = this.priceObj.priceNum;
if (PeopleNumber == "") {
this.Info(this.$t('objFill.v101.SalesModule.col2.t4'));
......@@ -1195,7 +1192,13 @@
var CostNumberObj = this.$tripUtils.CostNumber();
CostNumberObj.PeopleNumber = PeopleNumber;
this.CostNumberList.push(CostNumberObj);
if (this.postConfig && this.postConfig.OfferArray && this.postConfig.OfferArray.length > 0) {
this.postConfig.OfferArray.forEach(rItem => {
if (rItem.OutDateTime != this.offerSelectDate) {
rItem.CostNumberList = JSON.parse(JSON.stringify(that.CostNumberList))
}
})
}
this.CurrencyNumberListExt.forEach(x => {
var CurrencyNumberObj = this.$tripUtils.CurrencyNumber();
CurrencyNumberObj.CurrencyId = x.Key;
......@@ -1213,7 +1216,13 @@
},
//删除人数
DeletePNumber(index) {
var that = this;
this.CostNumberList.splice(index, 1);
if (this.postConfig && this.postConfig.OfferArray && this.postConfig.OfferArray.length > 0) {
this.postConfig.OfferArray.forEach(rItem => {
rItem.CostNumberList = JSON.parse(JSON.stringify(that.CostNumberList));
})
}
},
//人数排序
shortPeopleNumber() {
......
......@@ -348,12 +348,12 @@
</td>
<td>
<div class="fz16 fbold linkspan"
@click="goUrl([131,14, 90,118].includes(item.LineId) ? 'roomReservationsDetails' : 'roomReservationsDetailsNew',item,outItem,'订房详情')">
@click="goUrl([131,14,118].includes(item.LineId) ? 'roomReservationsDetails' : 'roomReservationsDetailsNew',item,outItem,'订房详情')">
<span style="color: #4BCA81;" v-if="item.HotelResult==1"></span>
<span class="colorE95252" v-else>{{item.HotelResult=='-1'?"x":"O"}}</span>
</div>
<p
v-if="(item.LineId==14||item.LineId==118) && item.PriceHotelResult && item.PriceHotelResult.length>0">
v-if="(item.LineId==14||item.LineId==118||item.LineId==90) && item.PriceHotelResult && item.PriceHotelResult.length>0">
<el-popover width="1100" trigger="click" popper-class="DMC_HotelPop">
<commonHotelInfo :HotelObj="item.PriceHotelResult" :showHotelObj="showHotelObj" :TCID="item.TCID"
:DMCNum="item.DMCNum" :TCNUM="item.TCNUMS"
......
......@@ -369,6 +369,8 @@
</div>
</div>
</div>
<div class="travelDaysHVdetails" :style="{'margin-top':(item.TitleObj.ShowTripType==2&&
(item.ScenicArray.length==1||item.ScenicArray.length==0))
||((item.TitleObj.ShowTripType==1||item.TitleObj.ShowTripType==0)&&
......
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