<style> .QuotationPrice_SWT .swttable { border: 1px solid #106BAF !important; border-collapse: collapse; } .QuotationPrice_SWT .swttable tr td { border: 1px solid #106BAF !important; border-collapse: collapse; height: 40px; line-height: 40px; padding: 0 3px; } .QuotationPrice_SWT .space { width: 30px; } .QuotationPrice_SWT .ComTitle { color: #106BAF; font-weight: bold; background-color: #D1EEEE; white-space: nowrap; } .QuotationPrice_SWT .link { cursor: pointer; color: blue; text-decoration: underline; } .QuotationPrice_SWT .linkLeft { cursor: pointer; color: blue; text-decoration: underline; float: left; padding-left: 5px; } .QuotationPrice_SWT .saveArea { position: fixed; z-index: 999; width: 60px; height: auto; padding-bottom: 10px; right: 30px; bottom: 20%; border-radius: 4px; background-color: #e95252; } .QuotationPrice_SWT .toTop { width: 100%; height: 40px; text-align: center; line-height: 40px; color: #fff; } .quotationSaveBtn { width: 45px; height: 45px; border-radius: 4px; background-color: #ffc2c2; margin: 8px; color: #cc1212; text-align: center; line-height: 45px; font-size: 12px; cursor: pointer; } .QuotationPrice_SWT .tdCenter { text-align: center; } </style> <template> <div class="QuotationPrice_SWT clearfix" v-loading="loading"> <div class="saveArea"> <div class="toTop"><i class="iconfont icon-huidaodingbu"></i></div> <div class="quotationSaveBtn" @click="SaveData(1)">{{$t('fnc.tijiao')}}</div> <div class="quotationSaveBtn" style="margin-top:2px;" @click="SaveData(0)" >{{$t('pub.saveBtn')}}</div> </div> <div> <table class="swttable"> <tbody :title="$t('objFill.v101.xianluxltmin')"> <tr> <td colspan="2" class="ComTitle"> {{$t('advmanager.v_line')}} </td> <td colspan="3"> <el-select v-model="postData.LineId" class='w200' filterable :placeholder="$t('pub.pleaseSel')" @change="getLineTeamList(true)"> <el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option> <el-option v-for="item in LineList" :label='item.LineName' :value='item.LineID' :key='item.LineID'> </el-option> </el-select> </td> <td class="ComTitle"> {{$t('advmanager.v_xilie')}} </td> <td colspan="4"> <el-select v-model="postData.LineteamId" class='w200' filterable :placeholder="$t('pub.pleaseSel')"> <el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option> <el-option v-for="item in LineTeamList" :label='item.LtName' :value='item.LtID' :key='item.LtID'> </el-option> </el-select> </td> </tr> <tr> <td colspan="2" class="ComTitle"> {{$t('Operation.Op_TeamName')}} </td> <td colspan="8"> <el-input v-model="postData.Title" class="w660" :placeholder="$t('ground.ctmchen')"></el-input> </td> </tr> </tbody> <tbody :title="$t('objFill.v101.tianshbshijsyrs')"> <tr> <td rowspan="3" colspan="2" class="ComTitle"> TO: </td> <td class="ComTitle"> {{$t('objFill.tianshu')}} </td> <td> <el-input v-model="postData.DayNum" @keyup.native="checkInteger(postData,'DayNum')" :placeholder="$t('visa.v_xcdays')" maxlength="2" class="w180"></el-input> </td> <td> </td> <td rowspan="4" class="ComTitle"> {{$t('ground.hbsj')}}: <a @click="AddFlight()" class="link">{{$t('objFill.v101.Rest.tianjiahanb')}}</a> </td> <td> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=1"> <a @click="DeleteFlight(0)" class="link">{{$t('system.table_delete')}}</a> </template> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=1"> <el-date-picker v-model="postData.SWTFlightList[0].flightDate" type="date" :placeholder="$t('Airticket.Air_flightDate')" class="w180"> </el-date-picker> </template> </td> <td> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=1"> <el-input v-model="postData.SWTFlightList[0].flightNum" :placeholder="$t('system.query_flightNum')" class="w180"></el-input> </template> </td> <td colspan="2"> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=1"> <el-input v-model="postData.SWTFlightList[0].flightContent" :placeholder="$t('salesModule.FlighInfo')"></el-input> </template> </td> </tr> <tr> <td class="ComTitle"> {{$t('hotel.hotel_StarDate')}}: </td> <td> <el-date-picker v-model="postData.StartDate" type="date" value-format="yyyy-MM-dd" clearable :placeholder="$t('objFill.v101.duosqzouwxc')" class="w180"> </el-date-picker> </td> <td> </td> <td> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=2"> <a @click="DeleteFlight(1)" class="link">{{$t('system.table_delete')}}</a> </template> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=2"> <el-date-picker v-model="postData.SWTFlightList[1].flightDate" type="date" :placeholder="$t('Airticket.Air_flightDate')" class="w180"> </el-date-picker> </template> </td> <td> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=2"> <el-input v-model="postData.SWTFlightList[1].flightNum" :placeholder="$t('system.query_flightNum')" class="w180"></el-input> </template> </td> <td colspan="2"> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=2"> <el-input v-model="postData.SWTFlightList[1].flightContent" :placeholder="$t('salesModule.FlighInfo')"></el-input> </template> </td> </tr> <tr> <td class="ComTitle"> {{$t('objFill.v101.lianfa')}}: </td> <td> <el-input v-model="postData.AirLineName" :placeholder="$t('objFill.v101.taizhonglfa')" class="w180"></el-input> </td> <td class="ComTitle"> FOC </td> <td> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=3"> <a @click="DeleteFlight(2)" class="link">{{$t('system.table_delete')}}</a> </template> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=3"> <el-date-picker v-model="postData.SWTFlightList[2].flightDate" type="date" :placeholder="$t('Airticket.Air_flightDate')" class="w180"> </el-date-picker> </template> </td> <td> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=3"> <el-input v-model="postData.SWTFlightList[2].flightNum" :placeholder="$t('system.query_flightNum')" class="w180"></el-input> </template> </td> <td colspan="2"> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=3"> <el-input v-model="postData.SWTFlightList[2].flightContent" :placeholder="$t('salesModule.FlighInfo')"></el-input> </template> </td> </tr> <tr> <td colspan="3" class="ComTitle"> {{$t('objFill.v101.tongyrshu')}}: </td> <td> <el-input v-model="postData.GuestNum" @keyup.native="checkInteger(postData,'GuestNum'),GetPeople()" placeholder="旅客人数" maxlength="2" class="w180"></el-input> </td> <td> <el-input v-model="postData.FocNum" @keyup.native="checkInteger(postData,'FocNum'),GetPeople()" placeholder="FOC" maxlength="2" class="w180"></el-input> </td> <td> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=4"> <a @click="DeleteFlight(3)" class="link">{{$t('system.table_delete')}}</a> </template> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=4"> <el-date-picker v-model="postData.SWTFlightList[3].flightDate" type="date" :placeholder="$t('Airticket.Air_flightDate')" class="w180"> </el-date-picker> </template> </td> <td> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=4"> <el-input v-model="postData.SWTFlightList[3].flightNum" :placeholder="$t('system.query_flightNum')" class="w180"></el-input> </template> </td> <td colspan="2"> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=4"> <el-input v-model="postData.SWTFlightList[3].flightContent" :placeholder="$t('salesModule.FlighInfo')"></el-input> </template> </td> </tr> </tbody> <tbody :title="$t('objFill.v101.linduihedy')"> <tr> <td rowspan="2" colspan="3" class="ComTitle"> {{$t('leader.leader_Guide')}} </td> <td rowspan="2"> <template v-if="postData.SWTGuideList&&postData.SWTGuideList.length>=1"> <el-input v-model="postData.SWTGuideList[0].LeaderGuideInfo" :placeholder="$t('leader.leader_Guide')" class="w180"></el-input> </template> </td> <td rowspan="2" class="ComTitle"> {{$t('leader.leader_Leader')}} </td> <td rowspan="2"> <template v-if="postData.SWTLeaderList&&postData.SWTLeaderList.length>=1"> <el-input v-model="postData.SWTLeaderList[0].LeaderGuideInfo" :placeholder="$t('leader.leader_Leader')" class="w180"></el-input> </template> </td> <td> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=5"> <a @click="DeleteFlight(4)" class="link">{{$t('system.table_delete')}}</a> </template> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=5"> <el-date-picker v-model="postData.SWTFlightList[4].flightDate" type="date" :placeholder="$t('Airticket.Air_flightDate')" class="w180"> </el-date-picker> </template> </td> <td> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=5"> <el-input v-model="postData.SWTFlightList[4].flightNum" :placeholder="$t('system.query_flightNum')" class="w180"></el-input> </template> </td> <td colspan="2"> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=5"> <el-input v-model="postData.SWTFlightList[4].flightContent" :placeholder="$t('salesModule.FlighInfo')"></el-input> </template> </td> </tr> <tr> <td> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=6"> <a @click="DeleteFlight(5)" class="link">{{$t('system.table_delete')}}</a> </template> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=6"> <el-date-picker v-model="postData.SWTFlightList[5].flightDate" type="date" :placeholder="$t('Airticket.Air_flightDate')" class="w180"> </el-date-picker> </template> </td> <td> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=6"> <el-input v-model="postData.SWTFlightList[5].flightNum" :placeholder="$t('system.query_flightNum')" class="w180"></el-input> </template> </td> <td colspan="2"> <template v-if="postData.SWTFlightList&&postData.SWTFlightList.length>=6"> <el-input v-model="postData.SWTFlightList[5].flightContent" :placeholder="$t('salesModule.FlighInfo')"></el-input> </template> </td> </tr> </tbody> <tbody :title="'LOCAL'+$t('visa.v_tuanhao')"> <tr> <td colspan="3" class="ComTitle"> {{'LOCAL'+$t('visa.v_tuanhao')}} </td> <td> <el-input v-model="postData.LocalTeamNum" :placeholder="'LOCAL'+$t('visa.v_tuanhao')" maxlength="100" class="w180"></el-input> </td> <td class="ComTitle"> {{$t('objFill.v101.gujiadaih')}} </td> <td colspan="2"> <el-input v-model="postData.ValuationCode" :placeholder="$t('objFill.v101.gujiadaih')" maxlength="100" class="w180"></el-input> </td> <td class="ComTitle"> {{$t('ground.ctmchen')}} </td> <td colspan="2"> <el-input v-model="postData.OutTeamName" :placeholder="$t('ground.ctmchen')" maxlength="100" class="w180"></el-input> </td> </tr> <tr> <td colspan="3" class="ComTitle"> {{'AGT'+$t('visa.v_tuanhao')}} </td> <td> <el-input v-model="postData.AGTTeamName" :placeholder="'AGT'+$t('visa.v_tuanhao')" maxlength="100" class="w180"></el-input> </td> <td class="ComTitle"> SURCHARGE: </td> <td colspan="2"> <el-input v-model="postData.SURCHARGE" :placeholder="$t('objFill.v101.gonggjqjgly')" maxlength="100" class="w180"></el-input> </td> <td class="ComTitle"> </td> <td colspan="2"> </td> </tr> <tr> <td colspan="3" class="ComTitle"> {{$t('objFill.jianyishoujia')}} </td> <td> <el-input v-model="postData.SalePrice" @keyup.native="checkPrice(postData,'SalePrice')" :placeholder="$t('objFill.jianyishoujia')" maxlength="10" class="w180"></el-input> </td> <td class="ComTitle"> {{$t('Operation.Op_singleRoomcha')}} </td> <td colspan="2"> <el-input v-model="postData.SingleRoomPrice" @keyup.native="checkPrice(postData,'SingleRoomPrice')" :placeholder="$t('Operation.Op_singleRoomcha')" maxlength="10" class="w180"></el-input> </td> <td class="ComTitle"> </td> <td colspan="2"> </td> </tr> </tbody> <tbody> <tr> <td colspan="10"></td> </tr> </tbody> <tbody :title="$t('hotel.hotel')"> <tr> <td colspan="7" class="ComTitle tdCenter"> {{$t('objFill.v101.fandian')}} </td> <td class="ComTitle"> {{$t('objFill.v101.jiudianjianm')}}: </td> <td colspan="2"> <el-input v-model="postData.HotelDisNum" @keyup.native="checkInteger(postData,'HotelDisNum'),CalcFeeTotal()" :placeholder="$t('objFill.v101.jiudianjianm')" maxlength="2" class="w180"> </el-input> </td> </tr> <tr> <td class="ComTitle tdCenter" colspan="2"> DAY </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.fandianmc')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.meijin')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.yuedun')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.cinshu')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.fangrenshu')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.jianmrenshu')}} </td> <td class="ComTitle tdCenter" colspan="2"> {{$t('fnc.a_heji')}} </td> </tr> <tr v-for="(hItem,hIndex) in postData.SWTHotelList" :key="hIndex"> <td style="width:50px;" colspan="2"> D{{hItem.DayNum}} </td> <td> <el-select v-model="hItem.HotelId" class='w200' filterable :placeholder="$t('pub.pleaseSel')" @visible-change="GetHotelList($event,hItem)" @change="GetHotelItem(hItem),CalcFeeTotal()"> <el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option> <el-option v-for="(subItem,subIndex) in hItem.HotelList" :value="subItem.ID" :label="subItem.Name" :key="subIndex"></el-option> </el-select> </td> <td> <el-input v-model="hItem.USPrice" maxlength="10" @keyup.native="checkPrice(hItem,'USPrice'),CalcFeeTotal()" :placeholder="$t('objFill.v101.meijin')" class="w150"></el-input> </td> <td> <el-input v-model="hItem.VNDPrice" maxlength="10" @keyup.native="checkPrice(hItem,'VNDPrice'),CalcFeeTotal()" :placeholder="$t('objFill.v101.yuedun')" class="w150"> </el-input> </td> <td> <el-input v-model="hItem.Times" @keyup.native="checkInteger(hItem,'Times'),CalcFeeTotal()" :placeholder="$t('objFill.v101.cinshu')" maxlength="2" class="w150"></el-input> </td> <td> {{hItem.TotalNum}} </td> <td> {{hItem.HotelDisNum}} </td> <td class="w150"> {{hItem.USSubTotal}} </td> <td class="w150"> {{hItem.VNDSubTotal}} </td> </tr> </tbody> <tbody :title="$t('objFill.v101.jiudianheji')"> <tr> <td colspan="2"> </td> <td> </td> <td> US{{$t('fnc.a_heji')}}:{{HotelSum.USPriceSum}} </td> <td> VND{{$t('fnc.a_heji')}}:{{HotelSum.VNDPriceSum}} </td> <td> </td> <td> </td> <td> </td> <td> {{HotelSum.USTotalSum}} </td> <td> {{HotelSum.VNDTotalSum}} </td> </tr> </tbody> <tbody> <tr> <td colspan="10"></td> </tr> </tbody> <tbody :title="$t('ground.canshi')"> <tr> <td colspan="7" class="ComTitle tdCenter"> {{$t('ground.canshi')}} </td> <td class="ComTitle"> {{$t('objFill.v101.canshijianm')}}: </td> <td colspan="2"> <el-input v-model="postData.DinnerDisNum" @keyup.native="checkInteger(postData,'DinnerDisNum'),CalcFeeTotal()" :placeholder="$t('objFill.v101.canshijianm')" maxlength="2" class="w180"> </el-input> </td> </tr> <tr> <td colspan="2" class="ComTitle tdCenter"> DAY </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.canshiminc')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.meijin')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.yuedun')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.cinshu')}} </td> <td class="ComTitle tdCenter"> {{$t('admin.admin_personNumber')}}/FOC </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.jianmrenshu')}} </td> <td class="ComTitle tdCenter" colspan="2"> {{$t('fnc.a_heji')}} </td> </tr> <template v-for="(subItem,subIndex) in postData.SWTDinnerList"> <tr v-for="(childItem,childIndex) in subItem.SubDinnerList"> <td v-if="childIndex==0" :rowspan="3"> D{{subItem.DayNum}} </td> <td> <template v-if="childItem.DinnerType==1"> {{$t('objFill.zaocan')}} </template> <template v-if="childItem.DinnerType==2"> {{$t('objFill.wucan')}} </template> <template v-if="childItem.DinnerType==3"> {{$t('objFill.wancan')}} </template> </td> <td> <el-select v-model="childItem.DinnerId" class='w200' filterable :placeholder="$t('pub.pleaseSel')" @visible-change="GetDinnerList($event,subItem,childItem)" @change="GetDinnerItem(childItem),CalcFeeTotal()"> <el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option> <el-option v-for="(qitem,qindex) in childItem.DinnerList" :value="qitem.ID" :label="qitem.Name" :key="qindex"></el-option> </el-select> </td> <td> <el-input v-model="childItem.USPrice" maxlength="10" @keyup.native="checkPrice(childItem,'USPrice'),CalcFeeTotal()" :placeholder="$t('objFill.v101.meijin')" class="w150"> </el-input> </td> <td> <el-input v-model="childItem.VNDPrice" maxlength="10" @keyup.native="checkPrice(childItem,'VNDPrice'),CalcFeeTotal()" :placeholder="$t('objFill.v101.yuedun')" class="w150"> </el-input> </td> <td> <el-input v-model="childItem.Times" @keyup.native="checkInteger(childItem,'Times'),CalcFeeTotal()" :placeholder="$t('objFill.v101.cinshu')" maxlength="2" class="w150"></el-input> </td> <td> {{childItem.TotalNum}} {{$t('hotel.hotel_people')}} </td> <td> {{childItem.DinnerDisNum}} </td> <td> {{childItem.USSubTotal}} </td> <td> {{childItem.VNDSubTotal}} </td> </tr> </template> </tbody> <tbody :title="$t('objFill.v101.cantinheji')"> <tr> <td colspan="2"> </td> <td> </td> <td> US{{$t('fnc.a_heji')}}:{{DinnerSum.USPriceSum}} </td> <td> VND{{$t('fnc.a_heji')}}:{{DinnerSum.VNDPriceSum}} </td> <td> </td> <td> </td> <td> </td> <td> {{DinnerSum.USTotalSum}} </td> <td> {{DinnerSum.VNDTotalSum}} </td> </tr> </tbody> <tbody> <tr> <td colspan="10"></td> </tr> </tbody> <tbody :title="$t('objFill.v101.jindianmenp')"> <tr> <td colspan="7" class="ComTitle tdCenter"> {{$t('objFill.v101.jindianmenp')}} </td> <td class="ComTitle"> {{$t('objFill.v101.jindianjianm')}}: </td> <td colspan="2"> <el-input v-model="postData.TicketDisNum" @keyup.native="checkInteger(postData,'TicketDisNum'),CalcFeeTotal()" :placeholder="$t('objFill.v101.jindianjianm')" maxlength="2" class="w150"> </el-input> </td> </tr> <tr> <td class="ComTitle tdCenter" colspan="2"> DAY </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.jindianmenp')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.meijin')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.yuedun')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.cinshu')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.fangrenshu')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.jianmrenshu')}} </td> <td class="ComTitle tdCenter" colspan="2"> {{$t('fnc.a_heji')}} </td> </tr> <template v-for="(subItem,subIndex) in postData.SWTTicketList"> <tr v-for="(childItem,childIndex) in subItem.SubTicketList" :key="subIndex*10+childIndex*1"> <td v-if="childIndex==0" :rowspan="subItem.SubTicketList.length" colspan="2"> D{{subItem.DayNum}} </td> <td> <template v-if="childIndex==0"> <a style="cursor:pointer;color:blue;" @click="AddTicket(subItem)">{{$t('fnc.tianjia')}}</a> </template> <template v-if="childIndex!=0"> <a style="cursor:pointer;color:blue;" @click="DeleteTicket(subItem,childIndex)">{{$t('system.table_delete')}}</a> </template> <el-select v-model="childItem.CouponsId" class='w200' filterable :placeholder="$t('pub.pleaseSel')" @visible-change="GetScenicList($event,subItem,childItem)" @change="GetScenicItem(childItem),CalcFeeTotal()"> <el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option> <el-option v-for="(qitem,qindex) in childItem.TicketList" :value="qitem.ID" :label="qitem.Name" :key="qindex"></el-option> </el-select> </td> <td> <el-input v-model="childItem.USPrice" maxlength="10" @keyup.native="checkPrice(childItem,'USPrice'),CalcFeeTotal()" :placeholder="$t('objFill.v101.meijin')" class="w150"> </el-input> </td> <td> <el-input v-model="childItem.VNDPrice" maxlength="10" @keyup.native="checkPrice(childItem,'VNDPrice'),CalcFeeTotal()" :placeholder="$t('objFill.v101.yuedun')" class="w150"> </el-input> </td> <td> <el-input v-model="childItem.Times" @keyup.native="checkInteger(childItem,'Times'),CalcFeeTotal()" :placeholder="$t('objFill.v101.cinshu')" maxlength="2" class="w150"></el-input> </td> <td> {{childItem.TotalNum}} {{$t('hotel.hotel_people')}} </td> <td> {{childItem.TicketDisNum}} </td> <td> {{childItem.USSubTotal}} </td> <td> {{childItem.VNDSubTotal}} </td> </tr> </template> </tbody> <tbody :title="$t('objFill.v101.jindmenpheji')"> <tr> <td colspan="2"> </td> <td> </td> <td> US{{$t('fnc.a_heji')}}:{{TicketSum.USPriceSum}} </td> <td> VND{{$t('fnc.a_heji')}}:{{TicketSum.VNDPriceSum}} </td> <td> </td> <td> </td> <td> </td> <td> {{TicketSum.USTotalSum}} </td> <td> {{TicketSum.VNDTotalSum}} </td> </tr> </tbody> <tbody> <tr> <td colspan="10"></td> </tr> </tbody> <tbody :title="$t('ground.chezi')"> <tr> <td colspan="7" class="ComTitle tdCenter"> {{$t('ground.chezi')}} </td> <td class="ComTitle"> {{$t('Operation.Op_carType')}}: </td> <td colspan="2"> <el-select v-model="postData.BusPriceId" class='w150' filterable :placeholder="$t('pub.pleaseSel')"> <el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option> <el-option v-for="(qitem,qindex) in BusTypeList" :value="qitem.Id" :label="qitem.newName" :key="qindex"> </el-option> </el-select> </td> </tr> <tr> <td colspan="2" class="ComTitle tdCenter"> DAY </td> <td class="ComTitle tdCenter" colspan="2"> {{$t('Airticket.Air_Trip')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.busManagement.gonglis')}} </td> <td class="ComTitle tdCenter"> {{$t('ground.chezi')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.cinshu')}} </td> <td class="ComTitle tdCenter"> {{$t('fnc.danjia')}} </td> <td class="ComTitle tdCenter" colspan="2"> {{$t('fnc.a_heji')}} </td> </tr> <template v-for="(subItem,subIndex) in postData.SWTBusList"> <tr v-for="(childItem,childIndex) in subItem.SubBusList" :key="subIndex*100+childIndex*1"> <td v-if="childIndex==0" :rowspan="subItem.SubBusList.length" colspan="2"> D{{subItem.DayNum}} </td> <td colspan="2"> <template v-if="childIndex==0"> <a style="cursor:pointer;color:blue;" @click="AddBus(subItem)">{{$t('fnc.tianjia')}}</a> </template> <template v-if="childIndex!=0"> <a style="cursor:pointer;color:blue;" @click="DeleteBus(subItem,childIndex)">{{$t('system.table_delete')}}</a> </template> <el-select v-model="childItem.BusConfigId" class='w200' filterable :placeholder="$t('pub.pleaseSel')" @visible-change="GetBusConfigList($event,subItem,childItem)" @change="GetBusItem(childItem),CalcFeeTotal()"> <el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option> <el-option v-for="(qitem,qindex) in childItem.BusList" :value="qitem.Id" :label="qitem.Trip" :key="qindex"></el-option> </el-select> </td> <td> <el-input v-model="childItem.Kilometre" maxlength="10" @keyup.native="checkInteger(childItem,'Kilometre'),CalcFeeTotal()" :placeholder="$t('objFill.v101.busManagement.gonglis')" class="w150"> </el-input> </td> <td> <el-input v-model="childItem.VNDPrice" maxlength="10" @keyup.native="checkPrice(childItem,'VNDPrice'),CalcFeeTotal()" :placeholder="$t('ground.chezi')" class="w150"> </el-input> </td> <td> <el-input v-model="childItem.Times" @keyup.native="checkInteger(childItem,'Times'),CalcFeeTotal()" :placeholder="$t('objFill.v101.cinshu')" maxlength="10" class="w150"></el-input> </td> <td> <el-input v-model="childItem.Price" @keyup.native="checkPrice(childItem,'Price'),CalcFeeTotal()" :placeholder="$t('fnc.danjia')" maxlength="10" class="w150"></el-input> </td> <td> {{childItem.PriceSubTotal}} </td> <td> {{childItem.VNDSubTotal}} </td> </tr> </template> <template v-for="(subItem,subIndex) in postData.SWTBusOtherList"> <tr v-for="(childItem,childIndex) in subItem.SubBusList" :key="subIndex*1000+(childIndex+1)*1"> <td colspan="2"> </td> <td colspan="2"> <el-select v-model="childItem.BusConfigId" class='w200' filterable :placeholder="$t('pub.pleaseSel')" @visible-change="GetBusConfigList($event,subItem,childItem)" @change="GetBusItem(childItem),CalcFeeTotal()"> <el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option> <el-option v-for="(qitem,qindex) in childItem.BusList" :value="qitem.Id" :label="qitem.Trip" :key="qindex"></el-option> </el-select> </td> <td> <el-input v-model="childItem.Kilometre" maxlength="10" @keyup.native="checkInteger(childItem,'Kilometre'),CalcFeeTotal()" :placeholder="$t('objFill.v101.busManagement.gonglis')" class="w150"> </el-input> </td> <td> <el-input v-model="childItem.VNDPrice" maxlength="10" @keyup.native="checkPrice(childItem,'VNDPrice'),CalcFeeTotal()" :placeholder="$t('ground.chezi')" class="w150"> </el-input> </td> <td> <el-input v-model="childItem.Times" @keyup.native="checkInteger(childItem,'Times'),CalcFeeTotal()" :placeholder="$t('objFill.v101.cinshu')" maxlength="10" class="w150"></el-input> </td> <td> <el-input v-model="childItem.Price" @keyup.native="checkPrice(childItem,'Price'),CalcFeeTotal()" :placeholder="$t('fnc.danjia')" maxlength="10" class="w150"></el-input> </td> <td> {{childItem.PriceSubTotal}} </td> <td> {{childItem.VNDSubTotal}} </td> </tr> </template> </tbody> <tbody :title="$t('objFill.v101.cheziheji')"> <tr> <td colspan="2"> </td> <td colspan="2"> </td> <td> {{BusSum.TotalKM}} </td> <td> {{BusSum.TotalVNDPrice}} </td> <td> </td> <td> </td> <td> {{BusSum.PriceSum}} </td> <td> {{BusSum.VNDTotalSum}} </td> </tr> </tbody> <tbody> <tr> <td colspan="10"></td> </tr> </tbody> <tbody :title="$t('objFill.v101.chuanhdyoujp')"> <tr> <td colspan="10" class="ComTitle tdCenter"> {{$t('objFill.v101.chuanhdyoujp')}} <a class="linkLeft" @click="AddBaoJiaConfigItem(4)">{{$t('fnc.tianjia')}}</a> </td> </tr> <tr> <td class="ComTitle tdCenter" colspan="4"> {{$t('admin.mane')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.meijin')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.yuenandun')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.cinshu')}} </td> <td class="ComTitle tdCenter"> {{$t('admin.admin_personNumber')}} </td> <td class="ComTitle tdCenter" colspan="2"> {{$t('fnc.a_heji')}} </td> </tr> <template v-for="(childItem,childIndex) in postData.SWTShipList"> <tr :key="childIndex"> <td colspan="4"> <a class="link" @click="DeleteBaoJiaConfigItem(4,childIndex)">{{$t('system.table_delete')}}</a> <el-select v-model="childItem.BaoJiaConfigId" class='w220' filterable :placeholder="$t('pub.pleaseSel')" @change="GetConfigItem(childItem,4),CalcFeeTotal()"> <el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option> <el-option v-for="(qitem,qindex) in ShipList" :value="qitem.Id" :label="qitem.CName" :key="qindex"> </el-option> </el-select> </td> <td> <el-input v-model="childItem.USPrice" maxlength="10" @keyup.native="checkPrice(childItem,'USPrice'),CalcFeeTotal()" :placeholder="$t('objFill.v101.meijin')" class="w150"> </el-input> </td> <td> <el-input v-model="childItem.VNDPrice" maxlength="10" @keyup.native="checkPrice(childItem,'VNDPrice'),CalcFeeTotal()" :placeholder="$t('objFill.v101.yuedun')" class="w150"> </el-input> </td> <td> <el-input v-model="childItem.Times" @keyup.native="checkInteger(childItem,'Times'),CalcFeeTotal()" :placeholder="$t('objFill.v101.cinshu')" maxlength="2" class="w150"></el-input> </td> <td> {{childItem.TotalNum}} </td> <td> {{childItem.USSubTotal}} </td> <td> {{childItem.VNDSubTotal}} </td> </tr> </template> </tbody> <tbody :title="$t('objFill.v101.chuanheji')"> <tr> <td colspan="4"> </td> <td> US{{$t('fnc.a_heji')}}:{{ShipSum.USPriceSum}} </td> <td> VND{{$t('fnc.a_heji')}}:{{ShipSum.VNDPriceSum}} </td> <td> </td> <td> </td> <td> {{ShipSum.USTotalSum}} </td> <td> {{ShipSum.VNDTotalSum}} </td> </tr> </tbody> <tbody> <tr> <td colspan="10"></td> </tr> </tbody> <tbody :title="$t('objFill.zhazhi')"> <tr> <td colspan="10" class="ComTitle tdCenter"> {{$t('objFill.zhazhi')}} <a class="linkLeft" @click="AddBaoJiaConfigItem(1)">{{$t('fnc.tianjia')}}</a> </td> </tr> <tr> <td class="ComTitle tdCenter" colspan="3"> {{$t('admin.mane')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.meijin')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.yuenandun')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.cinshu')}} </td> <td class="ComTitle tdCenter"> {{$t('pub.Ci')}} </td> <td class="ComTitle tdCenter"> FOC </td> <td class="ComTitle tdCenter" colspan="2"> {{$t('fnc.a_heji')}} </td> </tr> <template v-for="(childItem,childIndex) in postData.SWTOtherPayList"> <tr :key="childIndex"> <td colspan="3"> <a class="link" @click="DeleteBaoJiaConfigItem(1,childIndex)">{{$t('system.table_delete')}}</a> <el-select v-model="childItem.BaoJiaConfigId" class='w220' filterable :placeholder="$t('pub.pleaseSel')" @change="GetConfigItem(childItem,1),CalcFeeTotal()"> <el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option> <el-option v-for="(qitem,qindex) in ZaZhiList" :value="qitem.Id" :label="qitem.CName" :key="qindex"> </el-option> </el-select> </td> <td> <el-input v-model="childItem.USPrice" maxlength="10" @keyup.native="checkPrice(childItem,'USPrice'),CalcFeeTotal()" :placeholder="$t('objFill.v101.meijin')" class="w150"> </el-input> </td> <td> <el-input v-model="childItem.VNDPrice" maxlength="10" @keyup.native="checkPrice(childItem,'VNDPrice'),CalcFeeTotal()" :placeholder="$t('objFill.v101.yuedun')" class="w150"> </el-input> </td> <td> <el-input v-model="childItem.DayNum" @keyup.native="checkInteger(childItem,'DayNum'),CalcFeeTotal()" :placeholder="$t('objFill.v101.cinshu')" maxlength="2" class="w150"></el-input> </td> <td> <el-input v-model="childItem.Times" @keyup.native="checkInteger(childItem,'Times'),CalcFeeTotal()" :placeholder="$t('objFill.v101.cinshu')" maxlength="2" class="w150"></el-input> </td> <td> <el-input v-model="childItem.FOCNum" @keyup.native="checkInteger(childItem,'FOCNum'),CalcFeeTotal()" placeholder="FOC" maxlength="2" class="w150"></el-input> </td> <td> {{childItem.USSubTotal}} </td> <td> {{childItem.VNDSubTotal}} </td> </tr> </template> </tbody> <tbody :title="$t('objFill.v101.zazhiheji')"> <tr> <td colspan="3"> </td> <td> US{{$t('fnc.a_heji')}}:{{ZaZhiSum.USPriceSum}} </td> <td> VND{{$t('fnc.a_heji')}}:{{ZaZhiSum.VNDPriceSum}} </td> <td> </td> <td> </td> <td> </td> <td> {{ZaZhiSum.USTotalSum}} </td> <td> {{ZaZhiSum.VNDTotalSum}} </td> </tr> </tbody> <tbody> <tr> <td colspan="10"></td> </tr> </tbody> <tbody :title="$t('objFill.v101.gouwuzifei')"> <tr> <td colspan="10" class="ComTitle tdCenter"> {{$t('objFill.v101.gouwuzifei')}} <a class="linkLeft" @click="AddBaoJiaConfigItem(2)">{{$t('fnc.tianjia')}}</a> </td> </tr> <tr> <td class="ComTitle tdCenter" colspan="2"> {{$t('objFill.v101.kemu')}} </td> <td class="ComTitle tdCenter" colspan="2"> {{$t('admin.mane')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.meijin')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.yuenandun')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.cinshu')}} </td> <td class="ComTitle tdCenter"> FOC </td> <td class="ComTitle tdCenter" colspan="2"> {{$t('fnc.a_heji')}} </td> </tr> <template v-for="(childItem,childIndex) in postData.SWTSelfFeeList"> <tr :key="childIndex"> <td colspan="2"> {{childItem.BaoJiaTypeName}} </td> <td colspan="2"> <a class="link" @click="DeleteBaoJiaConfigItem(2,childIndex)">{{$t('system.table_delete')}}</a> <el-select v-model="childItem.BaoJiaConfigId" class='w220' filterable :placeholder="$t('pub.pleaseSel')" @change="GetConfigItem(childItem,2),CalcFeeTotal()"> <el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option> <el-option v-for="(qitem,qindex) in SelfFeeList" :value="qitem.Id" :label="qitem.CName" :key="qindex"> </el-option> </el-select> </td> <td> <el-input v-model="childItem.USPrice" maxlength="10" @keyup.native="checkPrice(childItem,'USPrice'),CalcFeeTotal()" :placeholder="$t('objFill.v101.meijin')" class="w150"> </el-input> </td> <td> <el-input v-model="childItem.VNDPrice" maxlength="10" @keyup.native="checkPrice(childItem,'VNDPrice'),CalcFeeTotal()" :placeholder="$t('objFill.v101.yuedun')" class="w150"> </el-input> </td> <td> {{childItem.TotalNum}} </td> <td> <el-input v-model="childItem.FOCNum" @keyup.native="checkInteger(childItem,'FOCNum'),CalcFeeTotal()" :placeholder="$t('objFill.v101.cinshu')" maxlength="2" class="w150"></el-input> </td> <td> {{childItem.USSubTotal}} </td> <td> {{childItem.VNDSubTotal}} </td> </tr> </template> </tbody> <tbody :title="$t('objFill.v101.gouwuzifeihj')"> <tr> <td colspan="4"> </td> <td> US{{$t('fnc.a_heji')}}:{{SelfFeeSum.USPriceSum}} </td> <td> VND{{$t('fnc.a_heji')}}:{{SelfFeeSum.VNDPriceSum}} </td> <td> </td> <td> </td> <td> {{SelfFeeSum.USTotalSum}} </td> <td> {{SelfFeeSum.VNDTotalSum}} </td> </tr> </tbody> <tbody> <tr> <td colspan="10"></td> </tr> </tbody> <tbody :title="$t('fnc.xiaofei')"> <tr> <td colspan="10" class="ComTitle tdCenter"> <a class="linkLeft" @click="AddBaoJiaConfigItem(3)">{{$t('fnc.tianjia')}}</a> {{$t('fnc.xiaofei')}} </td> </tr> <tr> <td class="ComTitle tdCenter" colspan="4"> {{$t('admin.mane')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.meijin')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.yuenandun')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.cinshu')}} </td> <td class="ComTitle tdCenter"> FOC </td> <td class="ComTitle tdCenter" colspan="2"> {{$t('fnc.a_heji')}} </td> </tr> <template v-for="(childItem,childIndex) in postData.SWTTipFeeList"> <tr :key="childIndex"> <td colspan="4"> <a class="link" @click="DeleteBaoJiaConfigItem(3,childIndex)">{{$t('system.table_delete')}}</a> <el-select v-model="childItem.BaoJiaConfigId" class='w220' filterable :placeholder="$t('pub.pleaseSel')" @change="GetConfigItem(childItem,3),CalcFeeTotal()"> <el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option> <el-option v-for="(qitem,qindex) in TipFeeList" :value="qitem.Id" :label="qitem.CName" :key="qindex"> </el-option> </el-select> </td> <td> <el-input v-model="childItem.USPrice" maxlength="10" @keyup.native="checkPrice(childItem,'USPrice'),CalcFeeTotal()" :placeholder="$t('objFill.v101.meijin')" class="w150"> </el-input> </td> <td> <el-input v-model="childItem.VNDPrice" maxlength="10" @keyup.native="checkPrice(childItem,'VNDPrice'),CalcFeeTotal()" :placeholder="$t('objFill.v101.yuedun')" class="w150"> </el-input> </td> <td> {{childItem.TotalNum}} </td> <td> <el-input v-model="childItem.FOCNum" @keyup.native="checkInteger(childItem,'FOCNum'),CalcFeeTotal()" :placeholder="$t('objFill.v101.cinshu')" maxlength="2" class="w150"></el-input> </td> <td> {{childItem.USSubTotal}} </td> <td> {{childItem.VNDSubTotal}} </td> </tr> </template> </tbody> <tbody :title="$t('objFill.v101.xiaofeiheji')"> <tr> <td colspan="4"> </td> <td> US{{$t('fnc.a_heji')}}:{{TipFeeSum.USPriceSum}} </td> <td> VND{{$t('fnc.a_heji')}}:{{TipFeeSum.VNDPriceSum}} </td> <td> </td> <td> </td> <td> {{TipFeeSum.USTotalSum}} </td> <td> {{TipFeeSum.VNDTotalSum}} </td> </tr> </tbody> <tbody> <tr> <td colspan="10"></td> </tr> </tbody> <tbody :title="$t('objFill.zongji')"> <tr> <td colspan="4" class="ComTitle tdCenter"> </td> <td colspan="2" class="ComTitle tdCenter"> {{$t('objFill.gerentuanfei')}} </td> <td colspan="2" class="ComTitle tdCenter"> {{$t('objFill.zhengtituanfei')}} </td> </tr> <tr> <td colspan="4" class="ComTitle tdCenter"> {{$t('system.query_type')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.meijin')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.yuedun')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.meijin')}} </td> <td class="ComTitle tdCenter"> {{$t('objFill.v101.yuedun')}} </td> </tr> <tr> <td colspan="4" class="ComTitle tdCenter"> {{$t('objFill.fangfei')}} </td> <td> {{(HotelSum.USPriceSum/2).toFixed(2)}} </td> <td> {{(HotelSum.VNDPriceSum/2).toFixed(2)}} </td> <td> {{HotelSum.USTotalSum}} </td> <td> {{HotelSum.VNDTotalSum}} </td> </tr> <tr> <td colspan="4" class="ComTitle tdCenter"> {{$t('ground.canshi')}} </td> <td> {{DinnerSum.USPriceSum}} </td> <td> {{DinnerSum.VNDPriceSum}} </td> <td> {{DinnerSum.USTotalSum}} </td> <td> {{DinnerSum.VNDTotalSum}} </td> </tr> <tr> <td colspan="4" class="ComTitle tdCenter"> {{$t('objFill.v101.jindianmenp')}} </td> <td> {{TicketSum.USPriceSum}} </td> <td> {{TicketSum.VNDPriceSum}} </td> <td> {{TicketSum.USTotalSum}} </td> <td> {{TicketSum.VNDTotalSum}} </td> </tr> <tr> <td colspan="4" class="ComTitle tdCenter"> {{$t('objFill.zhazhi')}} </td> <td> {{ZaZhiSum.USPriceSingle}} </td> <td> {{ZaZhiSum.VNDPriceSingle}} </td> <td> {{ZaZhiSum.USTotalSum}} </td> <td> {{ZaZhiSum.VNDTotalSum}} </td> </tr> <tr> <td colspan="4" class="ComTitle tdCenter"> {{$t('ground.chezi')}} </td> <td> </td> <td> {{ (( Number(BusSum.VNDTotalSum)+Number(BusSum.PriceSum)) /getPeopleNum.totalNum).toFixed(2)}} </td> <td> </td> <td> {{(Number(BusSum.VNDTotalSum)+Number(BusSum.PriceSum)).toFixed(2)}} </td> </tr> <tr> <td colspan="4" class="ComTitle tdCenter"> {{$t('objFill.v101.chuanhdyoujp')}} </td> <td> {{(ShipSum.USPriceSum/getPeopleNum.totalNum).toFixed(2)}} </td> <td> {{(ShipSum.VNDPriceSum/getPeopleNum.totalNum).toFixed(2)}} </td> <td> {{ShipSum.USTotalSum}} </td> <td> {{ShipSum.VNDTotalSum}} </td> </tr> <tr> <td colspan="4" class="ComTitle tdCenter"> {{$t('objFill.v101.gouwuzifei')}} </td> <td> {{SelfFeeSum.USPriceSum}} </td> <td> {{SelfFeeSum.VNDPriceSum}} </td> <td> {{SelfFeeSum.USTotalSum}} </td> <td> {{SelfFeeSum.VNDTotalSum}} </td> </tr> <tr> <td colspan="4" class="ComTitle tdCenter"> {{$t('fnc.a_heji')}} </td> <td> {{CalcTotal().single_us_price}} </td> <td> {{CalcTotal().single_vnd_price}} </td> <td> {{CalcTotal().total_us_price}} </td> <td> {{CalcTotal().total_vnd_price}} </td> </tr> </tbody> </table> </div> </div> </template> <script> export default { data() { return { Id: 0, //编号 LineList: [], //线路列表 LineTeamList: [], //系列列表 DefaultCurrencyId: 17, //默认为越南盾 //基本配置 postData: { Id: 0, LineId: 0, LineteamId: 0, IsDirect: 1, //是否直采(0-否-1-是)【全部默认非直采】 TeamType: 3, //团队类型【默认地接团】 TravelState: 1, //团控状态(1-草稿,2-待审核,3-审核通过,4-审核拒绝,5已撤销) Title: "", //团队标题 ConfigId: 0, //配置编号 DayNum: 0, //行程天数 StartDate: "", //出发日期 AirLineName: "", //航空公司名称 SWTFlightList: [], //航班列表 GuestNum: 0, //旅客人数 FocNum: 0, //Foc人数 SWTLeaderList: [], //领队信息 SWTGuideList: [], //导游信息 LocalTeamNum: "", //LOCAL團號 ValuationCode: "", //估價代號 OutTeamName: "", //出團名稱 AGTTeamName: "", //AGT團號 SURCHARGE: "", //SURCHARGE HotelDisNum: 0, //酒店免人数 SWTHotelList: [], //酒店信息 DinnerDisNum: 0, //餐免人数 SWTDinnerList: [], //餐厅信息 TicketDisNum: 0, //景点免人数 SWTTicketList: [], //景点信息 BusPriceId: 0, //车辆报价编号 SWTBusList: [], //车资明细 SWTShipList: [], //船明细 SWTOtherPayList: [], //杂支信息 SWTSelfFeeList: [], //自费明细 SWTTipFeeList: [], //小费明细 AuditStatus: -1, //审核状态 SalePrice: 0, //建议售价 SingleRoomPrice: 0, //单房差 SWTBusOtherList: [], //车资其它JSON列表 }, BusTypeList: [], //车辆类型 //酒店统计 HotelSum: { USPriceSum: 0, //美金单价统计 VNDPriceSum: 0, //越盾单价统计 USTotalSum: 0, //美金合计 VNDTotalSum: 0, //越盾合计 }, //餐厅统计 DinnerSum: { USPriceSum: 0, //美金单价统计 VNDPriceSum: 0, //越盾单价统计 USTotalSum: 0, //美金合计 VNDTotalSum: 0, //越盾合计 }, //景点门票统计 TicketSum: { USPriceSum: 0, //美金单价统计 VNDPriceSum: 0, //越盾单价统计 USTotalSum: 0, //美金合计 VNDTotalSum: 0, //越盾合计 }, //车资统计 BusSum: { TotalKM: 0, //公里数合计 TotalVNDPrice: 0, //车资合计 PriceSum: 0, //车资合计 VNDTotalSum: 0, //公里合计 }, ZaZhiList: [], //杂支列表 ShipList: [], //船列表 SelfFeeList: [], //自费列表 TipFeeList: [], //小费列表 //杂支统计 ZaZhiSum: { USPriceSum: 0, //美金单价统计 USPriceSingle: 0, //单人美元 VNDPriceSum: 0, //越盾单价统计 VNDPriceSingle: 0, //单人越盾 USTotalSum: 0, //美金合计 VNDTotalSum: 0, //越盾合计 }, //船票统计 ShipSum: { USPriceSum: 0, //美金单价统计 VNDPriceSum: 0, //越盾单价统计 USTotalSum: 0, //美金合计 VNDTotalSum: 0, //越盾合计 }, //自费统计 SelfFeeSum: { USPriceSum: 0, //美金单价统计 VNDPriceSum: 0, //越盾单价统计 USTotalSum: 0, //美金合计 VNDTotalSum: 0, //越盾合计 }, //小费统计 TipFeeSum: { USPriceSum: 0, //美金单价统计 VNDPriceSum: 0, //越盾单价统计 USTotalSum: 0, //美金合计 VNDTotalSum: 0, //越盾合计 }, loading: false, }; }, methods: { //计算合计 CalcTotal() { var single_us_price = 0; //单人美元 var single_vnd_price = 0; //单人越盾 var total_us_price = 0; //团体美元 var total_vnd_price = 0; //团体越盾 single_us_price = Number(this.HotelSum.USPriceSum) + Number(this.DinnerSum.USPriceSum) + Number(this.TicketSum .USPriceSum) + Number(this.ZaZhiSum.USPriceSingle) + Number(this.ShipSum.USPriceSum) + Number(this.SelfFeeSum.USPriceSum); single_vnd_price = Number(this.HotelSum.VNDPriceSum) + Number(this.DinnerSum.VNDPriceSum) + Number(this .TicketSum .VNDPriceSum) + Number(this.ZaZhiSum.VNDPriceSingle) + Number(this.ShipSum.VNDPriceSum) + Number(this.SelfFeeSum.VNDPriceSum); total_us_price = Number(this.HotelSum.USTotalSum) + Number(this.DinnerSum.USTotalSum) + Number(this.TicketSum .USTotalSum) + Number(this.ZaZhiSum.USTotalSum) + Number(this.ShipSum.USTotalSum) + Number(this.SelfFeeSum.USTotalSum); total_vnd_price = Number(this.HotelSum.VNDTotalSum) + Number(this.DinnerSum.VNDTotalSum) + Number(this.TicketSum .VNDTotalSum) + Number(this.ZaZhiSum.VNDTotalSum) + Number(this.ShipSum.USTotalSum) + Number(this.SelfFeeSum.USTotalSum) + Number(this.BusSum.VNDTotalSum) + Number(this.BusSum.PriceSum); return { single_us_price: single_us_price.toFixed(2), single_vnd_price: single_vnd_price.toFixed(2), total_us_price: total_us_price.toFixed(2), total_vnd_price: total_vnd_price.toFixed(2) }; }, //航班Json格式 getflightJson() { var obj = { flightDate: "", flightNum: "", flightContent: "" } return obj; }, //添加航班 AddFlight() { if (this.postData.SWTFlightList.length < 5) { this.postData.SWTFlightList.push(this.getflightJson()); } else { this.Info(this.$t('objFill.v101.zuidzntjwghban')); } }, //删除航班 DeleteFlight(index) { this.postData.SWTFlightList.splice(index, 1); }, //获取线路列表 getLineList() { this.apipost("line_post_GetList", {}, res => { if (res.data.resultCode == 1) { this.LineList = res.data.data; } }); }, //获取系列列表 getLineTeamList(isClear) { if (isClear) { this.postData.LineteamId = 0; } let msg = { lineID: this.postData.LineId, isTOOP: 1 }; this.apipost("team_post_GetList", msg, res => { if (res.data.resultCode == 1) { this.LineTeamList = res.data.data; } }); }, //领队导游JSON格式 getLeaderGuideJson() { var obj = { LeaderGuideInfo: "", } return obj; }, getData() { var qmsg = { Id: this.Id }; this.apipost("travel_get_GetBaoJiaDanSwtService", qmsg, res => { if (res.data.resultCode == 1) { var jsonData = res.data.data; if (jsonData) { this.postData.Id = this.Id; this.postData.LineId = jsonData.LineId; if (this.postData.LineId > 0) { this.getLineTeamList(); } this.postData.LineteamId = jsonData.LineteamId; this.postData.IsDirect = jsonData.IsDirect; this.postData.TeamType = jsonData.TeamType; this.postData.TravelState = jsonData.TravelState; this.postData.Title = jsonData.Title; this.postData.DayNum = jsonData.DayNum; this.postData.ConfigId = jsonData.ConfigId; this.postData.StartDate = jsonData.StartDate; this.postData.AirLineName = jsonData.AirLineName; this.postData.GuestNum = jsonData.GuestNum; this.postData.FocNum = jsonData.FocNum; this.postData.LocalTeamNum = jsonData.LocalTeamNum; this.postData.ValuationCode = jsonData.ValuationCode; this.postData.OutTeamName = jsonData.OutTeamName; this.postData.AGTTeamName = jsonData.AGTTeamName; this.postData.SURCHARGE = jsonData.SURCHARGE; this.postData.SingleRoomPrice = jsonData.SingleRoomPrice; this.postData.SalePrice = jsonData.SalePrice; //航班信息 if (jsonData.SWTFlightList) { this.postData.SWTFlightList = jsonData.SWTFlightList; } else { this.postData.SWTFlightList.push(this.getflightJson()); } //领队信息 if (jsonData.SWTLeaderList) { this.postData.SWTLeaderList = jsonData.SWTLeaderList; } else { this.postData.SWTLeaderList.push(this.getLeaderGuideJson()); } //导游信息 if (jsonData.SWTGuideList) { this.postData.SWTGuideList = jsonData.SWTGuideList; } else { this.postData.SWTGuideList.push(this.getLeaderGuideJson()); } //酒店 if (jsonData.HotelDisNum) { this.postData.HotelDisNum = jsonData.HotelDisNum; } if (jsonData.SWTHotelList) { this.postData.SWTHotelList = jsonData.SWTHotelList; } //餐厅 if (jsonData.DinnerDisNum) { this.postData.DinnerDisNum = jsonData.DinnerDisNum; } if (jsonData.SWTDinnerList) { this.postData.SWTDinnerList = jsonData.SWTDinnerList; } //景点 if (jsonData.TicketDisNum) { this.postData.TicketDisNum = jsonData.TicketDisNum; } if (jsonData.SWTTicketList) { this.postData.SWTTicketList = jsonData.SWTTicketList; } //车资 this.postData.BusPriceId = jsonData.BusPriceId; if (jsonData.SWTBusList) { this.postData.SWTBusList = jsonData.SWTBusList; } //生成酒店、餐、景点门票、车资 this.createHotelDinnerTicketBus(); //船 if (jsonData.SWTShipList) { this.postData.SWTShipList = jsonData.SWTShipList; } else { this.postData.SWTShipList.push(this.GetBaoJiaConfigItemJson()); } //杂支 if (jsonData.SWTOtherPayList) { this.postData.SWTOtherPayList = jsonData.SWTOtherPayList; } else { this.postData.SWTOtherPayList.push(this.GetBaoJiaConfigItemJson()); } //自费 if (jsonData.SWTSelfFeeList) { this.postData.SWTSelfFeeList = jsonData.SWTSelfFeeList; } else { var tempJson = this.GetBaoJiaConfigItemJson(); tempJson.FOCNum = this.getPeopleNum.focNum; this.postData.SWTSelfFeeList.push(tempJson); } //小费 if (jsonData.SWTTipFeeList) { this.postData.SWTTipFeeList = jsonData.SWTTipFeeList; } else { var tempJson = this.GetBaoJiaConfigItemJson(); tempJson.FOCNum = this.getPeopleNum.focNum; this.postData.SWTTipFeeList.push(this.GetBaoJiaConfigItemJson()); } //车资其他项 if (jsonData.SWTBusOtherList) { this.postData.SWTBusOtherList = jsonData.SWTBusOtherList; } else { //车资其它 var busOtherItem = { DayNum: 0, SubBusList: [] }; busOtherItem.SubBusList.push(this.getBusJson()); this.postData.SWTBusOtherList.push(busOtherItem); } //计算费用合计 this.CalcFeeTotal(); } } }); }, //保存数据 SaveData(type) { if (!this.postData.DayNum) { this.postData.DayNum = 0; } if (!this.postData.GuestNum) { this.postData.GuestNum = 0; } if (!this.postData.FocNum) { this.postData.FocNum = 0; } if (!this.postData.SalePrice) { this.postData.SalePrice = 0; } if (!this.postData.SingleRoomPrice) { this.postData.SingleRoomPrice = 0; } if (!this.postData.HotelDisNum) { this.postData.HotelDisNum = 0; } if (!this.postData.DinnerDisNum) { this.postData.DinnerDisNum = 0; } if (!this.postData.TicketDisNum) { this.postData.TicketDisNum = 0; } //酒店默认值赋值 if (this.postData.SWTHotelList && this.postData.SWTHotelList.length > 0) { this.postData.SWTHotelList.forEach(item => { if (!item.USPrice) { item.USPrice = 0; } if (!item.VNDPrice) { item.VNDPrice = 0; } if (!item.Times) { item.Times = 0; } }) } //餐厅默认值赋值 if (this.postData.SWTDinnerList && this.postData.SWTDinnerList.length > 0) { this.postData.SWTDinnerList.forEach(rootItem => { rootItem.SubDinnerList.forEach(item => { if (!item.USPrice) { item.USPrice = 0; } if (!item.VNDPrice) { item.VNDPrice = 0; } if (!item.Times) { item.Times = 0; } }) }) } //景点门票默认值赋值 if (this.postData.SWTTicketList && this.postData.SWTTicketList.length > 0) { this.postData.SWTTicketList.forEach(rootItem => { rootItem.SubTicketList.forEach(item => { if (!item.USPrice) { item.USPrice = 0; } if (!item.VNDPrice) { item.VNDPrice = 0; } if (!item.Times) { item.Times = 0; } }) }) } //车资默认值赋值 if (this.postData.SWTBusList && this.postData.SWTBusList.length > 0) { this.postData.SWTBusList.forEach(rootItem => { rootItem.SubBusList.forEach(item => { if (!item.Kilometre) { item.Kilometre = 0; } if (!item.VNDPrice) { item.VNDPrice = 0; } if (!item.Times) { item.Times = 0; } if (!item.Price) { item.Price = 0; } }) }) } if (this.postData.SWTBusOtherList && this.postData.SWTBusOtherList.length > 0) { this.postData.SWTBusOtherList.forEach(rootItem => { rootItem.SubBusList.forEach(item => { if (!item.Kilometre) { item.Kilometre = 0; } if (!item.VNDPrice) { item.VNDPrice = 0; } if (!item.Times) { item.Times = 0; } if (!item.Price) { item.Price = 0; } }) }) } //船票默认值赋值 if (this.postData.SWTShipList && this.postData.SWTShipList.length > 0) { this.postData.SWTShipList.forEach(item => { if (!item.USPrice) { item.USPrice = 0; } if (!item.VNDPrice) { item.VNDPrice = 0; } if (!item.Times) { item.Times = 0; } if (!item.FOCNum) { item.FOCNum = 0; } }) } //杂支默认值赋值 if (this.postData.SWTOtherPayList && this.postData.SWTOtherPayList.length > 0) { this.postData.SWTOtherPayList.forEach(item => { if (!item.USPrice) { item.USPrice = 0; } if (!item.VNDPrice) { item.VNDPrice = 0; } if (!item.Times) { item.Times = 0; } if (!item.FOCNum) { item.FOCNum = 0; } if (!item.DayNum) { item.DayNum = 0; } }) } //自费默认值赋值 if (this.postData.SWTSelfFeeList && this.postData.SWTSelfFeeList.length > 0) { this.postData.SWTSelfFeeList.forEach(item => { if (!item.USPrice) { item.USPrice = 0; } if (!item.VNDPrice) { item.VNDPrice = 0; } if (!item.Times) { item.Times = 0; } if (!item.FOCNum) { item.FOCNum = 0; } }) } //小费默认值赋值 if (this.postData.SWTTipFeeList && this.postData.SWTTipFeeList.length > 0) { this.postData.SWTTipFeeList.forEach(item => { if (!item.USPrice) { item.USPrice = 0; } if (!item.VNDPrice) { item.VNDPrice = 0; } if (!item.Times) { item.Times = 0; } if (!item.FOCNum) { item.FOCNum = 0; } }) } if (type == 0) { this.postData.AuditStatus = -1; } else { this.postData.AuditStatus = 0; } this.apipost("travel_post_SetBaoJiaDanSwtService", this.postData, res => { if (res.data.resultCode == 1) { this.Id = res.data.data; if (type == 0) { this.gonewQuotationSWT(this.Id, 'QuotationPrice_SWT'); this.getData(); } else { this.gonewQuotationSWT(0, 'newQuotation_SWT'); } this.Success(res.data.message); } else { this.Error(res.data.message); } }); }, //报价单跳转 gonewQuotationSWT(Id, path) { var obj = {}; if (Id > 0) { obj = { Id: Id, tab: '报价单' } } else { obj = { tab: '报价单' } } this.$router.push({ name: path, query: obj }); }, //人数改变 GetPeople() { //酒店 if (this.postData.SWTHotelList && this.postData.SWTHotelList.length > 0) { this.postData.SWTHotelList.forEach(item => { item.TotalNum = this.getPeopleNum.hotelNum; }); } //餐 if (this.postData.SWTDinnerList && this.postData.SWTDinnerList.length > 0) { this.postData.SWTDinnerList.forEach(rootItem => { rootItem.SubDinnerList.forEach(item => { item.TotalNum = this.getPeopleNum.totalNum; item.FOCNum = this.getPeopleNum.focNum; }) }); } //景点门票 if (this.postData.SWTTicketList && this.postData.SWTTicketList.length > 0) { this.postData.SWTTicketList.forEach(rootItem => { rootItem.SubTicketList.forEach(item => { item.TotalNum = this.getPeopleNum.totalNum; item.FOCNum = this.getPeopleNum.focNum; }) }); } //车资 if (this.postData.SWTBusList && this.postData.SWTBusList.length > 0) { this.postData.SWTBusList.forEach(rootItem => { rootItem.SubBusList.forEach(item => { item.TotalNum = this.getPeopleNum.totalNum; }) }) } //船 if (this.postData.SWTShipList && this.postData.SWTShipList.length > 0) { this.postData.SWTShipList.forEach(item => { item.TotalNum = this.getPeopleNum.totalNum; item.FOCNum = this.getPeopleNum.focNum; }) } //自费 if (this.postData.SWTSelfFeeList && this.postData.SWTSelfFeeList.length > 0) { this.postData.SWTSelfFeeList.forEach(item => { item.TotalNum = this.getPeopleNum.totalNum; item.FOCNum = this.getPeopleNum.focNum; }) } //小费 if (this.postData.SWTTipFeeList && this.postData.SWTTipFeeList.length > 0) { this.postData.SWTTipFeeList.forEach(item => { item.TotalNum = this.getPeopleNum.totalNum; item.FOCNum = this.getPeopleNum.focNum; }) } this.CalcFeeTotal(); }, //获取酒店列表 GetHotelList(event, item) { var newDate = ""; if (this.postData.StartDate) { var newDay = Number(item.DayNum - 1); newDate = this.$commonUtils.AddDay(this.postData.StartDate, newDay) } if (event) { var hMsg = { QCountry: "1252", sDate: newDate }; this.apipost("hotel_post_GetSwtHotelPriceList", hMsg, res => { if (res.data.resultCode == 1) { item.HotelList = res.data.data; } }); } }, //获取选中的酒店数据 GetHotelItem(currentItem) { var that = this; if (currentItem.HotelId != 0) { //获取当前选中的对象 let obj = {}; obj = currentItem.HotelList.find(item => { return item.ID === currentItem.HotelId; //筛选出匹配数据 }); if (obj != undefined) { currentItem.VNDPrice = 0; currentItem.USPrice = 0; if (obj.CurrencyId == this.DefaultCurrencyId) { if (obj.CostPrice) { currentItem.VNDPrice = obj.CostPrice; } } else { if (obj.CostPrice) { currentItem.USPrice = obj.CostPrice; } } currentItem.HotelName = obj.Name; } } }, //计算费用 CalcFeeTotal() { //酒店计算 if (this.postData.SWTHotelList && this.postData.SWTHotelList.length > 0) { var subUSPrice = 0; var subVNDPrice = 0; var totalUSPrice = 0; var totalVNDPrice = 0; this.postData.SWTHotelList.forEach(item => { var c_usprice = 0; if (item.USPrice) { c_usprice = item.USPrice; } var c_vndprice = 0; if (item.VNDPrice) { c_vndprice = item.VNDPrice } subUSPrice += Number(c_usprice); subVNDPrice += Number(c_vndprice); var c_HotelDisNum = 0; if (this.postData.HotelDisNum) { c_HotelDisNum = this.postData.HotelDisNum; } item.HotelDisNum = c_HotelDisNum; var c_times = 0; if (item.Times) { c_times = item.Times; } var c_totalNum = 0; if (item.TotalNum) { c_totalNum = item.TotalNum; } item.USSubTotal = (parseFloat(c_usprice) * parseFloat(c_times) * (c_totalNum - c_HotelDisNum)).toFixed( 2); item.VNDSubTotal = (parseFloat(c_vndprice) * parseFloat(c_times) * (c_totalNum - c_HotelDisNum)) .toFixed(2); totalUSPrice += parseFloat(item.USSubTotal); totalVNDPrice += parseFloat(item.VNDSubTotal); }); this.HotelSum.USPriceSum = subUSPrice.toFixed(2); this.HotelSum.VNDPriceSum = subVNDPrice.toFixed(2); this.HotelSum.USTotalSum = totalUSPrice.toFixed(2); this.HotelSum.VNDTotalSum = totalVNDPrice.toFixed(2); } //餐厅计算 if (this.postData.SWTDinnerList && this.postData.SWTDinnerList.length > 0) { var subUSPrice = 0; var subVNDPrice = 0; var totalUSPrice = 0; var totalVNDPrice = 0; this.postData.SWTDinnerList.forEach(rootItem => { rootItem.SubDinnerList.forEach(item => { var c_usprice = 0; if (item.USPrice) { c_usprice = item.USPrice; } var c_vndprice = 0; if (item.VNDPrice) { c_vndprice = item.VNDPrice } subUSPrice += Number(c_usprice); subVNDPrice += Number(c_vndprice); var c_DinnerDisNum = 0; if (this.postData.DinnerDisNum) { c_DinnerDisNum = this.postData.DinnerDisNum; } item.DinnerDisNum = c_DinnerDisNum; var c_times = 0; if (item.Times) { c_times = item.Times; } var c_totalNum = 0; if (item.TotalNum) { c_totalNum = item.TotalNum; } item.USSubTotal = (parseFloat(c_usprice) * parseFloat(c_times) * (c_totalNum - c_DinnerDisNum)) .toFixed( 2); item.VNDSubTotal = (parseFloat(c_vndprice) * parseFloat(c_times) * (c_totalNum - c_DinnerDisNum)) .toFixed(2); totalUSPrice += parseFloat(item.USSubTotal); totalVNDPrice += parseFloat(item.VNDSubTotal); }) }); this.DinnerSum.USPriceSum = subUSPrice.toFixed(2); this.DinnerSum.VNDPriceSum = subVNDPrice.toFixed(2); this.DinnerSum.USTotalSum = totalUSPrice.toFixed(2); this.DinnerSum.VNDTotalSum = totalVNDPrice.toFixed(2); } //景点门票计算 if (this.postData.SWTTicketList && this.postData.SWTTicketList.length > 0) { var subUSPrice = 0; var subVNDPrice = 0; var totalUSPrice = 0; var totalVNDPrice = 0; this.postData.SWTTicketList.forEach(rootItem => { rootItem.SubTicketList.forEach(item => { var c_usprice = 0; if (item.USPrice) { c_usprice = item.USPrice; } var c_vndprice = 0; if (item.VNDPrice) { c_vndprice = item.VNDPrice } subUSPrice += Number(c_usprice); subVNDPrice += Number(c_vndprice); var c_DinnerDisNum = 0; if (this.postData.TicketDisNum) { c_DinnerDisNum = this.postData.TicketDisNum; } item.DinnerDisNum = c_DinnerDisNum; var c_times = 0; if (item.Times) { c_times = item.Times; } var c_totalNum = 0; if (item.TotalNum) { c_totalNum = item.TotalNum; } item.USSubTotal = (parseFloat(c_usprice) * parseFloat(c_times) * (c_totalNum - c_DinnerDisNum)) .toFixed( 2); item.VNDSubTotal = (parseFloat(c_vndprice) * parseFloat(c_times) * (c_totalNum - c_DinnerDisNum)) .toFixed(2); totalUSPrice += parseFloat(item.USSubTotal); totalVNDPrice += parseFloat(item.VNDSubTotal); }) }); this.TicketSum.USPriceSum = subUSPrice.toFixed(2); this.TicketSum.VNDPriceSum = subVNDPrice.toFixed(2); this.TicketSum.USTotalSum = totalUSPrice.toFixed(2); this.TicketSum.VNDTotalSum = totalVNDPrice.toFixed(2); } var subKMs = 0; var totalVNDsum = 0; var busPriceSum = 0; var busVNDTotalSum = 0; //车资计算 if (this.postData.SWTBusList && this.postData.SWTBusList.length > 0) { this.postData.SWTBusList.forEach(rootItem => { rootItem.SubBusList.forEach(item => { var c_Kilometre = 0; if (item.Kilometre) { c_Kilometre = item.Kilometre } subKMs += Number(c_Kilometre) var c_times = 0; if (item.Times) { c_times = item.Times; } var c_price = 0; if (item.Price) { c_price = item.Price; } var c_vndprice = 0; if (item.VNDPrice) { c_vndprice = item.VNDPrice; } totalVNDsum += c_vndprice; busPriceSum += c_vndprice; item.PriceSubTotal = c_vndprice; item.VNDSubTotal = (parseFloat(c_Kilometre) * parseFloat(c_times) * parseFloat(c_price)) .toFixed(2); busVNDTotalSum += parseFloat(item.VNDSubTotal); }) }); } //车资其他项计算 if (this.postData.SWTBusOtherList && this.postData.SWTBusOtherList.length > 0) { this.postData.SWTBusOtherList.forEach(rootItem => { rootItem.SubBusList.forEach(item => { var c_Kilometre = 0; if (item.Kilometre) { c_Kilometre = item.Kilometre } subKMs += Number(c_Kilometre) var c_times = 0; if (item.Times) { c_times = item.Times; } var c_price = 0; if (item.Price) { c_price = item.Price; } var c_vndprice = 0; if (item.VNDPrice) { c_vndprice = item.VNDPrice; } totalVNDsum += c_vndprice; busPriceSum += c_vndprice; item.PriceSubTotal = c_vndprice; item.VNDSubTotal = (parseFloat(c_Kilometre) * parseFloat(c_times) * parseFloat(c_price)) .toFixed(2); busVNDTotalSum += parseFloat(item.VNDSubTotal); }) }); } this.BusSum.TotalKM = subKMs.toFixed(2); this.BusSum.TotalVNDPrice = totalVNDsum.toFixed(2); this.BusSum.PriceSum = busPriceSum.toFixed(2); this.BusSum.VNDTotalSum = busVNDTotalSum.toFixed(2); //船 if (this.postData.SWTShipList && this.postData.SWTShipList.length > 0) { var subUSPrice = 0; var subVNDPrice = 0; var totalUSPrice = 0; var totalVNDPrice = 0; this.postData.SWTShipList.forEach(item => { var c_usprice = 0; if (item.USPrice) { c_usprice = item.USPrice; } var c_vndprice = 0; if (item.VNDPrice) { c_vndprice = item.VNDPrice } subUSPrice += Number(c_usprice); subVNDPrice += Number(c_vndprice); var c_times = 0; if (item.Times) { c_times = item.Times; } item.USSubTotal = (parseFloat(c_usprice) * parseFloat(c_times)).toFixed(2); item.VNDSubTotal = (parseFloat(c_vndprice) * parseFloat(c_times)).toFixed(2); totalUSPrice += parseFloat(item.USSubTotal); totalVNDPrice += parseFloat(item.VNDSubTotal); }); this.ShipSum.USPriceSum = subUSPrice.toFixed(2); this.ShipSum.VNDPriceSum = subVNDPrice.toFixed(2); this.ShipSum.USTotalSum = totalUSPrice.toFixed(2); this.ShipSum.VNDTotalSum = totalVNDPrice.toFixed(2); } //杂支 if (this.postData.SWTOtherPayList && this.postData.SWTOtherPayList.length > 0) { var subUSPrice = 0; var subVNDPrice = 0; var totalUSPrice = 0; var totalVNDPrice = 0; this.postData.SWTOtherPayList.forEach(item => { var c_usprice = 0; if (item.USPrice) { c_usprice = item.USPrice; } var c_vndprice = 0; if (item.VNDPrice) { c_vndprice = item.VNDPrice } subUSPrice += Number(c_usprice); subVNDPrice += Number(c_vndprice); var c_times = 0; if (item.Times) { c_times = item.Times; } var c_daynum = 0; if (item.DayNum) { c_daynum = item.DayNum; } var c_focnum = 0; if (item.FOCNum) { c_focnum = item.FOCNum; } item.USSubTotal = (parseFloat(c_usprice) * parseFloat(c_daynum) * (c_times - c_focnum)).toFixed(2); item.VNDSubTotal = (parseFloat(c_vndprice) * parseFloat(c_daynum) * (c_times - c_focnum)).toFixed(2); totalUSPrice += parseFloat(item.USSubTotal); totalVNDPrice += parseFloat(item.VNDSubTotal); }); this.ZaZhiSum.USPriceSum = subUSPrice.toFixed(2); var USPrice_Single = 0; if (this.postData.GuestNum > 0) { USPrice_Single = parseFloat(subUSPrice) / parseFloat(this.postData.GuestNum); } this.ZaZhiSum.USPriceSingle = USPrice_Single.toFixed(2); this.ZaZhiSum.VNDPriceSum = subVNDPrice.toFixed(2); var VNDPrice_Single = 0; if (this.postData.GuestNum > 0) { VNDPrice_Single = parseFloat(subVNDPrice) / parseFloat(this.postData.GuestNum); } this.ZaZhiSum.VNDPriceSingle = VNDPrice_Single.toFixed(2); this.ZaZhiSum.USTotalSum = totalUSPrice.toFixed(2); this.ZaZhiSum.VNDTotalSum = totalVNDPrice.toFixed(2); } //自费计算 if (this.postData.SWTSelfFeeList && this.postData.SWTSelfFeeList.length > 0) { var subUSPrice = 0; var subVNDPrice = 0; var totalUSPrice = 0; var totalVNDPrice = 0; this.postData.SWTSelfFeeList.forEach(item => { var c_usprice = 0; if (item.USPrice) { c_usprice = item.USPrice; } var c_vndprice = 0; if (item.VNDPrice) { c_vndprice = item.VNDPrice } subUSPrice += Number(c_usprice); subVNDPrice += Number(c_vndprice); var c_totalnum = 0; if (item.TotalNum) { c_totalnum = item.TotalNum; } var c_focnum = 0; if (item.FOCNum) { c_focnum = item.FOCNum; } item.USSubTotal = (parseFloat(c_usprice) * (c_totalnum - c_focnum)).toFixed(2); item.VNDSubTotal = (parseFloat(c_vndprice) * (c_totalnum - c_focnum)).toFixed(2); totalUSPrice += parseFloat(item.USSubTotal); totalVNDPrice += parseFloat(item.VNDSubTotal); }); this.SelfFeeSum.USPriceSum = subUSPrice.toFixed(2); this.SelfFeeSum.VNDPriceSum = subVNDPrice.toFixed(2); this.SelfFeeSum.USTotalSum = totalUSPrice.toFixed(2); this.SelfFeeSum.VNDTotalSum = totalVNDPrice.toFixed(2); } //小费计算 if (this.postData.SWTTipFeeList && this.postData.SWTTipFeeList.length > 0) { var subUSPrice = 0; var subVNDPrice = 0; var totalUSPrice = 0; var totalVNDPrice = 0; this.postData.SWTTipFeeList.forEach(item => { var c_usprice = 0; if (item.USPrice) { c_usprice = item.USPrice; } var c_vndprice = 0; if (item.VNDPrice) { c_vndprice = item.VNDPrice } subUSPrice += Number(c_usprice); subVNDPrice += Number(c_vndprice); var c_totalnum = 0; if (item.TotalNum) { c_totalnum = item.TotalNum; } var c_focnum = 0; if (item.FOCNum) { c_focnum = item.FOCNum; } item.USSubTotal = (parseFloat(c_usprice) * (c_totalnum - c_focnum)).toFixed(2); item.VNDSubTotal = (parseFloat(c_vndprice) * (c_totalnum - c_focnum)).toFixed(2); totalUSPrice += parseFloat(item.USSubTotal); totalVNDPrice += parseFloat(item.VNDSubTotal); }); this.TipFeeSum.USPriceSum = subUSPrice.toFixed(2); this.TipFeeSum.VNDPriceSum = subVNDPrice.toFixed(2); this.TipFeeSum.USTotalSum = totalUSPrice.toFixed(2); this.TipFeeSum.VNDTotalSum = totalVNDPrice.toFixed(2); } }, //获取餐厅列表 GetDinnerList(event, item, subitem) { var newDate = ""; if (this.postData.StartDate) { var newDay = Number(item.DayNum - 1); newDate = this.$commonUtils.AddDay(this.postData.StartDate, newDay) } if (event) { var hMsg = { QCountrys: "1252", StatisticsSTime: newDate }; this.apipost("dining_post_GetSWTDinnerListService", hMsg, res => { if (res.data.resultCode == 1) { subitem.DinnerList = res.data.data; } }); } }, //获取选中的餐厅数据 GetDinnerItem(currentItem) { var that = this; if (currentItem.DinnerId != 0) { //获取当前选中的对象 let obj = {}; obj = currentItem.DinnerList.find(item => { return item.ID === currentItem.DinnerId; //筛选出匹配数据 }); if (obj != undefined) { currentItem.VNDPrice = 0; currentItem.USPrice = 0; if (obj.CurrencyId == this.DefaultCurrencyId) { if (obj.CostPrice) { currentItem.VNDPrice = obj.CostPrice; } } else { if (obj.CostPrice) { currentItem.USPrice = obj.CostPrice; } } currentItem.DinnerName = obj.Name; } } }, //景点JSON getTicketJson() { var obj = { CouponsId: 0, //景点名称 CouponsName: "", //景点名称 USPrice: 0, //美元 VNDPrice: 0, //越南盾 TotalNum: this.getPeopleNum.totalNum, //总人数 FOCNum: this.getPeopleNum.focNum, //FOC人数 Times: 1, //次数 USSubTotal: 0, //美元小计 VNDSubTotal: 0, //越南盾小计 TicketDisNum: this.postData.TicketDisNum, //减免人数 TicketList: [], //餐厅下拉列表[前台使用] } return obj; }, //添加景点 AddTicket(item) { item.SubTicketList.push(this.getTicketJson()); }, //删除景点 DeleteTicket(item, subIndex) { item.SubTicketList.splice(subIndex, 1); }, //获取景点列表 GetScenicList(event, item, subitem) { var newDate = ""; if (this.postData.StartDate) { var newDay = Number(item.DayNum - 1); newDate = this.$commonUtils.AddDay(this.postData.StartDate, newDay) } if (event) { var hMsg = { QCountrys: "1252", StatisticsSTime: newDate }; this.apipost("ticketcoupons_post_GetSWTScienListService", hMsg, res => { if (res.data.resultCode == 1) { subitem.TicketList = res.data.data; } }); } }, //获取选中的景点数据 GetScenicItem(currentItem) { var that = this; if (currentItem.CouponsId != 0) { //获取当前选中的对象 let obj = {}; obj = currentItem.TicketList.find(item => { return item.ID === currentItem.CouponsId; //筛选出匹配数据 }); if (obj != undefined) { currentItem.VNDPrice = 0; currentItem.USPrice = 0; if (obj.CurrencyId == this.DefaultCurrencyId) { if (obj.CostPrice) { currentItem.VNDPrice = obj.CostPrice; } } else { if (obj.CostPrice) { currentItem.USPrice = obj.CostPrice; } } currentItem.CouponsName = obj.Name; } } }, //报价费用配置 GetBaoJiaConfigItemJson() { var obj = { CType: 0, //报价费用类型Id BaoJiaTypeName: "", //费用类型名称 BaoJiaConfigId: 0, //费用配置编号 BaoJiaConfigName: '', //费用配置名称 USPrice: 0, //美元 VNDPrice: 0, //越南盾 DayNum: this.postData.DayNum, //行程天数 TotalNum: this.getPeopleNum.totalNum, //总人数 FOCNum: 0, //FOC人数 Times: 1, //次数 USSubTotal: 0, //美元小计 VNDSubTotal: 0, //越南盾小计 }; return obj; }, //添加报价项 AddBaoJiaConfigItem(type) { var tempJson = this.GetBaoJiaConfigItemJson(); switch (type) { case 4: //船 this.postData.SWTShipList.push(tempJson); break; case 1: //杂支 this.postData.SWTOtherPayList.push(tempJson); break; case 2: //自费 tempJson.FOCNum = this.getPeopleNum.focNum; this.postData.SWTSelfFeeList.push(tempJson); break; case 3: //小费 tempJson.FOCNum = this.getPeopleNum.focNum; this.postData.SWTTipFeeList.push(tempJson); break; } }, //删除报价项 DeleteBaoJiaConfigItem(type, index) { switch (type) { case 4: //船 this.postData.SWTShipList.splice(index, 1); break; case 1: //杂支 this.postData.SWTOtherPayList.splice(index, 1); break; case 2: //自费 this.postData.SWTSelfFeeList.splice(index, 1); break; case 3: //小费 this.postData.SWTTipFeeList.splice(index, 1); break; } }, //获取报价配置项 GetConfigItem(currentItem, type) { var that = this; if (currentItem.BaoJiaConfigId != 0) { //获取当前选中的对象 let obj = {}; switch (type) { case 4: //船 obj = this.ShipList.find(item => { return item.Id === currentItem.BaoJiaConfigId; }); break; case 1: //杂支 obj = this.ZaZhiList.find(item => { return item.Id === currentItem.BaoJiaConfigId; }); break; case 2: //自费 obj = this.SelfFeeList.find(item => { return item.Id === currentItem.BaoJiaConfigId; }); break; case 5: //自费SHOPPING obj = this.SelfFeeList.find(item => { return item.Id === currentItem.BaoJiaConfigId; }); break; case 6: //自费車購 obj = this.SelfFeeList.find(item => { return item.Id === currentItem.BaoJiaConfigId; }); break; case 3: //小费 obj = this.TipFeeList.find(item => { return item.Id === currentItem.BaoJiaConfigId; }); break; } if (obj != undefined) { currentItem.VNDPrice = obj.VNDPrice; currentItem.USPrice = obj.USPrice; currentItem.BaoJiaConfigName = obj.CName; currentItem.BaoJiaTypeName = obj.CTypeStr currentItem.CType = obj.CType; } } }, //获取车辆类型列表 getBusTypeList() { this.apipost( "bus_get_GetBusTypePriceList", { StartDate: this.postData.StartDate }, res => { if (res.data.resultCode == 1) { this.BusTypeList = res.data.data; this.BusTypeList.forEach(item => { item['newName'] = item.AreaTypeStr + '-' + item.BusTypeStr }); } }, null ); }, //车资JSON getBusJson() { var obj = { BusConfigId: 0, //车资配置编号 Trip: "", //行程 Kilometre: 0, //公里数 VNDPrice: 0, //越南盾 TotalNum: this.getPeopleNum.totalNum, //总人数 Times: 1, //次数 Price: 0, //单价 PriceSubTotal: 0, //车资小计 VNDSubTotal: 0, //公里数小计 BusList: [], //车下拉列表[前台使用] CalcFeeType: 0, //计费方式(1-公里计价,2-总车资计价) } return obj; }, //添加车资 AddBus(item) { item.SubBusList.push(this.getBusJson()); }, //删除车资 DeleteBus(item, subIndex) { item.SubBusList.splice(subIndex, 1); }, //获取车资列表 GetBusConfigList(event, item, subitem) { if (event) { var qmsg = { QPriceId: "" } if (this.postData.BusPriceId) { qmsg.QPriceId = this.postData.BusPriceId; } this.apipost("buspriceconfig_post_GetBusPriceConfigListService", qmsg, res => { if (res.data.resultCode == 1) { var tempArray = res.data.data; if (tempArray && tempArray.length > 0) { let arrText = [this.$t('bjFill.v101.gonglijij'),this.$t('bjFill.v101.chezijij')] tempArray.forEach(sItem => { if (sItem.CalcFeeType == 1) { sItem.Trip = sItem.Trip + arrText[0] } if (sItem.CalcFeeType == 2) { sItem.Trip = sItem.Trip + arrText[1] } }) subitem.BusList = tempArray; } } }); } }, //获取选中的车资 GetBusItem(currentItem) { var that = this; if (currentItem.CouponsId != 0) { //获取当前选中的对象 let obj = {}; obj = currentItem.BusList.find(item => { return item.Id === currentItem.BusConfigId; //筛选出匹配数据 }); if (obj != undefined) { currentItem.VNDPrice = 0; currentItem.Price = 0; currentItem.Kilometre = 0; currentItem.Trip = obj.Trip; currentItem.CalcFeeType = obj.CalcFeeType; switch (obj.CalcFeeType) { //公里计费 case 1: if (obj.KMPrice) { currentItem.Price = obj.KMPrice; } if (obj.Kilometre) { currentItem.Kilometre = obj.Kilometre; } break; //车资计费 case 2: currentItem.VNDPrice = obj.VNDPrice; break; } } } }, //生成酒店、餐、门票、车资 createHotelDinnerTicketBus() { //生成景点 if (this.postData.DayNum > this.postData.SWTTicketList.length) { for ( var i = this.postData.SWTTicketList.length; i < this.postData.DayNum; i++ ) { //景点 var ticketItem = { DayNum: i + 1, SubTicketList: [] }; ticketItem.SubTicketList.push(this.getTicketJson()); this.postData.SWTTicketList.push(ticketItem); //车资 var busItem = { DayNum: i + 1, SubBusList: [] }; busItem.SubBusList.push(this.getBusJson()); this.postData.SWTBusList.push(busItem); //餐厅 var dinnerItem = { DayNum: i + 1, SubDinnerList: [] }; for (var j = 1; j <= 3; j++) { dinnerItem.SubDinnerList.push({ DinnerType: j, //用餐类型[1-早餐,2-午餐,3-晚餐] DinnerId: 0, //餐厅编号 DinnerName: "", //餐厅名称 USPrice: 0, //美元 VNDPrice: 0, //越南盾 TotalNum: this.getPeopleNum.totalNum, //总人数 FOCNum: this.getPeopleNum.focNum, //FOC人数 Times: 1, //次数 USSubTotal: 0, //美元小计 VNDSubTotal: 0, //越南盾小计 DinnerDisNum: this.postData.DinnerDisNum, //减免人数 DinnerList: [], //餐厅下拉列表[前台使用] }); } this.postData.SWTDinnerList.push(dinnerItem); //酒店 var hotelItem = { DayNum: i + 1, HotelId: 0, //酒店变化 HotelName: "", //酒店名称 USPrice: 0, //美元 VNDPrice: 0, //越南盾 TotalNum: this.getPeopleNum.hotelNum, //总房间数 Times: 1, //次数 USSubTotal: 0, //美元小计 VNDSubTotal: 0, //越南盾小计 HotelDisNum: this.postData.HotelDisNum, //减免人数 HotelList: [], }; this.postData.SWTHotelList.push(hotelItem); } } else { //删除景点 this.postData.SWTTicketList.length = this.postData.DayNum; //删除车资 this.postData.SWTBusList.length = this.postData.DayNum; //删除餐厅 this.postData.SWTDinnerList.length = this.postData.DayNum; //删除酒店 this.postData.SWTHotelList.length = this.postData.DayNum; } }, //获取船、自费、小费、杂支列表 GetBaoJiaFeeConfigList() { this.apipost("travel_get_GetBaoJiaDanConfigSwtListService", {}, res => { if (res.data.resultCode == 1) { var tempJson = res.data.data; if (tempJson) { tempJson.forEach(item => { //杂支 if (item.CType == 1) { this.ZaZhiList = item.SubList; } //自费 if (item.CType == 2 || item.CType == 5 || item.CType == 6) { if (item.SubList && item.SubList.length > 0) { item.SubList.forEach(childItem => { this.SelfFeeList.push(childItem); }) } } //小费 if (item.CType == 3) { this.TipFeeList = item.SubList; } //船 if (item.CType == 4) { this.ShipList = item.SubList; } }); } } }); }, }, created() { }, mounted() { if (this.$route.query.Id) { this.Id = this.$route.query.Id; } this.GetBaoJiaFeeConfigList(); this.getBusTypeList(); this.getLineList(); this.getData(); }, computed: { //人数计算 getPeopleNum() { var totalNum = 0; //总人数【旅客人数+FOC人数】 var focNum = 0; //FOC人数 if (this.postData.GuestNum) { totalNum += Number(this.postData.GuestNum); } if (this.postData.FocNum) { totalNum += Number(this.postData.FocNum); focNum = Number(this.postData.FocNum); } //酒店房间数 var hotelNum = (parseFloat(totalNum) / 2.0).toFixed(1); var obj = { totalNum: totalNum, focNum: focNum, hotelNum: hotelNum, } return obj; } }, watch: { //监听天数变化 'postData.DayNum': { handler(newVal, oldVal) { this.createHotelDinnerTicketBus(); }, deep: true } } }; </script>